[
https://issues.jboss.org/browse/JBIDE-16696?page=com.atlassian.jira.plugi...
]
Aslak Knutsen commented on JBIDE-16696:
---------------------------------------
[~snjeza] I'm not follow your problem reasoning here.. How is the current working dir
related to finding multiple versions of the same class on classpath that Exception seem to
indicate?
IllegalStateException when Arquillian deployment uses Maven resolver
--------------------------------------------------------------------
Key: JBIDE-16696
URL:
https://issues.jboss.org/browse/JBIDE-16696
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: testing-tools
Affects Versions: 4.1.1.Final
Reporter: Rich DiCroce
Assignee: Snjezana Peco
In an Arquillian test class, if the @Deployment method uses the ShrinkWrap Maven Resolver
API, the method will be marked with the following warning and the Arquillian Cruiser view
does not show the deployment:
{noformat}
java.lang.IllegalStateException: There is more then a one service for serviceClass
org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystem(project=arquillian-bug-test)
{noformat}
There is no stack trace to indicate how the problem might be happening. At first, I
thought this might be a ShrinkWrap bug, but this exception doesn't occur when I
actually run the test. Eclipse shows only one implementation of MavenResolverSystem on the
classpath.
Example test class to reproduce the problem:
{code}
package test;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(Arquillian.class)
public class ARQJBTBugTest {
@Test
public void test() {
}
@Deployment
public static Archive<?> createDeployment() {
return ShrinkWrap.create(WebArchive.class)
.addAsLibraries(Maven.resolver()
.loadPomFromFile("pom.xml")
.importRuntimeDependencies()
.resolve()
.withTransitivity()
.asFile());
}
}
{code}
And the POM to go with it:
{code:xml}
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lapis.throwaway</groupId>
<artifactId>arquillian-bug-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<version.arquillian_core>1.1.3.Final</version.arquillian_core>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven-archive</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${version.arquillian_core}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
</plugins>
</build>
</project>
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira