Announcement 1.0.0.Beta6

Impact of the repository reorganization

Continuing in our trend of announcing versions that are arbitrarily larger than our last release, we’re happy to announce 1.0.0.Beta6.

As usual, beware the Ides of March.

As noted previously, we’ve broken the codebase into discrete chunks, each with its own release cycle. This release represents a released version of the aggregating BOM, which encompasses all of the various released components.

About that BOM

Since WildFly Swarm now is actually a collection of components, each with their own unique snowflake of a version number, we have a BOM that we recommend in order to tie it all together in your app.

If you’re using Maven, in your own pom.xml, you would have:

<properties>
  <version.swarm>1.0.0.Beta6</version.swarm>
</properties>

...

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.wildfly.swarm</groupId>
      <artifactId>bom</artifactId>
      <version>${version.swarm}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

And then, to pick any particular fraction for use within your app, you can specify the dependency without a version:

<dependencies>
  <dependency>
    <groupId>org.wildfly.swarm</groupId>
    <artifactId>undertow</artifactId>
  </dependency>
</dependencies>

Faster Boot-times

Through the work of Heiko Braun, we no longer spend ages scanning the classpath at boot-time, and rather have pre-computed indexes, which makes the initial startup of a swarmified application significantly faster.

Fraction Auto-detection

While the typical usage of WildFly Swarm still involves using our BOM and specifying dependencies, if you’re coming from a project that already has a <packaging>war</packaging> build that works, all you need to do is add our plugin.

<build>
  <plugins>
    <plugin>
      <groupId>org.wildfly.swarm</groupId>
      <artifactId>wildfly-swarm-plugin</artifactId>
      <version>${version.swarm}</version>
      <configuration>
        ....
      </configuration>
      <executions>
        <execution>
          <id>package</id>
          <goals>
            <goal>package</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

The plugin will scan your project for applicable packages (javax.servlet etc) being used, and will implicitly bring in the WildFly Swarm dependencies you need in order to package up the -swarm.jar version of your existing .war file.

Spring Framework Support

Just as WildFly has always been the best place to run Spring applications, we want to ensure that WildFly Swarm continues that tradition.

We now have a org.wildfly.swarm:spring fraction that can help you out.

Yo dawg, we heard you like WildFly Swarm, so we put a Swarm in your Swarm, so you can Swarm while you Swarm.

dawg.jpg

In previous releases, you could either provide your own class with a main() or use org.wildfly.swarm.Swarm as your main. Usually, within your own main() you would create an instance of Container and configure it.

While you can continue to do that, you can actually just instantiate org.wildfly.swarm.Swarm as it now extends the familiar Container:

public static void main(String...args) {
  Swarm swarm = new Swarm()
                      .fraction(...)
                      .fraction(...);

  swarm.start();
  swarm.deploy(...);

}

SPI

We’re starting to see an interest in other folks writing fractions for WildFly Swarm (we hope to ship a Camel fraction in our next release). To make this easier and less brittle, we’ve codified the SPI for fraction authors in org.wildfly.swarm:spi.

Changelog

Release notes for 1.0.0.Beta6 are available here.

  • [ SWARM-213 ] A simple .war project without any changes should select the right fractions.
  • [ SWARM-224 ] swarmtool should expose bundleDependencies
  • [ SWARM-236 ] Remove string methods that have enum versions
  • [ SWARM-245 ] Create swagger-webapp-server
  • [ SWARM-247 ] Improve load balancing for ribbon-webapp
  • [ SWARM-250 ] Swagger should scan top level packages in the deployment
  • [ SWARM-252 ] Spring integration
  • [ SWARM-268 ] Simplify HTTPS configuration
  • [ SWARM-295 ] Prevent FractionList from reading a file repeatedly
  • [ SWARM-298 ] java.lang.ClassNotFoundException: org.wildfly.swarm.undertow.descriptors.WebXmlAsset from Module "org.wildfly.swarm.keycloak:api"
  • [ SWARM-300 ] Restructure repositories
  • [ SWARM-306 ] Support different versions within FractionList
  • [ SWARM-307 ] Extract plugins from core into wildfly-swarm.git
  • [ SWARM-309 ] ARQ protocol ignores setup actions
  • [ SWARM-320 ] CNFE for org.jboss.arquillian.test.spi.TestResult
  • [ SWARM-323 ] NPE in ServiceActivatorArchiveImpl with no archive suffix
  • [ SWARM-324 ] Improve the RuntimeServer bootstrap performance
  • [ SWARM-325 ] ribbon-secured example does not work.
  • [ SWARM-326 ] NetflixOSS Ribon example buttons not working
  • [ SWARM-335 ] Integration Tests are not running in -examples
  • [ SWARM-340 ] Pull out fraction SPI to separate GAVs and repository
  • [ SWARM-341 ] Topology endpoint without scheme breaks browser call
  • [ SWARM-344 ] Error parsing undertow handlers conf
  • [ SWARM-346 ] Ribbon example broken, topology.js not found
  • [ SWARM-350 ] Replace the word "Container" with "Swarm".

Resources

Per usual, we tend to hang out on irc.freenode.net in #wildfly-swarm.

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:

Core

  • Heiko Braun

  • Toby Crawley

  • Thomas Diesler

  • Ken Finnigan

  • George Gastaldi

  • Bob McWhirter

Examples

  • Toby Crawley

  • Ken Finnigan

  • Bob McWhirter

  • Lukáš Vlček

Documentation

  • Toby Crawley

  • Ken Finnigan

  • Bob McWhirter