Red Hat
May 11, 2015
by Arquillian Project Team

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?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

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

Original Post