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.plus
added to combine paths - core:
AbstractListChildSerializer
is now part of Configurate's public API - core: Added methods on
ConfigurationLoader
to 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
ConfigurationOptions
andAbstractConfigurationLoader
- core: Added
ConfigurationNode.require
methods for cases where a return value is known to be non-null, to avoid nullabilty warnings in IDEs - core: Added
flags
field to the@Matches
constrant annotation to pass throughPattern
flags - 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
EnumSet
s rather thanHashSet
s - 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
get
method to use the appropriate Java overload ofget
(#185)
Deprecated
- kotlin: The
NodePath.plus
extension function has been deprecated since it is replaced by theplus
method inNodePath
itself.