Releases: kumuluz/kumuluzee
v2.3.0
We're announcing the availability of KumuluzEE version 2.3.0.
This version includes two (2) new major features described below, further improves on the new configuration framework introduced in version 2.1.0, improves compatibility of components with the EE specification, aligns with the upstream versions of all the EE components with the latest ones and contains several bug fixes and quality of life enhancements.
We're please to announce two new major additions to KumuluzEE, which both help bring the framework closer to more supported Java EE components as well as lay the groundwork for enabling extensibility to support more cloud-native features:
-
KumuluzEE extensions, which allow dynamic loading of additional functionality not present in the Java EE specification (like service discovery, remote configuration, ...) and a few other quality of life improvements for developers as well as bringing the ability to add native features for cloud centric apps and services. The extensions function the same way as the EE components in the framework, which means they are completely optional and modular and can be enabled by simply adding the appropriate dependency to your project. Once added, KumuluzEE will automatically find it and set it up. The extensions will be configured exclusively through the new configuration framework as we are moving the entirety of the configuration to it. Together with version 2.3.0 we're also launching a number of extensions that demonstrate and use this new feature. You can find the most resent list on the README page.
-
Full JTA support integrated with the other EE components available in KumuluzEE. We're shipping with Narayana as the initial implementation of JTA, with the option of adding more down the line. JTA follows the footsteps of other components for being modular, which means you can add or remove it with any combination of other components, and KumuluzEE will automatically configure it correctly. The standout feature with JTA is the ability to use container managed transaction in your CDI beans, both with JPA and plain JDBC connections. To accompany JTA we're also bringing support for built-in dynamic XADataSource configuration, creation and configuration with full and automatic support for the JTA global transaction lifecycle. You can configure it using the configuration framework, the same way you can configure normal datasources.
We're also hard at work on developing multiple extensions that enhance the development and usage of microservices, with the goal of aligning them and conforming to the new microprofile specifications (config, health, ...) that are in development right now.
Features
- Added the new JTA component implemented by Narayana with support for CDI container transactions and JPA
- Added support for custom initialised XADataSources with the config framework when using JTA
- Added KumuluzEE extensions with full support for dynamic modular loading and dependency specification to both EE components and extensions.
Enhancements
- Updated all the Java EE component implementations to their latest versions as of this release
- Enabled injection of the default (only one) persistence context without specifying it's unit name
- Refactored the configuration framework utilities to align it with the extension loading mechanism and allow additional config source extensions
- Added support for subscribing to configuration value changes where supported by the configuration source
- Enabled automatic Bean validation integration with JAX-RS
- Simplified the rules for the config keys environment variable names for better compatibility throughout the various operation systems
- Added the ability to fetch a config key type and, if it's a map, the ability to fetch it's keys
Bugs
- Fixed injection of the
ConfigurationUtil
in a CDI environment - Added the default Jetty logging to JUL to fix the problem of Weld (CDI) not printing stack traces when a
dependency is not satisfied
v2.3.0-beta.2
We're releasing the second beta for KumuluzEE version 2.3.0. This beta includes further work on integration JTA implemented by Narayana with the rest of the framework, with the highlight being full support for XADataSources that is integrated to the JTA lifecycle.
We're also continuing work on the new extensions mechanism, fixing some critical bugs that were found in the first beta as well as further increasing the ability for adding dependencies to any EE components when specifying extension definitions. Included is also some work on the configuration framework. Mostly bug fixes and a new simplified set of rules for config key names in the environment variable source for better compatibility across systems.
The beta also includes upstream alignment with the latest versions of the Java EE component implementations as well as more small bug fixes and a few minor additions that improve compatibility with the EE specification.
If nothing major is found, we can expect the final release soon.
Features
- Added support for custom initialised XADataSources with the config framework when using JTA
Enhancements
- Updated all the Java EE component implementations to their latest versions as of this release
- Enabled automatic Bean validation integration with JAX-RS
- Updated the extension loaders to correctly validate dependencies and duplicates
- Simplified the rules for the config keys environment variable names for better compatibility throughout the various operation systems
- Added the ability to fetch a config key type and, if it's a map, the ability to fetch it's keys
Bugs
- Fixed a bug where an extension wouldn't load if it had a dependency on the Servlet EE component
- Fixed injection of the
ConfigurationUtil
in a CDI environment - Added the default Jetty logging to JUL to fix the problem of Weld (CDI) not printing stack traces when a
dependency is not satisfied - Fixed a
NullPointerException
that sometimes occurred when loading certain extensions
v2.3.0-beta.1
We're releasing the first beta for KumuluzEE version 2.3.0. The beta includes the groundwork for full JTA support implemented by Narayana through out all the required and available EE components in the framework, as well the new KumuluzEE extensions that we will be launching along side this version when released.
The extensions will allow dynamic loading of additional functionality not present in the Java EE specification (like service discovery, remote configuration, ...) and a few other quality if life improvements for developing various services and apps. The extensions function the same as the EE components in the framework, which means they are completely modular and optional and can be enabled by simply adding the appropriate dependency to your project. Once added, KumuluzEE will automatically find it and set it up. The extensions will be configured exclusively through the new configuration framework as we are moving the entirety of the configuration to it.
The beta also includes some small bug fixes and a few minor additions that improve compatibility with the EE specification.
Features
- Added the new JTA component implemented by Narayana with support for CDI container transactions and JPA
- Added KumuluzEE extensions with full support for dynamic modular loading and dependency specification to both EE components and extensions.
Enhancements
- Enabled injection of the default (only one) persistence context without specifying it's unit name
- Refactored the configuration framework utilities to align it with the extension loading mechanism and allow additional config source extensions
- Added support for subscribing to configuration value changes where supported by the configuration source
v2.2.0
We're announcing the availability of KumuluzEE version 2.2.0. This is a relatively small release which includes a few key additions to the advanced logging framework introduced in the previous release. The reason for the minor version bump is that we added a few enhancements which are described below. If you're using it and the KumuluzEE Logs project, you need to also update it to its latest corresponding version that supports the included enhancements.
We also removed the barrier for running the app inside a JAR to make way for the plugin that will correctly package an app in a single jar. The plugin will follow shortly.
Enhancements
- Added additional logging methods to LogCommons method entry and exit that support usage of custom markers. Before this change the marker was automatically set to a predefined one.
- Extended the build-in log messages to more easily construct them.
- Removed the barrier for running inside JARs. WIth the other fixes this enables initial JAR support with outside dependencies.
- Code cleanups.
v2.2.0-beta.1
We're releasing a quick beta now to test a few additions to the advanced logging framework, which was added in the last release. We found them to be very useful, so we wanted to release them as soon as possible. There are also some code cleanups and no more barrier for running an app inside a JAR. A more convenient plugin to correctly package it in a single jar will follow shortly.
Enhancements
- Added additional logging methods to LogCommons method entry and exit that support usage of custom markers. Before this change the marker was automatically set to a predefined one.
- Extended the build-in log messages to more easily construct them.
- Removed the barrier for running inside JARs. WIth the other fixes this enables initial JAR support with outside dependencies.
- Code cleanups.
v2.1.1
v2.1.0
We're finally here. Announcing the availability of KumuluzEE version 2.1.0.
This version aligns the versions of the various EE components with the latest ones and contains several bug fixes, a handy BOM project for easier dependency inclusions (so you don't need to fiddle with component versions) and project profiles for easier inclusion of the most popular combination of components with initial support for the microprofile specification.
We're also releasing two new components included out of the box with the same flexibility of choosing from various implementations as you can now with our EE standard components.
-
Framework wide configuration management which enables easier, flexible and dynamic configuration of your microservices as well as from now on KumuluzEE itself. It initially bundles support for file and environment variables configuration source. The component allows you to have multiple configuration sources from which it can retrieve parameters. The order of which the sources are tried is determined by their priority. The configuration sources are completely pluggable and more will be added soon (etcd, ...) as part of the KumuluzEE Cloud group of components and extensions
-
KumuluzEE advanced logging framework for easier and flexible log management of a microservice and its functionality. It contains an easier way to manage your basic as well as more complex logging scenarios with pluggable support for any logging frameworks. The implementations will be released separately as part of the KumuluzEE Logs project. It currently includes the log4j2 implementation with more coming soon.
The new components will nicely complement the Java EE ecosystem with features that were missing and are needed in a microservice world. And as with the whole spirit of KumuluzEE, they are all optional if you don't want to use them.
Another important addition to this version is the inclusion of built-in dynamic datasource configuration, creation and configuration. This is the first part of KumuluzEE that will use the new configuration management component described above, which will allow easy and flexible configuration of datasources. Native support for 3rd party datasource implementations will be added at a later time, but currently you can simply choose to not use the built-in one and add your own. However we believe that the built-in datasource implementation is one of the best ones out there (光 HikariCP) so we recommend using it.
Features
- Added the main BOM (bill of materials) to more easily manage and start using KumuluzEE
- Added support for profiles which include a set of preset components for the most popular and commonly used components and specifications
- Added support for framework wide configuration mechanism with the file and environment variable sources included together with CDI bindings for easier access to config values
- Added support for dynamic datasource creating and registration using the now standard configuration mechanism also added in this release
- Added support for the KumuluzEE advanced logging framework with pluggable implementations
Enhancements
- Updated various components to their latest version (Jetty, weld, eclipselink, mojarra, jersey, hibernate and jackson)
- Added internal support for dynamically adding filters
- Added a default filter for the
X-Powered-By
header
Bugs
- Added support for additional configuration parameters for fine tuning the underlying server
- Various small bug fixes and enhancements
v2.1.0-beta.4
This beta update includes initial functionality for the KumuluzEE advanced logging framework. It contains an easier way to manage your basic as well as more complex logging scenarios with pluggable support for the most popular logging frameworks. The implementations will be released separately as part of the KumuluzEE Logs project. It currently includes the log4j2 implementation with more coming soon.
There are also some fixes and cleanups leading up to the final release.
Features
- Added support for the KumuluzEE advanced logging framework with pluggable implementations
Enhancements
- Added the ability to retrieve nested array objects with the new configuration management
- Updated the datasource retrieval to now correctly use the configuration management
Bugs
- Added missing driver config property for datasource creation
v2.1.0-beta.3
This beta update includes initial functionality for framework wide configuration management with initial support for file and environment variables configuration source. More sources (etcd, consul, ...) will be added as part of the KumuluzEE Cloud group of extensions which will be released at a later date. In addition it also includes initial support for dynamic datasource creation and registration with a new default built in datasource implementation.
The new version should be released in the next few days if no issues arise.
Features
- Added support for framework wide configuration mechanism with the file and environment variable sources included together with CDI bindings for easier access to config values
- Added support for dynamic datasource creating and registration using the now standard configuration mechanism also added in this beta
Enhancements
- Added internal support for dynamically adding filters
- Added a default filter for the
X-Powered-By
header
v2.1.0-beta.2
This beta update includes various component updates to put it inline with the current versions and includes a very handy BOM (bill of materials) as well as initial support for commonly used component and specification profiles. The first profile added is the ever so popular micro profile which will track the specification outlined in the community and can be found here. More profiles will be added in the future.
The new version should be released in the next few days if no issues arise.
Features
- Added the main BOM (bill of materials) to more easily manage and start using KumuluzEE
- Added support for profiles which include a set of preset components for the most popular and commonly used components and specifications
Enhancements
- Updated various components to their latest version (Jetty, weld, eclipselink, mojarra, jersey, hibernate and jackson)
Bugs
- Added support for additional configuration parameters for fine tuning the underlying server