Releases: kumuluz/kumuluzee-config-mp
v2.0.0
We are excited to announce the next major release of KumuluzEE Config MP. KumuluzeEE Config MP 2.0.0 implements the MicroProfile Config 2.0 specification, which includes many improvements, among others the support for the @ConfigProperties
annotation which extracts bulk config properties into a POJO, the API which allows developers to determine the winning source for a configuration value, and more.
Note: This release of KumuluzEE Config MP requires the KumuluzEE 4.1.0 or higher in order to work correctly. Consequently, Java 11 or higher is also required.
Some of the bigger changes in the MicroProfile Config 2.0 specification like property expressions (configuration value interpolation) and configuration profiles were added to the core KumuluzEE and can be used with or without KumuluzEE Config MP extension. To read more about these changes see the KumuluzEE 4.1.0 release notes.
The @ConfigProperties
annotation allows bulk extraction of config properties into a CDI bean and works similarly to the KumuluzEE native @ConfigBundle
annotation. It works in the MicroProfile Config's environment and supports its features (e.g. converters, custom ConfigSource
implementations, ...). For example, take a look at the following class:
@ConfigProperties(prefix = "integrations.customer-service")
public class CustomerServiceConfig {
@ConfigProperty(name = "host", defaultValue = "example.com")
private String hostname;
private int port = 8080; // 8080 is the default value
private Optional<String> authorization;
// getters
}
The Config
API has also received some improvements. It includes a method to acquire a ConfigValue
instance, exposing metadata about the configuration value such as the configuration source that provided the value, its ordinal and the raw value before property expression evaluation. Additionally, the converter mechanism has been exposed, allowing manual conversion of arbitrary values through the Config
API.
For all changes included in this release, see the MicroProfile Config 2.0 specification.
Features:
- Implemented MicroProfile Config 2.0 specification
- Migrated to KumuluzEE 4.x.x and dropped support for Java 1.8
Bugs:
- Fixed default value not being used when injecting
Optional
with the default value supplied by@ConfigProperty
annotation
v1.4.1
v1.4.0
This version implements the Eclipse MicroProfile Config specification 1.4, which introduces new converters and some minor fixes.
Features
- Added new converters for byte, short and char.
Enhancements
- Implemented missing
Config
methods.
v1.3.0
We're releasing the KumuluzEE Config MicroProfile 1.3.0. This version implements the MicroProfile Config specification 1.3, which introduces a better implicit converter and removes redundant converters. This release also brings full support for Java 9+.
The implicit converter now also checks if the method of(String)
exists. The order in which the methods are checked has also been changed. From the specification:
An implicit converter is automatically provided if the following conditions are met:
- The target type
T
has apublic static T of(String)
method, or- The target type
T
has a public Constructor with a String parameter, or- The target type
T
has apublic static T parse(CharSequence)
method
Manual implementations of some converters that are now covered by the new implicit converter have been removed.
This release also brings support for the ConfigBuilder
, which lets you create a custom Config
instance composed of configuration sources and converters of your choosing.
Note that environment variable configuration source behavior has changed as of MicroProfile 1.3 specification. For a given property name, the configuration source now searches 3 environment variables:
- Exact match
- Replace all characters that are not alphanumeric with
_
. - Replace all characters that are not alphanumeric with
_
and convert to upper case.
We have already supported this change in KumuluzEE core with the release of 3.0.0. We have also made sure that backward compatibility is preserved so none of your existing configurations will break.
Features
- Added lookup for the method
of(String)
in implicit converter - Support for
ConfigBuilder
- Support for Java 9+
Enhancements
- Fixed the order in which methods are checked in implicit converter
v1.2.1
We're announcing the KumuluzEE Config MicroProfile v1.2.1. This version implements the MicroProfile Config specification v1.2.1, which introduces array converters and common sense converters.
Array converters enable the use of arrays when acquiring properties from configuration. For example, the configuration property 1,2,3
would be automatically converted to array of integers when injected into int[] intArray
.
The common sense converters come in handy when there is no registered converter for a given class. The implementation tries to convert String
to the required class using the class's constructor, valueOf(String)
method or parse(CharSequence)
method.
Another major part of this release is the inclusion of MicroProfile TCK, which checks the implementation for compliance with the MicroProfile Config specification.
Features
- Added array converters
- Added implicit common sense converter
Enhancements
- Added MicroProfile TCK tests
v1.1.1
This quick minor release includes an important packaging fix of release deployments that removes any references to the incorrect snapshot versions of provided dependencies. While the provided dependencies are only used to build against and are not a compile/runtime dependencies, some still need to be resolved by maven, which caused a build error if used.
v1.1.0
We're happy to announce the initial version of the KumuluzEE Config MicroProfile extension v1.1.0 for the KumuluzEE framework.
This extension marks the first of many stable implementations of the MicroProfile specification as we gear towards full stable MicroProfile 1.2 support in the coming days.
The extension comes with support for the MicroProfile Config 1.1 specification for standard and portable configuration of Java microservices. The implementation is built on top of the already existing configuration framework currently found in the framework. This means that it works hand in hand with the current configuration system and its source extension.
Any additional configuration source that you configure or add with either the existing KumuluzEE configuration framework or with the MicroProfile config API will work and be accessible with both of them. They're completely interoperable and will continue to be supported.
We're excited to get the extension into your hands!