Arquillian and AS7
christian.bauer Aug 1, 2011 7:37 AMThis might save someone a few hours.
{code}
<repository>
<id>jboss-repo</id>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
<junit-version>4.8.2</junit-version>
<arquillian-version>1.0.0.CR1</arquillian-version>
<jboss-as-version>7.0.0.Final</jboss-as-version>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<environmentVariables>
<JBOSS_HOME>/Users/cb/work/local/jboss/server/current</JBOSS_HOME>
</environmentVariables>
</configuration>
</plugin>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<version>${arquillian-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-arquillian-container-managed</artifactId>
<version>${jboss-as-version}</version>
<scope>test</scope>
<exclusions>
<!-- Depends on outdated Shrinkwrap beta2, latest Arquillian uses beta3 -->
<exclusion>
<groupId>org.jboss.shrinkwrap</groupId>
<artifactId>shrinkwrap-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
</exclusion>
</exclusions>
</dependency>
{code}
arquillian.xml
{code}
<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://jboss.org/schema/arquillian"
xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="jboss7" default="true"> <!-- default true?! WTF is wrong with you... -->
<protocol type="jmx-as7">
<property name="executionType">REMOTE</property>
</protocol>
<configuration>
<!-- Faster startup -->
<property name="javaVmArguments">-d32 -noverify</property>
</configuration>
</container>
</arquillian>
{code}
Impressive display of modularity-gone-wrong here, especially like the hidden log4j AND commons-logging dependency:
{code}
[INFO] +- org.jboss.as:jboss-as-arquillian-container-managed:jar:7.0.0.Final:test
[INFO] | +- org.jboss.as:jboss-as-arquillian-common:jar:7.0.0.Final:test
[INFO] | | +- org.jboss.arquillian.container:arquillian-container-osgi:jar:1.0.0.CR2:test
[INFO] | | +- org.jboss.arquillian.testenricher:arquillian-testenricher-cdi:jar:1.0.0.CR1:test
[INFO] | | +- org.jboss.arquillian.testenricher:arquillian-testenricher-ejb:jar:1.0.0.CR1:test
[INFO] | | +- org.jboss.arquillian.testenricher:arquillian-testenricher-initialcontext:jar:1.0.0.CR1:test
[INFO] | | +- org.jboss.arquillian.testenricher:arquillian-testenricher-osgi:jar:1.0.0.CR2:test
[INFO] | | +- org.jboss.arquillian.testenricher:arquillian-testenricher-resource:jar:1.0.0.CR1:test
[INFO] | | +- org.jboss.as:jboss-as-arquillian-testenricher-msc:jar:7.0.0.Final:test
[INFO] | | | \- org.jboss.msc:jboss-msc:jar:1.0.0.GA:test
[INFO] | | +- org.jboss.as:jboss-as-controller-client:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss.as:jboss-as-protocol:jar:7.0.0.Final:test
[INFO] | | | | +- org.jboss.logmanager:jboss-logmanager:jar:1.2.0.GA:test
[INFO] | | | | +- org.jboss.marshalling:jboss-marshalling:jar:1.3.0.GA:test
[INFO] | | | | +- org.jboss.remoting3:jboss-remoting:jar:3.2.0.Beta2:test
[INFO] | | | | | \- org.jboss.xnio:xnio-api:jar:3.0.0.Beta2:test
[INFO] | | | | \- org.jboss.xnio:xnio-nio:jar:3.0.0.Beta3:test
[INFO] | | | +- org.jboss:jboss-dmr:jar:1.0.0.Final:test
[INFO] | | | \- org.jboss.threads:jboss-threads:jar:2.0.0.GA:test
[INFO] | | +- org.jboss.as:jboss-as-jmx:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss:jboss-common-core:jar:2.2.17.GA:test
[INFO] | | | \- org.jboss.as:jboss-as-server:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss.as:jboss-as-controller:jar:7.0.0.Final:test
[INFO] | | | | \- org.jboss:staxmapper:jar:1.0.0.Final:test
[INFO] | | | +- org.jboss.as:jboss-as-domain-http-api:jar:7.0.0.Final:test
[INFO] | | | | +- org.jboss.as:jboss-as-domain-management:jar:7.0.0.Final:test
[INFO] | | | | +- org.jboss.com.sun.httpserver:httpserver:jar:1.0.0.Beta1:test
[INFO] | | | | \- org.jboss.as:jboss-as-console:jar:resources:1.0.0.Beta13:test
[INFO] | | | +- org.jboss.as:jboss-as-deployment-repository:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss.as:jboss-as-embedded:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss.as:jboss-as-process-controller:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss.as:jboss-as-remoting:jar:7.0.0.Final:test
[INFO] | | | | +- org.jboss.as:jboss-as-network:jar:7.0.0.Final:test
[INFO] | | | | \- org.jboss.as:jboss-as-threads:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss:jandex:jar:1.0.0.Final:test
[INFO] | | | +- org.jboss.invocation:jboss-invocation:jar:1.0.0.Final:test
[INFO] | | | +- org.jboss.logmanager:jboss-logmanager-log4j:jar:1.0.0.GA:test
[INFO] | | | +- org.jboss.stdio:jboss-stdio:jar:1.0.0.GA:test
[INFO] | | | \- org.jboss:jboss-vfs:jar:3.0.1.GA:test
[INFO] | | +- org.jboss.osgi.spi:jbosgi-spi:jar:1.0.28:test
[INFO] | | | \- org.jboss.osgi.vfs:jbosgi-vfs:jar:1.0.5:test
[INFO] | | \- org.osgi:org.osgi.core:jar:4.2.0:test
[INFO] | +- org.jboss.as:jboss-as-arquillian-protocol-jmx:jar:7.0.0.Final:test
[INFO] | | +- org.jboss.as:jboss-as-osgi-service:jar:7.0.0.Final:test
[INFO] | | | +- org.jboss.modules:jboss-modules:jar:1.0.1.GA:test
[INFO] | | | +- org.jboss.osgi.deployment:jbosgi-deployment:jar:1.0.10:test
[INFO] | | | +- org.jboss.osgi.framework:jbosgi-framework-core:jar:1.0.0.CR8:test
[INFO] | | | | +- org.jboss.osgi.resolver:jbosgi-resolver-felix:jar:1.0.9:test
[INFO] | | | | | \- org.jboss.osgi.resolver:jbosgi-resolver-spi:jar:1.0.9:test
[INFO] | | | | \- org.jboss.osgi.vfs:jbosgi-vfs30:jar:1.0.6:test
[INFO] | | | +- org.jboss.osgi.resolver:jbosgi-resolver-api:jar:1.0.9:test
[INFO] | | | | \- org.jboss.osgi.resolver:jbosgi-resolver-metadata:jar:1.0.9:test
[INFO] | | | \- org.osgi:org.osgi.compendium:jar:4.2.0:test
[INFO] | | +- org.jboss.arquillian.core:arquillian-core-spi:jar:1.0.0.CR1:test
[INFO] | | \- org.jboss.arquillian.protocol:arquillian-protocol-jmx:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.sasl:jboss-sasl:jar:1.0.0.Beta1:test
[INFO] | | \- org.jboss.logging:jboss-logging:jar:3.0.0.Beta5:test
[INFO] | +- javax.inject:javax.inject:jar:1:test
[INFO] | +- org.jboss.arquillian.core:arquillian-core-api:jar:1.0.0.CR1:test
[INFO] | \- org.jboss.as:jboss-as-build-config:jar:7.0.0.Final:test
[INFO] +- junit:junit:jar:4.8.2:test
[INFO] +- org.jboss.arquillian.junit:arquillian-junit-container:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.arquillian.junit:arquillian-junit-core:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.arquillian.test:arquillian-test-api:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.arquillian.test:arquillian-test-spi:jar:1.0.0.CR1:test
[INFO] | | \- org.jboss.shrinkwrap:shrinkwrap-api:jar:1.0.0-beta-3:test
[INFO] | +- org.jboss.arquillian.container:arquillian-container-test-api:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.arquillian.container:arquillian-container-test-spi:jar:1.0.0.CR1:test
[INFO] | | \- org.jboss.arquillian.container:arquillian-container-spi:jar:1.0.0.CR1:test
[INFO] | | \- org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-api:jar:1.0.0-beta-1:test
[INFO] | +- org.jboss.arquillian.core:arquillian-core-impl-base:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.arquillian.test:arquillian-test-impl-base:jar:1.0.0.CR1:test
[INFO] | +- org.jboss.arquillian.container:arquillian-container-impl-base:jar:1.0.0.CR1:test
[INFO] | | +- org.jboss.arquillian.config:arquillian-config-api:jar:1.0.0.CR1:test
[INFO] | | +- org.jboss.arquillian.config:arquillian-config-impl-base:jar:1.0.0.CR1:test
[INFO] | | | \- org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-impl:jar:1.0.0-beta-1:test
[INFO] | | +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-api:jar:1.0.0-beta-3:test
[INFO] | | +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-api-maven:jar:1.0.0-beta-3:test
[INFO] | | \- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar:1.0.0-beta-3:test
[INFO] | | +- org.sonatype.aether:aether-api:jar:1.8:test
[INFO] | | +- org.sonatype.aether:aether-util:jar:1.8:test
[INFO] | | +- org.sonatype.aether:aether-connector-wagon:jar:1.8:test
[INFO] | | | +- org.sonatype.aether:aether-spi:jar:1.8:test
[INFO] | | | \- org.codehaus.plexus:plexus-container-default:jar:1.5.5:test
[INFO] | | | +- org.codehaus.plexus:plexus-classworlds:jar:2.2.2:test
[INFO] | | | +- org.apache.xbean:xbean-reflect:jar:3.4:test
[INFO] | | | | +- log4j:log4j:jar:1.2.12:test
[INFO] | | | | \- commons-logging:commons-logging-api:jar:1.1:test
[INFO] | | | \- com.google.collections:google-collections:jar:1.0:test
[INFO] | | +- org.apache.maven:maven-aether-provider:jar:3.0.1:test
[INFO] | | | +- org.apache.maven:maven-model:jar:3.0.1:test
[INFO] | | | +- org.apache.maven:maven-model-builder:jar:3.0.1:test
[INFO] | | | +- org.apache.maven:maven-repository-metadata:jar:3.0.1:test
[INFO] | | | +- org.sonatype.aether:aether-impl:jar:1.8:test
[INFO] | | | +- org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:test
[INFO] | | | \- org.codehaus.plexus:plexus-utils:jar:2.0.4:test
[INFO] | | +- org.apache.maven:maven-settings-builder:jar:3.0.1:test
[INFO] | | | +- org.codehaus.plexus:plexus-interpolation:jar:1.14:test
[INFO] | | | +- org.apache.maven:maven-settings:jar:3.0.1:test
[INFO] | | | \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:test
[INFO] | | | \- org.sonatype.plexus:plexus-cipher:jar:1.4:test
[INFO] | | +- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-7:test
[INFO] | | +- org.apache.maven.wagon:wagon-file:jar:1.0-beta-7:test
[INFO] | | \- org.apache.maven.wagon:wagon-http-lightweight:jar:1.0-beta-7:test
[INFO] | | \- org.apache.maven.wagon:wagon-http-shared:jar:1.0-beta-7:test
[INFO] | | \- commons-logging:commons-logging:jar:1.1.1:test
[INFO] | +- org.jboss.arquillian.container:arquillian-container-test-impl-base:jar:1.0.0.CR1:test
[INFO] | \- org.jboss.shrinkwrap:shrinkwrap-impl-base:jar:1.0.0-beta-3:test
[INFO] | \- org.jboss.shrinkwrap:shrinkwrap-spi:jar:1.0.0-beta-3:test
{code}
Tests seem to run, although I'm not sure why I'd spend 15 seconds deploying some OSGi crap I didn't even ask for. Also seems to redeploy a few services after several failures:
{code}
13:35:19,546 INFO [org.jboss.as] (Controller Boot Thread) JBoss AS 7.0.0.Final "Lightning" started in 7220ms - Started 110 of 169 services (57 services are passive or on-demand)
13:35:20,801 INFO [org.jboss.as.osgi] (MSC service thread 1-2) Unregister module: Module "deployment.arquillian-service:main" from Service Module Loader
13:35:20,801 ERROR [org.jboss.osgi.framework.internal.BundleManager] (MSC service thread 1-2) Cannot find bundle associated with module: deployment.arquillian-service:main
13:35:20,812 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) Stopped deployment arquillian-service in 57ms
13:35:20,835 INFO [org.jboss.as.server.controller] (pool-2-thread-7) Undeployed "arquillian-service"
13:35:21,867 INFO [org.jboss.as.server.deployment] (pool-1-thread-1) Content added at location /Users/cb/work/local/jboss/server/current/standalone/data/content/af/b8d55c7e7e9d78eec8d070e61eff9f374e491a/content
13:35:21,874 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) Starting deployment of "arquillian-service"
13:35:22,075 INFO [org.jboss.as.osgi] (MSC service thread 1-1) Register module: Module "deployment.arquillian-service:main" from Service Module Loader
{code}