Announcing Thorntail 2.1.0.Final

Thorntail 2.1.0.Final

On this day in 1896 Gold was first discovered in Klondike, found at Bonanza Creek, Alaska by George Carmack.

And now 122 years later, 2.1.0.Final is released!

What’s New?

  • MicroProfile 1.3 with SmallRye

  • Automated migration from WildFly Swarm

  • OpenTracing and Jaeger changes

  • New JOSE fraction

  • Old config-api-runtime fixed

  • Consul update

MicroProfile 1.3 with SmallRye

Though the version of MicroProfile being implemented in Thorntail hasn’t changed, where it’s coming from has!

With this release we’ve moved to using implementations from SmallRye. SmallRye intends to provide a shareable MicroProfile implementation across multiple vendors, which is why we’ve moved to utilizing it within Thorntail.

If you’d like to help us implement MicroProfile in SmallRye, check out the projects at

Automated migration from WildFly Swarm

The migration process from WildFly Swarm, as described in the 2.0.0.Final post, can be mostly automated. That’s exactly what we did in this release!

If you are still on WildFly Swarm 2018.5.0, or one of the previous releases, you can now migrate to Thorntail by running

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

If you only want to see the migration actions, without actually performing them, add -DdryRun=true.

If you want to migrate to the previous 2.0.0.Final version, add -DtargetVersion=2.0.0.Final.

And if you encounter any issue, please let us know!

OpenTracing and Jaeger changes

WARNING: Breaking changes!

Previously, the jaeger fraction brought in the opentracing fraction automatically. To better support MicroProfile OpenTracing, we’ve decoupled these two fractions.

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.

JOSE fraction

Have some serious fun with a new JOSE fraction and add a new dimension to your application’s security. Check out the security/jose example.

Old config-api-runtime fixed

In the last release, there was a problem with older WildFly Swarm config-api-runtime artifacts appearing in the dependency tree, causing conflicts with the latest Thorntail ones.

We’re happy to say that’s now resolved in 2.1.0.Final!

Consul update

Thanks to Dennis Schwarz from the community for providing a PR to update Consul to 1.2.1 and also fix some issues with Health Checks!


Release notes for 2.1.0.Final are available here.


  • [THORN-1529] Exception mapperfor JsonParseException is ignored (Done)

  • [THORN-1531] Following instructions at wildfly-swarm-example/ribbon-consul doesn’t yield desirable result (Done)

  • [THORN-1647] Plugin topology-consul is getting error and it does not allow the health checks (Done)

  • [THORN-1876] Microprofile Health - Warn security (Done)

  • [THORN-1955] MP JWT: can’t use different roles for different methods with the same @Path but different @Produces (Done)

  • [THORN-1968] MP Health Check /health throws NPE if HealthCheck implementation does not specify state (Done)

  • [THORN-1972] MP JWT: can’t use different roles for different methods with parameterized @Paths that share a common prefix (Done)

  • [THORN-2015] old version of org.wildfly.swarm:config-api-runtime gets pulled in transitively in certain situations (Done)

  • [THORN-2047] Startup fail with management-console and openapi fraction (Done)

  • [THORN-2083] MP FT - Fallback is not called when used with CircuitBreaker and Retry policy (Done)

  • [THORN-2087] microprofile-fault-tolerance depends on slf4j-simple (wrong scope?) (Done)

  • [THORN-2093] Injection of MP-Rest-Client fails (Done)

  • [THORN-2104] 2.0.1.Final-SNAPSHOT build fails if '' is enabled (Done)

  • [THORN-2110] MPJWTProducer’s currentPrincipal holding old values (Done)


  • [THORN-1540] Add in JDBC driver auto-detect support for Derby Embedded (Done)

  • [THORN-2091] Maven plugin for automated migration from WildFly Swarm to Thorntail (Done)

  • [THORN-2103] Switch to using SmallRye Config as implementation (Done)


  • [THORN-1941] after deprecating the monitor fraction, we should update boosters to use MP health check instead (Done)

  • [THORN-2061] Migrate MP Metrics implementation to SmallRye (Done)

  • [THORN-2062] Migrate MP Health implementation to SmallRye (Done)

  • [THORN-2063] Migrate MP Fault Tolerance implementation to SmallRye (Done)

  • [THORN-2064] Migrate MP JWT implementation to SmallRye (Done)

  • [THORN-2065] Migrate MP Opentracing implementation to SmallRye (Done)

  • [THORN-2066] Migrate MP Open API implementation to SmallRye (Done)

  • [THORN-2067] Migrate MP REST Client implementation to SmallRye (Done)

  • [THORN-2070] KeycloakThemeCustomizer does not need to explode keycloak-themes.jar to the local temp folder (Done)

  • [THORN-2088] Update keycloak-config-api to use 3.4.3.Final Keycloak version (Done)

  • [THORN-2089] upgrade wildfly-nosql to 1.0.0.Beta1 and nosql-config-api to 1.3.1 (Done)

  • [THORN-2092] Make Jaeger fraction reusable for any tracing fraction (Done)

  • [THORN-2096] make sure all Config APIs depend on the same (latest) version of Config API Runtime (Done)

  • [THORN-2117] upgrade wildfly-nosql to 1.0.0.Final (Done)

  • [THORN-2120] Examples README files have outdated run instructions (Done)

  • [THORN-2132] Release thorntail-fraction-plugin 88 and update Thorntail to use it (Done)


  • [THORN-2004] Document some fallback internals in Microprofile implementation when using @Asynchronous and @Bulkhead (Done)

Feature Request


Per usual, we tend to hang out on in #thorntail.

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:


  • Sergey Beryozkin

  • Ken Finnigan

  • Pavol Loffay

  • Sven Ruppert


  • Sergey Beryozkin

  • Tobias Dittrich

  • Ken Finnigan

  • Martin Kouba

  • Pavol Loffay

  • Scott M Stark

  • Bartosz Majsak

  • Scott Marlow

  • Matej Novotny

  • Tomas Radej

  • Antoine Sabot-Durand

  • Dennis Schwarz

  • MichaƂ Szynkiewicz

  • Ladislav Thon

  • Eric Wittmann