Tags: Exlll/ConfigLib
Tags
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.
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.
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
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
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();
PreviousNext