Skip to content

ConfigLib version 4.2.0

Compare
Choose a tag to compare
@Exlll Exlll released this 21 Aug 14:42
· 17 commits to master since this release

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.