Arquillian Container Chameleon 1.0.0.Alpha2 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.Alpha2 release of the Arquillian Container Chameleon component!

What’s included in the Alpha2 release?

Allow non JBossAS/WildFly containers to be configured

In Alpha1 the definition for the JBoss AS / WildFly containers were hard coded. In Alpha2 we’ve externalized the configuration. By default Chameleon will read the classpath resource chameleon/default/containers.yaml which is a yaml file that describes things like:

  • target names
  • version ranges
  • adapter dependencies
  • distribution download description
  • configuration options to update
Updates to configuration

All configuration options that belong to the Chameleon container are now prefixed with ‘chameleon’.

That means that the configuration option from Alpha1 ‘target’ is now called ‘chameleonTarget’.

Define where distributions are found or downloaded

In Alpha1 distribution downloads would be placed in target/server if you were using Maven or bin/server if you were using Gradle as the build system.

In Alpha2 we’ve introduced a new configuration option named chameleonDistributionDownloadFolder. Via this option you can define where the distribution should be downloaded if you use the auto download feature of Chameleon.

Optionally you can define chameleonDistributionDownloadFolder to be TMP and Chameleon will create a new temp folder based on the java.io.temp system property defined in the JVM.

Define a custom container configuration file

If you want to create your own version of the default containers.yaml file, you can configure Chameleon to point to it via the configuration option chameleonContainerConfigurationFile. Not this is loaded as a classloader resource and would need to be on the classpath, and not as a file on the file system.

Support GlassFish 3.x/4.1 container definitions

You can now use some of the following chameleonTarget definitions to run against the GlassFish server:

  • glassfish:3.1:managed
  • glassfish:4.0:remote

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.Alpha2 view tag
Release date 2015-06-14
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 8

Bug
Enhancement

Thanks to the following list of contributors: Aslak Knutsen

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