We are happy to announce the release of SeedStack 17.4 «Lotus». This is mostly a maintenance release but some new components are provided.

New features

JMH add-on

A new add-on for writing benchmarks using JMH is provided. This add-on provides several benefits for benchmarking SeedStack applications:

  • Configuration of JHM using SeedStack configuration,
  • Injection of benchmarks,
  • A launcher is available for running benchmark as self-contained applications (like in a capsule).

Seed initializers

Classes implementing SeedInitializer are invoked at SeedStack JVM-wide initialization, allowing to do early initialization (before kernel is started).

Business fluent assembler

When merging lists of DTO to aggregates, the fluent assembler threw an exception if some aggregates where found in the repository and some others were created with the factory. This is now controllable with an argument and mixed origins are allowed by default.

Fixes

Tomcat + Logback error

In some runtime environments, using Tomcat with Logback auto-configuration lead to an exception. This has been fixed.

Tomcat 8+ and external classpath directories

A change in the handling of external classpath locations in Tomcat starting with version 8 lead to scanning issues. Specifically using a <PreResources> directory mounted on WEB-INF/classes configuration prevented SeedStack from scanning the WEB-INF/classes internal to the WAR. This is resolved.

JMS refreshing of old connections

When using the automatic reconnection of JMS connections, the JMS add-on kept track of all past connections even closed ones, not in use anymore. This lead to an overload of the JMS broker when a refresh occurred. This has been fixed and closed connections are no longer tracked.

Other fixes

You can find about all other fixes by checking the detailed change logs of each component on GitHub, in their release section. The versions of all components and the link to their changelog is available at the end of this article.

Changes

Configuration with properties

Previously, properties files were mapped by the configuration system as flat keys, ignoring the dot as a nesting separator. This has changes and properties files are mapped in-depth. This is more intuitive and allows properties files to work seamlessly with other formats like YAML.

One important side-effect is that you cannot give a value to a property (test) already used as a prefix of another property (test.subProperty). This is also the reason why system properties are still mapped as flat keys as they do not satisfy this constraint (for instance java.vendor and java.vendor.url both have a value).

Feign add-on

Feign no longer being part of Netflix components, a specific add-on has been created for it.

Component versions

General

Core

Add-ons