Skip to content

Releases: kumuluz/kumuluzee

v4.1.0

21 Jun 09:41
Compare
Choose a tag to compare

We are announcing the availability of KumuluzEE version 4.1.0.

This release brings improvements to the configuration framework, such as configuration profiles, improved variable interpolation, and more!

Configuration profiles can be used to define plug-in configuration fragments, that can be turned on or off at the deployment time. The fragments can define new configuration values or override existing ones in config.yml file. Let's look at an example defining the profile live. Start by defining the config.yml file as usual:

config.yml

integrations:
  customer-service:
    url: http://localhost:8081

Now let's define the live profile fragment:

config-live.yml

integrations:
  customer-service:
    url: http://customer-service.example.com:8081

When deploying the service, the profile can be activated by setting the configuration value kumuluzee.config.profile to live, for example add the environment variable:

KUMULUZEE_CONFIG_PROFILE=live

Multiple configuration profiles can be activated by setting the configuration value kumuluzee.config.profile as CSV. When overriding values, the last defined profile has the largest priority. For example: KUMULUZEE_CONFIG_PROFILE=docker,live.

The configuration profiles mechanism is generic and can be used to alter the behavior of your custom ConfigurationSource implementations by implementing the initProfile(String profileName) function of the interface. The interface now also defines the default implementations of converter functions, which makes implementing custom configuration sources easier and avoids duplication of implementations when the backing configuration source returns only String values.

Another improvement added in this release is the support for nested value interpolation and support for default values when using value interpolation. To understand these changes better, take a look at the next configuration:

integrations:
  active-tenant: t2
  tenant-t1:
    url: t1.example.com
  tenant-t2:
    url: t2.example.com
  
  customer-service:
    url: ${integrations.tenant-${integrations.active-tenant:t1}.url}/customer-service

In this case the integrations.customer-service.url configuration would be t2.example.com, since integrations.active-tenant is t2. If active tenant configuration key would not be defined, the default value (t1, defined after the :) would be used instead.

See the full changelog below.

Features:

  • Added support for configuration profiles
  • FileConfigurationSource loads additional files when configuration profile is activated

Enhancements:

  • Improved configuration value interpolation by adding nested interpolation and default value support
  • Implemented ConfigurationSource converter functions as default interface functions
  • Upped jandex version

Bugs:

  • Fixed return value of yaml configuration source: return Optional.empty() if found config value is a Map or a List
  • Defined default implementation for the deprecated getConfigurationSource() method in order to be able to remove it in the next major version

v4.0.0

27 May 15:01
Compare
Choose a tag to compare

We are happy to announce the next major release of KumuluzEE 4.0.0. This release includes a major Jetty upgrade, support for the latest released versions of Java, including the Java 17 LTS version and the use of JakartaEE 8 artifacts replacing the JavaEE 8 artifacts.

One of the major changes of this release is definitely the added support for the Java version 17. Java 17 is the latest LTS version, which are the most suitable versions for production use. Compared to the previous LST version (Java 11), Java 17 brings exciting new features such as records, text blocks, enhanced switch expressions, pattern matching of the instanceof operator, teeing collector for the Stream API and more.

