MMS • RSS
Article originally posted on InfoQ. Visit InfoQ
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
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.
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
- Change any references of WildFly Swarm versions, such as
- Change any references of
- The suffix of the generated UberJar has changed from
- The Maven plugin name has changed from
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 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:
This will change all
artifactId references from WildFly Swarm to Thorntail along with corresponding version numbers.
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:
jaegerfraction is only used to provide tracer configuration. You are expected to bring in the tracing fraction manually; either the old
opentracing, or the new
If you previously had a dependency on the
jaegerfraction and not on the
opentracingfraction, you have to add an explicit dependency on the
opentracingfraction to retain the same behavior.
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
WFSxxxnnnnn is now
TTxxxnnnnn. The numeric codes remain the same. This is only a breaking change for developers using parsers that search for the old message codes.
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: