Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Thorntail Reaches Tail End

Thorntail Reaches Tail End

This item in japanese

The Thorntail project has come to an end, following its five-year run as a way for Java EE applications to embed a web server like WildFly in a self-contained app. This change only affects the community version of Thorntail and does not impact Red Hat commercial Thorntail projects.

"Thorntail (née WildFly Swarm) was a way to leverage a relatively non-microservices-centric codebase (WildFly) to support microservices," explains Bob McWhirter, senior consulting engineer with Red Hat. After proving the concept of embedded app servers, many frameworks have adopted the concept natively to run as an individual application rather than being deployed to a centrally managed app server. Frameworks such as Quarkus and Spring Boot natively launch a web server to serve static content as well as execute the backend JAX-RS and controller endpoints. InfoQ had previously interviewed McWhirter about the status and goals of the Thorntail project.

With the consolidation of JakarteEE / JavaEE projects in the Eclipse Foundation, similar features are available through the MicroProfile project. MicroProfile enables developers to bootstrap small self-contained applications that pull in just enough parts of Jakarte EE and other frameworks necessary to run. The aim of these projects is to focus on the capabilities that the application or microservice needs to run itself, avoiding parts of the application servers that are needed more for shared applications, such as clustering, management, and other administrative features.

Unlike previously clustered applications that each ran in their own context of the application server as a Web Application Archive (WAR) or Enterprise Application Archive (EAR) of individual services, microservice applications are often run in containers. This shifts management from configuring the Java server (such as JBoss, Payara, or Tomcat) towards individually-configured services handled through container management.

"The Thorntail project represents a lot of research and history in the never-ending quest for further innovation in enterprise Java runtimes. It has been a valuable source of inspiration for many similar projects," states Ondrej Mihályi, senior service engineer at Payara. Mihályi adds additional context on the connection between full-fledged application servers and cases where the application hosts the server:

The traditional application server mantra is that developers write an application and an operations team runs the application server and deploys the application. This is gradually shifting towards unified DevOps teams both writing and running the application. Application servers have either evolved to flexible and versatile application runtimes that provide additional thin layer on top of the JVM, or at least make it possible to give full control to application developers over how the application is started and configured.

Payara Micro and Thorntail are examples of application runtimes that can start WAR or EAR applications from the command line, including all required configuration. Alternatively, the runtime can be embedded together with a WAR or EAR into a standalone application. On the other hand, Payara Server is an example of a more traditional approach, where the application server can run WAR or EAR applications and set all configurations using a single startup command. This allows simple execution of EAR or WAR applications and also packaging everything into a Docker container.

Developers using commercially-supported versions of Thorntail can still leverage support. Other community members should consider migrating their applications towards different architectural frameworks like Quarkus or Spring Boot, or leverage the capabilities of app servers such as Payara, WildFly, or others.

Rate this Article