WildFly Swarm 1.0.0.Alpha4 Released!

Once again, we’re delighted and enthralled to announce a release of WildFly Swarm. This time, it’s 1.0.0.Alpha4! That’s like one more than last time!

This release has taken a few months, but it is chock-a-block full of awesome changes. But first, you might be wondering What is WildFly Swarm? Well, it’s WildFly, but dis-assembled and repackaged so that you can consume just the bits’n’bobs you need in order to build slimmer application services and run them from self-contained jars.

What’s Changed?

  • Now based upon WildFly 10.0.0.Beta1

  • Lots of new subsystems/fractions:

    • Clustering

    • EJB

    • JAX-RS Multipart Support

    • JMX

    • JSF

    • Keycloak

    • Logstash

    • Mail

    • Netflix OSS

  • Better source repository layout

  • More tests

  • Arquillian support

NetflixOSS?

In the world of microservices, the NetflixOSS suite of Ribbon and Hystrix make it pretty easy to hide a service behind an interface, find instances of services, and load-balance between them. In the default case, Ribbon uses the Netflix Eureka server to register and discover individual services. With WildFly Swarm, the standard clustering subsystem can be used to locate these services and maintain the lists of end-points. No additional servers are required to be running.

Additionally, Ribbon has been extended to propagate Keycloak authentication tokens across the service calls if you’re also using Keycloak.

Testing with Arquillian

This release also brings integration with Arquillian, the fantastic tool that can not only manage your runtimes, but can inject test code directly into the running system.

Normally Arquillian launches your server, deploys your app, runs your tests (either from outside the running app or within it), undeploys the app, and then stops the server.

Since WildFly Swarm alters the concepts of "server" and "app", we’ve provided tight integration with Arquillian so that the same BuildTool used by the Maven and Gradle plugins is invoked to actually build your uberjar with your application (described by typical Arquillian @Deployment methods) and Arquillian launches it during the 'deploy' phase.

You can still test from outside your app or inside the running process, as we provide support for all the relevant test-enhancers provided by Arquillian.

The Arquillian support is definitely still a work-in-progress, so let us know if you have any suggestions for improving it.

Documentation

We’ve started writing some documentation, which you can contribute to:

Examples?

Yes indeedy! We have a bunch of buildable and runnable examples at GitHub in one handy repository:

What do I download?

There is no special download or installation instructions. Simply start using org.wildfly.swarm artifacts in your pom.xml, throw in the plugin and continue doing your builds.

Stay in Touch

You can keep up with the project through the WildFly HipChat room, @wildflyswarm on Twitter, or through GitHub Issues.