-
Notifications
You must be signed in to change notification settings - Fork 1
Available Formats
You only need to declare a dependency on the format you choose. There is a transitive dependency on dazzleconf-core.
The core module is space.arim.dazzleconf:dazzleconf-core
with module name space.arim.dazzleconf
Implements the JSON format.
Dependency: space.arim.dazzleconf:dazzleconf-ext-gson
Module name: space.arim.dazzleconf.ext.gson
JSON has no concept of comments and as such there is no easy way to write them. Partial support is provided via GsonOptions#pseudoCommentsSuffix
, which enables "commenting" albeit somewhat imperfectly.
Implements the HOCON format. Backed by lightbend/config
Dependency: space.arim.dazzleconf:dazzleconf-ext-hocon
Module name: space.arim.dazzleconf.ext.hocon
Hocon has full comment support. However, it has a minor issue with ordering. Written hocon cannot be ordered due to a design bug in the underlying library, which is not expected to be fixed any time soon: https://github.com/lightbend/config/issues/365
Dependency: space.arim.dazzleconf:dazzleconf-ext-snakeyaml
Module name: space.arim.dazzleconf.ext.snakeyaml
SnakeYaml has full comment support but it is not enabled by default.
- If you use SnakeYaml 1.28 or later,
CommentMode.fullComments
is the best way to write comments. - For older SnakeYaml versions,
CommentMode.alternateWriter
enables writing comments though the alternate writer which does not use SnakeYaml. - The default mode is
CommentMode.headerOnly
which writes the top level comment header but nothing else.
The CommentMode
has to be set on the SnakeYamlOptions
in order for it to take effect.