Announcing WildFly Swarm 2017.3.2

WildFly Swarm 2017.3.2 is hot, just like the weather!

After a series of unfortunate weather events in which versions 2017.3.0 and 2017.3.1 met their early demise, we’re proud to announce version 2017.3.2.

What’s New?

  • Keycloak Updates

  • Logging noise

  • Auto Detection improvements

  • Performance improvements

  • OpenTracing support

  • Dependency Management

What is WildFly Swarm?

WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.

Each portion of the appserver is referred to as a fraction, which many times maps to a subsystem from WildFly, but also may include other discrete chunks of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.

Keycloak Updates

We’ve got a few things related to Keycloak for this release. The first is we’ve updated to 2.5.4.Final, bringing the latest bug fixes to you!

We’ve also introduced a Keycloak Client API for our fraction that allows you to define the equivalent keycloak.json content in project-defaults.yml! The big advantage to this is pulling out environment specific config from inside a WAR and into an overridable config file.

Full details on what can be set is available here, but here’s a quick example of what you can do:

  swarm:
    keycloak:
      secure-deployments:
        my.war:
          realm: my-relam
          bearer-only: true
          auth-server-url: http://localhost:9090/auth
          ssl-required: external
          resource: my-service

Logging noise

We’ve drastically reduced the amount of logging that spews forth by default on startup.

You can still see what was there by enabling DEBUG or higher logging, but it’s now hidden away unless you need it.

Auto Detection improvements

We’ve altered how auto detection works which provides some significant benefits in how it works.

The biggest being that we’re able to detect fractions based on usage in descriptor files!

For instance, we can now detect jsf if you don’t use any JSF classes in your application, but you define the FacesServlet in web.xml.

This feature will allow us to more easily improve what is auto detected in the future.

Performance improvements

Bob spend a good amount of time improving the startup performance and was able to enhance it by 15-20%. Well done, Bob!

Open Tracing Support

The Hawkular team has contributed a OpenTracing Hawkular fraction. This allows you to trace service invocations using Hawkular as a backend.

Dependency Management

If you are uisng dependency management section in your pom.xml, these are now properly supported.

Changelog

Release notes for 2017.3.0 are available here.

Bug

  • [SWARM-1145] Release fails due to missing parent pom’s (standalone-servers, testsuite) (Done)

  • [SWARM-1140] Logging and Undertow fractions are not auto-detected anymore for Vaadin (Done)

  • [SWARM-1133] fraction autodetection broken for messaging (Done)

  • [SWARM-1124] Large number of org/jboss/as modules are present in container /modules (Done)

  • [SWARM-1122] CDI fraction has unnecessary dependency on Undertow fraction (Done)

  • [SWARM-1119] Missing some annotated beans (Done)

  • [SWARM-1118] Not working Keycloak example because the project-defaults.yml is invalid (Done)

  • [SWARM-1117] run goal chokes on zip dependency (Done)

  • [SWARM-1112] Project with just the management-console fails to start (Done)

  • [SWARM-1109] IO Workers threads number is different from normal WildFly (Done)

  • [SWARM-1104] Revert back to loading the ConfigView/StageConfig before start so user provided mains can configure fractions. (Done)

  • [SWARM-1080] Build fails with "GC overhead exceeded" (Done)

  • [SWARM-1078] Packaging fat jar fails when using maven mirror that requires authentication (Done)

  • [SWARM-1071] Restore support for -Dswarm.project.stage.file and -Dswarm.project.stage (Done)

  • [SWARM-1068] StandaloneXmlParser incompatibility (Done)

  • [SWARM-1063] Swarm plugin executs when packaging is pom (Done)

  • [SWARM-1052] Wrong path is resolved in the HealthAnnotationProcessor.processArchive() (Done)

  • [SWARM-1048] Add unit regression tests to Swarm.stageConfig() (Done)

  • [SWARM-1047] Not working List of Map Configurable values with yml (Done)

  • [SWARM-1041] the configurable name "swarm.http.certificate.alias" is wrong (Done)

  • [SWARM-1031] Incorrect handling of transitive dependency with overridden version in dependencyManagement (Done)

  • [SWARM-1020] org.wildfly.swarm.cli.Option#parse checks the wrong position of equal when a long arg name with equal (Done)

  • [SWARM-1004] adding CDI fraction results in WARN messages in the log (Done)

  • [SWARM-970] EJB fraction + forced fraction autodetection = EJB Remote fraction included (Done)

  • [SWARM-965] Modules Unable to Locate Native Library (Done)

  • [SWARM-944] META-INF/swarm.swagger.conf is not considered (Done)

  • [SWARM-888] Gradle Plugin Hardcoded Modules resource directory (Done)

Enhancement

  • [SWARM-1135] Unable to enable category-specific logging via -Dswarm.logging.category.name=DEBUG (Done)

  • [SWARM-1131] Support building wildfly-swarm with user defined settings.xml (mvn -s …​) (Done)

  • [SWARM-1107] Should be List<Map<String, Object>> instead of List<String> for representing Keycloak Security Constrains (Done)

  • [SWARM-1105] Add HTTPS only configuration, disabling HTTP interface and management HTTP interfaces. (Done)

  • [SWARM-1103] Support embedded HTTPS certificate (Done)

  • [SWARM-1100] Swarmtool should support specifying additional dependencies (Done)

  • [SWARM-1099] Support maven war overlays in maven plugin run goal (Done)

  • [SWARM-1098] Gradle Plugin: Incremental Build (Done)

  • [SWARM-1081] Measure and improve boot-time performance. (Done)

  • [SWARM-945] OpenTracing Hawkular fraction (Done)

  • [SWARM-913] Improve warning message when HTTP/2 is requested in an unsupported environment (Done)

Component Upgrade

  • [SWARM-1125] Upgrade to Keycloak 2.5.4.Final (Done)

Task

  • [SWARM-1074] improve MavenPluginTest debuggability (Done)

  • [SWARM-1060] Upgrade to wildfly-camel-4.5.0 (Done)

  • [SWARM-1050] Update all examples and HowTos to use project-defaults.yml instead of project-stages.yml (Done)

  • [SWARM-946] OpenTracing Hawkular example app (Done)

  • [SWARM-912] write a blog post about running Java EE 7 Samples with Swarm (Done)

Sub-task

  • [SWARM-1065] Finer-grained logging categories (Done)

Feature Request

  • [SWARM-1029] Support Keycloak client config though *.yml (Done)

  • [SWARM-974] scan deployment descriptors during fraction autodetection (Done)

  • [SWARM-898] Non main() way to add Services and activate them in user deployment (Done)

  • [SWARM-897] Non main() way to create topics and queues on messaging server (Done)

  • [SWARM-894] Provide alternatives to SwaggerArchive methods to prevent main() (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

  • sverkera

  • Aaron Anderson

  • Heiko Braun

  • Harry Chan

  • Thomas Diesler

  • Ken Finnigan

  • Adler Fleurant

  • Michael Fraefel

  • George Gastaldi

  • Pavol Loffay

  • Bob McWhirter

  • Falko Modler

  • Tomas Remes

  • Michał Szynkiewicz

  • Yoshimasa Tanabe

  • Ladislav Thon

  • Pascal Wölfle

  • Petr Široký

Examples

  • Heiko Braun

  • Ken Finnigan

  • Pavol Loffay

  • Bob McWhirter

  • Falko Modler

  • Yoshimasa Tanabe

Users Guide

  • larmic

  • Alex Soto

  • emag

  • Heiko Braun

  • Ken Finnigan