Announcing WildFly Swarm 2017.9.4

WildFly Swarm 2017.9.4

What a strange release number. Indeed.

We’ve been struck by some weird release problems, which forced us to burn a number of versions (x.9.0-x.9.3). If you care about the details, here’s a description of the issue we ran into:

What’s New?

  • Topology.js Changes

  • Gradle enhancements

  • Consul Fixes and enhancements

  • Assorted minor bugfixes

Topology.js Changes

WARNING: Breaking change!

Previously, the topology.js script provided by the topology-webapp fraction exposed a simple topology() function that you used like this:

var Topology = topology();
... code using Topology ...

This was prone to race conditions, because you could start using Topology before the initial topology was obtained from the server.

Code like this will no longer work. The topology() function now returns a promise, which is only resolved when initial topology is obtained from the server. The code above needs to be transformed to look like this:

topology().then(function (Topology) {
    ... code using Topology ...

Now, you only get the Topology object when it is ready to be used.

Gradle enhancements

Gradle introduced seperate output directories for each jvm language in version 4. Therefore, when running Swarm from the IDE, resolving the build classes directory did fail. This should now be fixed.

Consul Fixes and enhancements

When trying to shutdown the application (via CTR-C or kill SIGTERM) the server tries to deregister the services from Consul multiple times and after a (seemingly) random number of log entries freezes and hangs. Amongst these fixes, are further enhancements that make the Consul integration more robust.


Release notes for 2017.9.4 are available here.


  • [SWARM-1533] Swarm fails to create if path to .m2/repository has spaces (Done)

  • [SWARM-1526] topology.js should have a mechanism to wait for initial topology (Done)

  • [SWARM-1525] maven -f args are not picked up correctly (Done)

  • [SWARM-1524] Make Consul CatalogWatcher more robust (Done)

  • [SWARM-1522] Consul TTL service check not recovering from network error etc. (Done)

  • [SWARM-1519] GradleResolver is ignoring the classifier for artifact downloads (Done)

  • [SWARM-1518] bootstrap fails if ~/.m2/settings.xml contains <localRepository>${user.home}/.mvnrepository</localRepository> (Done)

  • [SWARM-1517] Project with static files and JAX-RS dependency ⇒ static files result in 404 not found (Done)

  • [SWARM-1515] RepositoryBuilderMojo may incorrectly prune a productized artifact directory (Done)

  • [SWARM-1496] The process-file method of stopping tests may fail (Done)

  • [SWARM-1493] wildfly-swarm-manifest.yaml must be UTF-8 encoded. (Done)

  • [SWARM-1492] has two chapters called "JGroups", which is confusing (Done)

  • [SWARM-1491] doesn’t contain anything about configuring socket bindings (Done)

  • [SWARM-1481] SSO Booster issues (Done)

  • [SWARM-1476] topology-webapp formats a service URL with an IPv6 address incorrectly (Done)

  • [SWARM-1475] Transformer class used by WF and EAP is different (Done)

  • [SWARM-1465] the JAX-RS Multipart fraction doesn’t provide the RESTEasy Multipart API (Rejected)

  • [SWARM-1459] the JSON-P fraction doesn’t provide the JSON-P API (Rejected)

  • [SWARM-1427] Swarm hangs on shutdown with Consul Topology (Done)

  • [SWARM-1328] DeclaredDependencies lose classifier for maven artifact (Done)

  • [SWARM-1203] java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter (Done)


  • [SWARM-1501] Need to make current version prominent on website somewhere (Done)

  • [SWARM-1477] Move jgroups fraction into unsupported profile (Done)

  • [SWARM-1448] Update index.html of SSO Booster (Done)

Feature Request

  • [SWARM-1500] Ignore module-info.class files when running under Java8 (Done)

  • [SWARM-1136] Socket Bindings without main (Done)

  • [SWARM-1033] Allow adding an instructions file to be displayed after app starts (Done)


Component Upgrade

  • [SWARM-1483] Upgrade parent for all boosters to version 8 (Done)

  • [SWARM-1482] Upgrade all Mission Boosters to 2017.8.1 (Done)


  • [SWARM-1480] Arquillian test classes are always considered for fraction detection, even in client mode (Done)

  • [SWARM-1472] Add arquillian fraction into BOMs with scope=test to prevent accidentally adding it in compile (Done)

  • [SWARM-1350] Database Driver Dependency must be maven "compile" scope even though no classes utilized directly in jpa (Cannot Reproduce Bug)


Per usual, we tend to hang out on 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:


  • Tobias Dittrich

  • Heiko Braun

  • Ken Finnigan

  • Juan G

  • Nelson Gra├ža

  • Martin Kouba

  • Scott Marlow

  • Bob McWhirter

  • Ladislav Thon

  • Maximilian Zellhofer


  • Heiko Braun

  • Bob McWhirter

  • Ladislav Thon


  • Heiko Braun

  • Ken Finnigan

  • Bob McWhirter

  • Kohei Saito

  • Ladislav Thon