Skip to content

Releases: Exlll/ConfigLib

v4.6.1

19 May 20:37
Compare
Choose a tag to compare

What's Changed

  • Prevent NPE in tryCreateParentDirectories by @tomwmth in #40

New Contributors

Full Changelog: v4.6.0...v4.6.1

ConfigLib version 4.6.0

27 Apr 16:14
531285f
Compare
Choose a tag to compare

Add better support for environment variables

See corresponding documentation in the README.

Fix: Enforce serializers to only produce valid target types

All serializers were already required (by the specification) to only produce
valid target types. However, this restriction hasn't been enforced so far and
can cause unexpected errors during deserialization if custom serializers are
involved.

This fix constitutes a breaking change if you have custom serializers that
don't follow the spec. The output of serializers is now checked during
serialization; if it's not of a valid target type, an exception is thrown.

ConfigLib version 4.5.0

23 Feb 01:31
cb44743
Compare
Choose a tag to compare

What's Changed

Added support for post-processing configurations via annotations and methods.

Full Changelog: v4.4.0...v4.5.0

ConfigLib version 4.4.0

26 Jan 13:24
Compare
Choose a tag to compare

What's Changed

  • Add builder option to specify charset for file encoding by @WiIIiam278 in #28

New Contributors

Full Changelog: v4.3.0...v4.4.0

ConfigLib version 4.3.0

02 Dec 11:35
Compare
Choose a tag to compare
  • Added a new interface, IOStreamConfigurationStore, that provides the two methods
    read and write which take an InputStream and OutputStream, respectively. This
    interface is implemented by the YamlConfigurationStore class.
  • Added several static methods to the YamlConfigurations class that correspond to
    these new read/write methods.

ConfigLib version 4.2.0

21 Aug 14:42
Compare
Choose a tag to compare

Support for polymorphic serialization

This release adds the Polymorphic and PolymorphicTypes annotations that can be used on types. Serializers for polymorphic types are not selected based on the compile-time types of configuration elements, but instead are chosen at runtime based on the actual types of their values. This enables adding instances of subclasses / implementations of a polymorphic type to collections.

Add SerializeWith annotation

This annotation enforces the use of the specified serializer for a configuration element or type. It can be applied to configuration elements (i.e. class fields and record components), to types, and to other annotations.

Add SerializerContext interface

Instances of this interface contain information about the context in which a serializer was selected. They are passed to the constructors of custom serializers if the serializers are instantiated by this library, or can alternatively be accessed through the new addSerializerFactory method of ConfigurationProperties objects.

ConfigLib version 4.1.0

05 Aug 01:16
Compare
Choose a tag to compare

ConfigLib version 4.0.0

24 Jul 20:46
Compare
Choose a tag to compare

This update contains several new features:

  • Support for Java records
  • Support for File, Path, URL, URI, Instant
  • New project structure that makes it easier to add support for additional file types

... and some breaking changes:

  • The code for saving and loading YAML files was moved from the configlib-core to the configlib-yaml module:
    • The Configurations class has been renamed to YamlConfigurations and its methods lost their -YamlConfiguration affix.
  • FieldFormatter has been renamed to NameFormatter

ConfigLib version 3.1.0

09 Jul 21:12
Compare
Choose a tag to compare
  • Added toBuilder method to create a builder from a properties object
  • Added serialization support for Bukkit's ConfigurationSerializable types
  • Added UUID serializer

ConfigLib version 3.0.0

07 Jul 16:43
Compare
Choose a tag to compare

This release represents version 3.0.0 - a complete rewrite of this library. It contains the plugin versions that are described in the IMPORT section of the README.