Configurate v4.1.0
This is a minor feature release to the Configurate v4 series that addresses a variety of bugfixes, small API additions, and Javadoc tweaks that have built up in the months since the 4.0.0 release.
Thanks to forresthopkinsa, jpenilla, and ItsTehBrian for their contributions to this release.
Added
- core:
NodePath.plusadded to combine paths - core:
AbstractListChildSerializeris now part of Configurate's public API - core: Added methods on
ConfigurationLoaderto load/save from strings - core: Temporary files for writing are now prepended with a
.so they appear hidden in file viewers - core: Multi-release jar functionality is now used to take advantage of some collections and reflection API only available in newer Java versions
- core: Added analysis annotations to indicate contracts in
ConfigurationOptionsandAbstractConfigurationLoader - core: Added
ConfigurationNode.requiremethods for cases where a return value is known to be non-null, to avoid nullabilty warnings in IDEs - core: Added
flagsfield to the@Matchesconstrant annotation to pass throughPatternflags - gson: Added serializers for JsonElement and its subtypes (accessible via
GsonConfigurationLoader.gsonSerializers()) - kotlin: Add supplier-defaulted get() extensions to
ConfigurationNode
Fixed
- core: Retry closing in AtomicFiles, to attempt better handling of Windows file locking
- core: Handling of integer keys in the map serializer (#184)
- core: Improve error messages when trying to get the object mapper to construct an object instance that it is unable to.
- core: Fix handling of absent primitive fields in the record object mapper
- core: Fix erasing target files when attempting to save a clearly invalid node (#189)
- core: Sets of enums are now deserialized as
EnumSets rather thanHashSets - core: Add missing primitive types to
Types.box/unbox - core: Separate the concepts of a null value and being virtual, to correct handling of
null-valued non-virtual nodes (#187) - core: Correctly handle configuration files stored within symlinked directories
- core: Fixed improper floating-point precision testing (#198)
- hocon: Ensure leading spaces in comments are stripped
- kotlin: Correct the non-defaulted
getmethod to use the appropriate Java overload ofget(#185)
Deprecated
- kotlin: The
NodePath.plusextension function has been deprecated since it is replaced by theplusmethod inNodePathitself.