Announcing WildFly Swarm 2018.5.0

WildFly Swarm 2018.5.0

This May be a good release, but you can be the judge of that!

What’s New?

  • Eclipse MicroProfile fixes and improvements

  • Update fractions to match WildFly 11 configuration

Eclipse MicroProfile fixes and improvements

  • MicroProfile JWT

    • It’s now possible to load public keys from JWKS URI using the swarm.microprofile.jwt.token.jwks-uri config property

    • It’s now possible to specify a file: or classpath: reference to the public key in swarm.microprofile.jwt.token.signer-pub-key config property

    • Configuration - roles properties file is now optional

    • A JAX-RS resource with no @RolesAllowed annotation is now secured properly

    • By default, if there is no class-level security annotation, an unconstrained resource method has always an implicit @DenyAll. It’s now configurable through swarm.microprofile.jwt.default-missing-method-permissions-deny-access config property

  • MicroProfile Fault Tolerance

    • Support @Asynchronous @CircuitBreaker and @Asynchronous @Retry combinations

    • Fraction configuration properties and limitations are now properly documented

  • MicroProfile OpenAPI

    • Endpoints that accept arrays and generic types are supported properly

Update fractions to match WildFly 11 configuration

WARNING: Breaking changes!

In this release, we updated default configuration of various fractions to better match default standalone-full.xml configuration of WildFly 11. As part of that, we made sure some more arcane Java EE features are accessible and easily usable.

The ejb-remote fraction, which is used to enable EJB remoting, now also enables remote naming and remote messaging.

Enabling stateful EJB passivation is now possible. Note that, due to WFLY-10280, EJB passivation only works if ejb-remote is present.

The infinispan fraction no longer enables clustered setup when the jgroups fraction is present. The Infinispan configuration is always local. This is to make sure that we don’t enable clustered setup when JGroups are brought in transitively, e.g. through the messaging fraction. It has been the case for quite some time that WildFly Swarm intentionally doesn’t support clustering, and this change is part of it.

Previously, queues and topics in messaging were automatically created on demand. This is no longer the case. You have to create queues and topics explicitly in project-defaults.yml, or enable on-demand creation. On-demand queues/topics creation was an unintentional consequence of a seemingly innocent configuration difference. For more information, see the explanation in this pull request.

Default configuration of the Elytron subsystem is now much closer to WildFly’s. Elytron is the new security subsystem in WildFly, but it hasn’t received much attention in WildFly Swarm yet.

Changelog

Release notes for 2018.5.0 are available here.

Enhancement

  • [SWARM-1077] Possibility to blacklist auto-detected fractions (Done)

  • [SWARM-1950] MP JWT: have to put the entire literal public key to project-defaults.yml, instead of being able to specify a file name (Done)

  • [SWARM-1952] MP JWT: can’t use value of the "upn" claim for roles mapping, even though the TCK suggests it’s possible (Rejected)

  • [SWARM-1967] Provide ability to enable B3 Header Propagation in Jaeger (Done)

  • [SWARM-1981] Include the Infinispan fraction in 'full' to enable caching and passivation (Done)

  • [SWARM-1992] Provide an example configuration that shows how to enable security for remote EJBs (Done)

  • [SWARM-2003] Support loading custom keycloak.json files from the classpath (Done)

Documentation

  • [SWARM-1238] should the MultiStartMojo.startArtifact require the "swarm" classifier to be configured manually? (Duplicate Issue)

Bug

  • [SWARM-1670] MP FT - Asynchronous/CircuitBreaker combination does not work (Duplicate Issue)

  • [SWARM-1916] need prominently visible documentation of hollow JAR limitations (Done)

  • [SWARM-1917] Can’t modify default swarm mail attribute through project-defaults.yml (Done)

  • [SWARM-1926] Issues with Support of Environment variables in containerized deployments (Done)

  • [SWARM-1931] Ribbon demos are failing (Done)

  • [SWARM-1937] Stateful session beans don’t passivate in wildfly-swarm (Done)

  • [SWARM-1944] MP fault tolerance: @Retry doesn’t work when the method is @Asynchronous (Done)

  • [SWARM-1945] MP fault tolerance: @CircuitBreaker doesn’t work when the method is @Asynchronous (Done)

  • [SWARM-1946] MP fault tolerance: too many concurrent requests to @Bulkhead @Fallback method can lead to fallback rejection (Done)

  • [SWARM-1951] MP JWT: have to specify "rolesProperties" for the "JWTLoginModule" even if I don’t need it (Done)

  • [SWARM-1953] MP JWT: JAX-RS resource with no @RolesAllowed annotation isn’t secured properly (Done)

  • [SWARM-1954] MP JWT: unconstrained method denied access if the resource also contains constrained method (Done)

  • [SWARM-1963] wildly inconsistent MicroProfile configuration keys (Done)

  • [SWARM-1965] Project build directory not being set for StartMojo when invoked from MultiStartMojo (Done)

  • [SWARM-1970] Multistart mojo does not detect the classifier (Done)

  • [SWARM-1971] MicroProfile OpenAPI fails on resource methods taking parameterized arguments or arrays (Done)

  • [SWARM-1974] Fraction plugin does not support repeatable @Configurable (Done)

  • [SWARM-1987] Config API doesn’t allow composite Lists / Maps, which prevents fully configuring e.g. Elytron (Done)

  • [SWARM-1988] NoClassDefFoundError when using wildfly microprofile config through YAML file (Done)

  • [SWARM-1990] [Gradle] Package task is not generating artifact with the right name (Done)

  • [SWARM-2009] ArtifactDeployer assumes artifactId has no dots in it (Done)

Feature Request

  • [SWARM-1782] Allow customized uberjar filename via Maven config (Done)

Task

  • [SWARM-1892] add tests for the Java MVC fraction (Done)

  • [SWARM-1934] Try to improve Keycloak SecurityArchivePreparer for it to load keycloak.json better (Done)

  • [SWARM-1943] Mark opentracing as stable (Done)

  • [SWARM-1948] MP FT - document HystrixCommandInterceptor.SYNC_CIRCUIT_BREAKER_KEY config property (Done)

  • [SWARM-1983] update default fraction configuration to WildFly 11 (Done)

  • [SWARM-1984] Remove Ribbon Secured and update Keycloak demo instead (Done)

Resources

Per usual, we tend to hang out on irc.freenode.net in #wildfly-swarm.

All bug and feature-tracking is kept in JIRA.

Documentation for this release is available:

Thank you, Contributors!

We appreciate all of our contributors since the last release:

Core

  • frans

  • John Alström

  • Sergey Beryozkin

  • Heiko Braun

  • Gary Brown

  • Ken Finnigan

  • George Gastaldi

  • François JACQUES

  • Martin Kouba

  • Daniel P

  • Tomas Radej

  • Harsha Ramesh

  • Ramesh Reddy

  • Michał Szynkiewicz

  • Ladislav Thon

  • Gregor Tudan