Another exciting change in the new release of KumuluzEE is the transition from Jetty 9 to Jetty 10. The updated version of Jetty brings many important bugfixes and improvements. The Servlet API 4.0 is now fully implemented allowing better HTTP/2 support within internal components and general Servlet 4.0 usage according to the specification. The WebSocket implementation has been refactored, also allowing HTTP/2 usage. The Jetty HTTP client (used by internal components and our extensions, e.g. JAX-RS HTTP client, kumuluzee-rest-client's backing HTTP client) has also been improved, with the major feature being the support for dynamic protocol upgrade to HTTP/2.

Another change in relation to Java versions is the end of support for the Java 1.8 runtime. The support for Java 1.8 was dropped in Jetty 10 and in turn we are also dropping support in KumuluzEE 4. If you are still running on Java 1.8, this is the perfect opportunity to upgrade, as the newer Java versions bring many exciting features.

Another transition we have made (also related to the Jetty 10 upgrade) is the transition from JavaEE 8 to JakartaEE 8 artifacts. This transition should not affect the actual code, only the locations and names of Maven artifacts. If you are referencing any JavaEE artifacts in your code, make sure to update the references there too.

The full list of breaking changes in this release:

  • KumuluzEE no longer supports Java 1.8 runtime, since the support for Java 1.8 has been dropped in Jetty 10.
  • Replaced JavaEE 8 artifacts with the JakartaEE 8 artifacts. If you are using JavaEE artifacts in your code, you should be able to find equivalent artifacts in the JakartaEE namespace.
  • Removed excludedAgentPatterns from gzip configuration since it was removed from Jetty.

See the full changelog below.

Features:

  • Upgraded from Jetty 9 to Jetty 10
  • Added support for Java 16, 17 and 18 and dropped support for Java 1.8
  • Use JakartaEE artifacts instead of JavaEE

Enhancements:

  • Upped dependency versions
  • Removed excludedAgentPatterns from gzip configuration since it was removed from Jetty

Bugs:

  • Updated jar loading to add support for multi-release jars when running in UberJar
  • Added missing spaces in dependency validation log messages
  • More robust exception handling when loading configuration file
  • Updated JAX-WS annotation processor in order to support some edge cases

v4.0.0-beta.1

11 Apr 07:10
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

We are happy to announce the first Beta of KumuluzEE 4.0.0. This is the first prerelease of the major release, which brings a major Jetty upgrade, support for the latest released versions of Java, including the Java 17 LTS version and the use of JakartaEE 8 artifacts replacing the JavaEE 8 artifacts.

The breaking changes in this release are:

  • KumuluzEE no longer supports Java 1.8 runtime, since the support for Java 1.8 has been dropped in Jetty 10.
  • Replaced JavaEE 8 artifacts with the JakartaEE 8 artifacts. If you are using JavaEE artifacts in your code, you should be able to find equivalent artifacts in the JakartaEE namespace.
  • Removed excludedAgentPatterns from gzip configuration since it was removed from Jetty.

See the full changelog below.

Features:

  • Upgraded from Jetty 9 to Jetty 10
  • Added support for Java 16, 17 and 18 and dropped support for Java 1.8
  • Use JakartaEE artifacts instead of JavaEE

Enhancements:

  • Upped dependency versions
  • Removed excludedAgentPatterns from gzip configuration since it was removed from Jetty

Bugs:

  • Updated jar loading to add support for multi-release jars when running in UberJar
  • Added missing spaces in dependency validation log messages
  • More robust exception handling when loading configuration file
  • Updated JAX-WS annotation procesor in order to support some edge cases

v3.12.2

01 Oct 08:37
Compare
Choose a tag to compare

This patch release fixes a bug where execution of uber jar plugin fails when building project with the latest Maven (3.8.2).

Bugs:

  • Fixed uber jar plugin when executing with Maven version 3.8.2 or above

v3.12.1

15 Feb 11:04
Compare
Choose a tag to compare

This patch release fixes a bug where configuration sources were not ordered correctly during EeConfig initialization.

Bugs:

  • Sort configuration sources after their initialization from service loader

v3.12.0

13 Jan 13:11
Compare
Choose a tag to compare

We are excited to announce a new KumuluzEE minor version - KumuluzEE 3.12.0! The most significant feature in this release is the support for Java 15. Dependencies have been updated to their latest minor versions and a collection of tough bugs have been cracked. Check out the full changelog below:

Features:

  • Support for Java 15

Enhancements:

  • Use the new API for Jetty SSL configuration
  • Added GraphQL as an extension group
  • Upped dependency versions

Bugs:

  • Fixed integration between Agroal and Narayana for XA transactions
  • Fixed incorrect parsing of transaction-isolation configuration value
  • Fixed incorrect jUnit scope
  • Resolved dependency conflict in MP 3.3

v3.11.0

15 Sep 11:17
Compare
Choose a tag to compare

This release provides a set of new features, enhancements, and bugfixes.

Features:

  • New configuration section for persistence units with an option to continue the startup on DB connection error on init.

Enhancements:
Upped the following Microprofile 3.3 modules:

Bugs:

  • Fixed the issue with microprofile 3.3 JWT library related to not denying requests when the authorization header is not supplied.

v3.10.0

04 Jun 08:28
Compare
Choose a tag to compare

This release provides a set of new features, enhancements and bugfixes.

Features:

  • Added gzip compression option for Jetty.

Enhancements:

  • Added missing validator options for datasource connection pool.
  • Upped Jetty version.
  • Upped Jackson version.
  • Lifted EL to support Java 14.
  • Added method ConfigurationUtil.getList.

Bugs:

  • Fixed the issue with snakeyaml triggering Logger method before logging.

v3.9.0

08 Apr 10:01
Compare
Choose a tag to compare

This release includes a new profile for MicroProfile 3.3 specification.

The new MicroProfile version brings updates to the following modules:

Features:

  • Added MicroProfile 3.3 profile.

Bugs:

  • Fixed the file configuration source initialisation logging.

v3.8.0

06 Mar 10:31
Compare
Choose a tag to compare

We are happy to announce the release of the KumuluzEE 3.8.0. The new release brings a new database connection pool implementation which improves the JTA transaction handling.

The new version of the framework includes the Agroal database connection pool, which is used with the JTA transactions. It improves transaction handling and fixes some existing problems. Non-JTA datasources still use the HikariCP connection pool. The HikariCP is wrapped in the Agroal API, the version of the HikariCP has been upped from 2.7.9 to 3.4.1 (changelog).

The new connection pool implementation brings some new configuration options, while some old ones were deprecated. The list of all available configuration properties is listed in the EeConfig wiki.

We have also included the missing integration between CDI and JTA components, which improves the propagation of JTA events.

Features:

  • Added Agroal database connection pool.
  • Upped the version of HikariCP from 2.7.9 to 3.4.1.

Bugs:

  • Fixed JTA transaction rollback.
  • Fixed the propagation of JTA events.