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

Releases: keykey7/confij

0.6.2

08 Feb 20:27
ea5c8f6
Compare
Choose a tag to compare

ClasspathResource relative to ClassLoader (#53)

ClasspathResource can be relative to class or relative to explicit classloader.
The default behaviour for the AnyResource is the current threads classloader.

move to maven-central (#49, #50, #51)

starting with 0.6.1 artifacts are only published on maven-central and not on jCenter anymore.

version bumps (#52)

a potentially breaking change for confij-validation as it now depends on hibernate validator 7.x

0.6.0

10 Sep 21:10
1b73426
Compare
Choose a tag to compare

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.

0.5.0

13 Aug 18:53
3174d8f
Compare
Choose a tag to compare

Non-Null Validator (#33)

Breaking change for validators as it is now possible to access the binding configuration of the final configuration.
A non-null validator was introduced, which is an ideological extension of the JSR303 validator (think of it as everything @Valid and @NotNull being inherited by child configurations.
Additional introduction of an Optional<> leaf-binding to complement the not-null validator (or as an alternative to @nullable). Optional is only available for leaf-types (not for optional interfaces as of now).

sharding of internal classmate dependency (#32)

confij-core only depends on a single external library to process generics. The default artifact is now a shaded variant (fat jar). The classmate dependency is sharded to not conflict with any existing classmate. As a side-effect, it had to be downgraded to an implementation dependency, instead of an api one. A custom made GenericType now takes it's part. Note the old unshaded variant is still published under the classifier 'slim'.

allow serialization of interface proxies (#29)

InterfaceInvocationHandler is now Serializable. It allows simple
serialization IF all the customized configuration values are
serializable, too. Otherwise it will fail lazily while serializing.
Minor: fixed the InterfaceInvocationHandler.toString representation
for empty configurations.

minor

  • allow default methods with arguments (#25)
    Only affects Java >8. Previously only default methods without arguments were possible (they can be configured after all). Now also default methods with arguments are allowed.
  • Minor: using an instance TypeResolver with a configurable cache size.
  • Minor: dropped the javadoc artifact. Source is good enough.
  • migrate to github actions (#30)

0.4.0

04 Jan 22:17
6689cf9
Compare
Choose a tag to compare

templating to enforce sys property presence (#23)
ValueResources must be loaded before interfaces (#22)
HOCON format support (#20)
Speaking Exceptions during binding-phase (#18)

0.3.0

20 Dec 21:42
ba0af0d
Compare
Choose a tag to compare

GIT resource provider (#11)
modular logging support (#10)

0.2.0

02 Dec 21:02
0f75162
Compare
Choose a tag to compare
  • #1, #3 support comma separated values
  • #5 load from optional sources
  • #6 builder API