Skip to content

Releases: kumuluz/kumuluzee-config-mp

v2.0.0

14 Jul 14:31
Compare
Choose a tag to compare

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

04 Dec 06:44
Compare
Choose a tag to compare

This patch release fixes Optional<List<T>> and Optional<Set<T>> producers.

Bugs:

  • Fixed Optional<List<T>> and Optional<Set<T>> producers

v1.4.0

02 Apr 06:52
Compare
Choose a tag to compare

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

06 Nov 13:35
Compare
Choose a tag to compare

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 a public static T of(String) method, or
  • The target type T has a public Constructor with a String parameter, or
  • The target type T has a public 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

19 Jun 13:21
Compare
Choose a tag to compare

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

08 Jan 23:26
v1.1.1
8c06274
Compare
Choose a tag to compare

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

19 Dec 10:26
v1.1.0
3d928fe
Compare
Choose a tag to compare

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!