Arquillian Container Chameleon 1.0.0.Alpha1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.Alpha1 release of the Arquillian Container Chameleon component!

Have you ever faced an issue that switching between container implementations isn’t that easy?

Testing against several containers (JBoss AS / JBoss EAP / WildFly) or even switching between different modes (Managed, Remote, Embedded) may result in bloated pom.xml.

Chameleon Containers are able to quickly adopt to your needs without too much hassle.

Chameleons are a tall, lizard-looking alien race that has (same as their earthling friends) ability to change colours when adopting to various environments. They are usually transported in spaceships called Containers.

Getting started

Do whatever you would do normally and add Chameleon Container instead of any application-server specific artifact:

<dependency>
    <groupId>org.jboss.arquillian.junit</groupId>
    <artifactId>arquillian-junit-container</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.arquillian.container</groupId>
    <artifactId>arquillian-container-chameleon</artifactId>
    <version>1.0.0.Alpha1</version>
    <scope>test</scope>
</dependency>

Then add this configuration to arquillian.xml:

<container qualifier="proxy" default="true">
    <configuration>
        <property name="target">wildfly:8.0.0.Final:managed</property>
        <property name="serverConfig">standalone-full.xml</property>
    </configuration>
</container>

Now, you can switch container implementation as simple as changing the target configuration option(e.g. wildfly:8.0.0.Final:remote or wildfly:9.0.0.CR1:managed).

And off course, you can still configure the underlying container by its specific configuration (e.g. change serverConfig).

Example target values:

  • jboss eap:6.2:remote
  • jboss as:7.1.1.Final:managed
  • wildfly:9.0.0.Alpha1:embedded

Supported Containers:

  • JBoss EAP
    • 6.x
  • WildFly
    • 8.x
    • 9.x
  • JBoss AS
    • 7.x

Chameleon will download and extract the target container if no jbossHome is configured and target type is either embedded or managed.

What is Arquillian Container Chameleon?

The Chameleon container can quickly adapt to your needs of testing against several containers (JBoss AS / JBoss EAP / WildFly / GlassFish) or even switching between different modes (Managed / Remote / Embedded) without requiring additional dependency configuration.

Release details

Component Arquillian Container Chameleon
Version 1.0.0.Alpha1 view tag
Release date 2015-05-11
Released by Aslak Knutsen
Compiled against

Published artifacts org.arquillian.container

  • org.arquillian.container » arquillian-container-chameleon jar javadoc pom

Release notes and resolved issues 1

Bug

Thanks to the following list of contributors: Aslak Knutsen, Lukas Fryc, Alex Soto