Skip to content

Tags: Exlll/ConfigLib

Tags

v4.5.0

Toggle v4.5.0's commit message

Verified

This commit was signed with the committer’s verified signature.
Exlll Exlll
Update version to 4.5.0

v4.4.0

Toggle v4.4.0's commit message
Update version to 4.4.0

v4.3.0

Toggle v4.3.0's commit message
Update version to 4.3.0

* 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.

v4.2.0

Toggle v4.2.0's commit message
Update version to 4.2.0

 **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.

v4.1.0

Toggle v4.1.0's commit message
Update version to 4.1.0

* Added jitpack.io support (by @RobotHanzo)
* Added two new NameFormatters (by @Insprill)
  - LOWER_KEBAB_CASE
  - UPPER_KEBAB_CASE
* Fixed handling of comments that contain newlines (by @Insprill)

v4.0.0

Toggle v4.0.0's commit message
Update version to 4.0.0

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

v3.1.0

Toggle v3.1.0's commit message
Update version to 3.1.0

v3.0.0

Toggle v3.0.0's commit message
ConfigLib v3

v2.2.0

Toggle v2.2.0's commit message
Added @Format annotation

This annotation can be used to apply a FieldNameFormatter
to a Configuration without having to instantiate a Properties
object. The FieldNameFormatter returned by the annotation
takes precedence over the value returned by the Properties object.

Added FieldNameFormatters.UPPER_UNDERSCORE

v2.1.0

Toggle v2.1.0's commit message
Added FieldFilter

If your configuration has a lot of fields and you want to exclude some
of these fields without making them final, static or transient, you can
configure your properties object to use additional FieldFilters.

A FieldFilter filters the fields of a configuration class by a specified
criterion. For example, if you only want to include fields whose names
don't start with 'ignore', you would add the following filter:

YamlProperties properties = YamlProperties.builder()
                .addFilter(field -> !field.getName().startsWith("ignore"))
                // ...
                .build();