Evolution
of
Enterprise Java

Optimised for
microservice architectures

Rightsize
your
services

Build on mature technologies
and leverage existing expertise

Thorntail Logo
Thorntail has announced end of life. Everything else on this site is now outdated. We recommend using Quarkus or WildFly.

Thorntail offers an innovative approach to packaging and running Java EE applications by packaging them with just enough of the server runtime to "java -jar" your application. It's MicroProfile compatible, too. And, it's all much, much cooler than that ...

Getting Started

Generate Project

The simplest way to get started is by using the project generator. Simply choose the capabilities you need and we'll generate a maven project for you, ready to download and use.

Create a Project

Documentation

The user guide contains much information to get started and to answer more advanced questions.

View Documentation

Code Examples

We provide plenty of examples on how to use existing Java EE API's and components to support microservice architectures.

View Examples

Simple Project Setup

Add dependencies for just the parts that you need in your Maven build (or don’t add anything at all and the plugin will auto-detect for you).

The following example assumes a simple JAX-RS RESTful application.

Import the BOM (Bill of Materials) dependency

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.thorntail</groupId>
      <artifactId>bom</artifactId>
      <version>${version.thorntail}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

Declare the fractions you need (or not, we’ll do our best to auto-detect them for you):

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>jaxrs</artifactId>
</dependency>

Add the Thorntail Maven plugin:

<plugin>
  <groupId>io.thorntail</groupId>
  <artifactId>thorntail-maven-plugin</artifactId>
  <version>${version.thorntail}</version>
  <executions>
    <execution>
      <goals>
        <goal>package</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Generate the uberjar and run it:

mvn package
java -jar <myapp>-thorntail.jar

Features and Benefits

Mature

Develop services using the feature richness and maturity of the enterprise Java industry standard - Java EE

Flexible

Simply specify Thorntail Maven dependencies to bundle just the parts of the Java EE 8 WildFly application server that you need. Don't use EJBs or JPA? Great, nothing is bundled unless you specify it!

Straightforward

Generate uberjar (Ex: java -jar MyApp.jar), or generate a .war and deploy to any Java EE compatible application server.

Service Oriented

Use built-in service discovery, or use external service registries. You choose.

Practical

Built-in support for third party apps and frameworks like Logstash and NetFlix OSS projects like Hystrix and Ribbon.

Integrated

Integrates with upstream Red Hat projects for single sign-on KeyCloak, monitoring Hawkular, data grid InfiniSpan, and more broadly, Platform as a Service OpenShift.