Since the rebranding of WildFly Swarm 2018.5.0 to Thorntail 2.0.0 in late June, Red Hat has released Thorntail versions 2.1.0 and 2.2.0 within a three-week time frame since mid-August. Along with many bug fixes, especially related to MicroProfile, new features include:

Compliance with MicroProfile 1.3

Implementation of MicroProfile through SmallRye

Automated migration process

Red Hat documented some potential code breaks due to changes in OpenTracing and Jaeger and log message codes

Background

Heritage WildFly Swarm is based on WildFly, Red Hat's open source application server. As with traditional monolithic application servers, an application is deployed on top of WildFly as shown below.

WildFly Swarm, on the other hand, is a "deconstructed" version of WildFly such that developers choose only the APIs necessary for their application that is packaged and run as an UberJar. The application shown below only uses JAX-RS.

Thorntail 2.0.0

When asked about the name change in a recent interview with InfoQ, Bob McWhirter, senior consulting engineer at Red Hat, stated:

While we lived with "WildFly Swarm" as a name for a few years, we noticed that "Swarm" is fairly overloaded, with many companies and projects using it. Additionally, as we move forward with a new architecture for the project, including "WildFly" in the name started to make less sense. When we started, we were absolutely an extension to the core WildFly project, but we've grown into our own, and needed our own identity. Given both of those reasons, we decided a new name was in order.

Concurrent with the name change, Red Hat abandoned the more recent popular versioning convention, YYYY.MM.VV , and returned to the more traditional versioning convention, major.minor.micro . Hence the change from WildFly Swarm 2018.5.0 to Thorntail 2.0.0.

The process to migrate a Maven project from WildFly Swarm to Thorntail was documented by Red Hat as follows:

Change any references of org.wildfly.swarm in groupId to io.thorntail .

in to . Change any references of WildFly Swarm versions, such as 2018.5.0 , to 2.0.0.Final .

, to . Change any references of wildfly-swarm-plugin in artifactId to thorntail-maven-plugin .

in to . The suffix of the generated UberJar has changed from -swarm.jar to -thorntail.jar .

to . The Maven plugin name has changed from wildfly-swarm:run to thorntail:run .

Therefore, the WildFly Swarm Java and Maven commands,

$ java -jar target/demo-0.1.0-swarm.jar $ mvn wildfly-swarm:run

Change to the following commands for Thorntail:

$ java -jar target/demo-0.1.0-thorntail.jar $ mvn thorntail:run

Thorntail 2.1.0

Thorntail is fully compliant with MicroProfile 1.3 through SmallRye, a new community-driven organization providing shared implementations of the MicroProfile specification. Ken Finnigan, senior principal software engineer at Red Hat, initiated this move to SmallRye. In a recent Red Hat blog, it was stated:

MicroProfile is a fast-moving target and has evolved a lot since it was announced two years ago. Keeping track of this fast evolution in specifications and the matching implementations requires a lot of energy for all vendors, so Ken proposed to put the common parts of these implementation efforts into a single vendor-neutral implementation of MicroProfile, whose project name is SmallRye. At smallrye.io, you can see that this community-driven project is doing well: all MicroProfile specifications now have their own implementation.

Source code for SmallRye can be found on GitHub.

Version 2.1.0 introduced a mechanism to automate the migration of a Maven project from WildFly Swarm to Thorntail by executing the following Maven command:

mvn io.thorntail:thorntail-maven-plugin:2.1.0.Final:migrate-from-wildfly-swarm

This will change all groupId and artifactId references from WildFly Swarm to Thorntail along with corresponding version numbers.

<properties> <version.wildfly.swarm>2018.5.0</version.wildfly.swarm> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>bom</artifactId> <version>${version.wildfly.swarm}</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement>

<properties> <version.wildfly.swarm>2.1.0.Final</version.wildfly.swarm> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>io.thorntail</groupId> <artifactId>bom</artifactId> <version>${version.wildfly.swarm}</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement>

A potential code break arose with a change to Jaeger and Open Tracing. Previously, adding Jaeger to a project meant that MicroProfile's Open Tracing was included. With version 2.1.0, however, Open Tracing was decoupled from Jaeger to better support Open Tracing. As stated in the release:

Now, the jaeger fraction is only used to provide tracer configuration. You are expected to bring in the tracing fraction manually; either the old opentracing , or the new microprofile-opentracing . If you previously had a dependency on the jaeger fraction and not on the opentracing fraction, you have to add an explicit dependency on the opentracing fraction to retain the same behavior.

Thorntail 2.2.0

There were many bug fixes for this latest release, especially related to the MicroProfile APIs, Metrics, JWT, OpenAPI, and Rest Client.

Version 2.2.0 introduced new log message codes to reflect the name change to Thorntail. What was once WFSWARMnnnnn or WFSxxxnnnnn is now THORNnnnnn or TTxxxnnnnn . The numeric codes remain the same. This is only a breaking change for developers using parsers that search for the old message codes.

New Logo

There was an intentional delay in releasing a new logo for Thorntail. As McWhirter explained in his recent interview with InfoQ:

The logo is being worked on currently by the awesome JBoss.org design team. We hope to have some candidates in the coming weeks. We wanted to release the name prior to the logo because of Red Hat Summit, plus we wanted to push the new v4.x proof-of-concept of the new architecture.

The wait is over as the new logo was just released on September 17, 2018:

Resources