Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

0.6.0

Compare
Choose a tag to compare
@keykey7 keykey7 released this 10 Sep 21:10
· 12 commits to master since this release
1b73426

ISO temporal date types (#43)

A breaking change if temporal types are used in your config: Support for all common temporal types like ZonedDateTime, OffsetDateTime, LocalDateTime,... and (sadly) Date. The default format assumed is always the corresponding ISO-8601 format (for Instant this means UTC). Every temporal type format can be modified using @ Datetime however.
Additionally added a fix for yaml dates, such that the time offset is not forgotten. Toml already does it right and is internally converted to iso types, too (in order to not depend on system time).

support bracket notation for lists in properties format (#41) and support toml binding (#40)

contributed by @syhily 🎉

glob expressions in paths (#44)

Support glob expressions in file sources, like some/path/*.txt. It's generally a tricky topic to not search too many file nodes but still find all matching files (think of **/). There are some safety nets in place to prevent searching through too many filenames.
API change for ConfijSource and alike: dropped the URI in favour of a URIish which doesn't have any encoding restrictions.
Minor: fixed a crash when reading an empty file.

live-reloading support (#39)

Introduces a new way to reload configurations and register to changes while keeping the configuration generally immutable.
Uses a convenient (Mockito-like) way to specify the configuration object to attach a change listener to.
Config changes are detected on string level (before binding), but only valid configurations make it this far.

explicit source handling (#46)

Major change under the hood of ConfijSource and alike. AnySorurces are now correctly separated in their own ServiceLoader classes. The same holds for AnyResources and AnyFormat. This allows for easy instantiation of all those three types programmatically.
Minor: autoformat enabled for documentation sources (except asciidoc tags)

property source fixes for invalid keys (#34)

If loading from any property-like source (file, envvar, sysprop), with conflicting keys like a.b=x and a=y, which cannot be mapped to a tree-structure it will now correctly complain instead of an NPE. The binding checks (if a key actually is known to the config) is now done in it's own step a bit later. Also added documentation for property-like sources.