WildFly Swarm Logo

Rightsize Your Services

Swarm offers an innovative approach to packaging and running JavaEE applications by packaging them with just enough of the server runtime to "java -jar" your application. However, it's all much, much cooler than that ...

Using WildFly swarm is easy! Add dependencies for just the parts of WildFly that you need to 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>org.wildfly.swarm</groupId>
      <artifactId>bom</artifactId>
      <version>${version.wildfly.swarm}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

Declare the fractions you need:

<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>jaxrs</artifactId>
</dependency>

Add the WildFly Swarm maven plugin:

<plugin>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>wildfly-swarm-plugin</artifactId>
  <executions>
    <execution>
      <goals>
        <goal>package</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Generate the uberjar and run it:

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

Generate Project

The most simple 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

Tutorial

A tutorial that explains how to migrate a monolith to microservices using WildFly Swarm

View Tutorial

Further Examples

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

View Examples

Mature

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

Flexible

Simply specify WildFly Swarm maven dependencies to bundle just the parts of the JavaEE 7 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 JavaEE 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.