Skip to content

Ageris 0.6.0

Choose a tag to compare

@lichtsinn lichtsinn released this 11 Oct 05:53
· 16 commits to master since this release

Ageris 0.6.0 adds support for Helidon SE.

Get it

<dependency>
    <groupId>io.github.lichtsinn</groupId>
    <artifactId>ageris-core</artifactId>
    <version>0.6.0</version>
</dependency>
implementation 'io.github.lichtsinn:ageris-core:0.6.0'

Requires Java 17 or later. The Helidon module requires Java 27.

Using Ageris with Helidon

The new module ageris-helidon sets Ageris up in a Helidon 27 SE application from Helidon's configuration:

<dependency>
    <groupId>io.github.lichtsinn</groupId>
    <artifactId>ageris-helidon</artifactId>
    <version>0.6.0</version>
</dependency>
ageris:
  application: myapp
  path: /etc/myapp/config
  feature-flags:
    files: ["/featureflags.json"]

Create Ageris yourself with one call:

AgerisHelidon ageris = AgerisHelidon.create(config.get("ageris"));
FeatureFlagManager featureFlagManager = ageris.featureFlagManager();

Or let Helidon's service registry inject the managers, with no setup code:

@Service.Singleton
class Greeter {

    @Service.Inject
    Greeter(FeatureFlagManager featureFlagManager) { ... }
}
  • The settings have the same names as in the Spring Boot starter.
  • A manager is loaded before anything receives it. If the first attempt to load the files fails, the application does not start, and the error says why; ageris.fail-on-first-load-failure: false lets it start anyway.
  • With Helidon's health support, a readiness check named ageris reports the managers: up when loaded or stale, down when one never loaded.
  • With ageris-openfeature and the OpenFeature SDK present, an AgerisProvider is available as well.
  • Bindings of policies and other options are set through an AgerisCustomizer; a ConfigurationFetcher of your own reads the files from somewhere other than a directory.
  • With the service registry, nothing is set up while no files are set, so adding the dependency alone changes no application.

It is for Helidon SE on Helidon 27, and so needs Java 27. See Using Ageris with Helidon in the README.

Also changed

  • The build of Ageris itself now also runs on Java 27, and releases are built with it. ageris-core, ageris-openfeature and ageris-spring-boot-starter are still compiled for Java 17.

Upgrading from 0.5.0

Nothing to do.

Dependencies

Unchanged from 0.5.0: Jackson 2.22, slf4j 2.0 and commons-io 2.22. ageris-core is also tested with Jackson 2.15.4, slf4j 1.7.36 and commons-io 2.11.0; ageris-openfeature with the OpenFeature SDK from 1.16.0 to 1.23.0; ageris-spring-boot-starter with Spring Boot 4.0.0 to 4.1.1; and ageris-helidon with Helidon 27.0.0.