Hi Romain,

I am not entirely sure how to force the versions. The problem is that 
Shrinkwrap 1.0.0-beta-7 (in Arquillian 1.0.3) needs the API defined in Aether 
1.8, and Arquillian-tomee-remote needs the API defined in Aether 1.13.1. These 
API's are not compatible at all. If I define the Maven dependencies in such a 
way that only Aether 1.8 is used, Arquillian-tomee-remote does not work, and if 
only Aether 1.13.1 is used, Arquillian 1.0.3 does not work. As far as I know I 
cannot have both versions on my classpath or am I mistaken?

Kind regards,

Michiel

-----Original Message-----
From: Romain Manni-Bucau [mailto:[email protected]] 
Sent: vrijdag 20 september 2013 14:34
To: [email protected]
Subject: Re: ClassNotFoundExceptions on more than two Arquillian tests

Hi

basically with arquillian just align versions on the adapter you use otherwise 
you likely have issues.
In tomee 1.5 adapters (no more true for trunk) we were using aether to find 
tomee automatically and then shrinkwrap used it too with an old version leading 
to the issue you speak about. Maybe force it in the pom (deps are here 
http://svn.apache.org/repos/asf/tomee/tomee/trunk/utils/openejb-provisionning/pom.xml
 )

*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*



2013/9/20 Michiel Graat <[email protected]>

> Hi Romain,
>
> I downgraded to 1.0.3 but which version of Shrinkwrap should I use in 
> that case? I tried 1.0.0-beta-7, 2.0.0-alpha-5, 2.0.0-alpha-6 and 
> 2.0.0, which al lead to problems.
>
> 1.0.0-beta-7, which is the version used in Arquillian 1.0.3, results 
> in an
> error:
>
> java.lang.NoClassDefFoundError: 
> org/sonatype/aether/impl/SyncContextFactory
>
> The cause seems to be a version clash between Shrinkwrap and 
> Arquillian-tomee-remote which use aether 1.8 and 1.13.1 respectively:
>
>  [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dbs --- 
> [INFO] foo.bar:dbs:war:0.0.1-SNAPSHOT [INFO] +- 
> org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar:1.0.0
> -beta-7:compile [INFO] |  +- 
> org.sonatype.aether:aether-api:jar:1.8:compile
> [INFO] |  +- org.sonatype.aether:aether-util:jar:1.8:compile
> [INFO] |  |  \- (org.sonatype.aether:aether-api:jar:1.8:compile - 
> omitted for duplicate) [INFO] |  +- 
> org.sonatype.aether:aether-connector-wagon:jar:1.8:compile
> [INFO] |  |  +- (org.sonatype.aether:aether-api:jar:1.8:compile - 
> omitted for duplicate) [INFO] |  |  +- 
> org.sonatype.aether:aether-spi:jar:1.8:compile
> [INFO] |  |  |  \- (org.sonatype.aether:aether-api:jar:1.8:compile - 
> omitted for duplicate) [INFO] |  |  \- 
> (org.sonatype.aether:aether-util:jar:1.8:compile - omitted for 
> duplicate) [INFO] |  \- 
> org.apache.maven:maven-aether-provider:jar:3.0.1:compile
> [INFO] |     +- (org.sonatype.aether:aether-api:jar:1.8:compile - omitted
> for duplicate)
> [INFO] |     +- (org.sonatype.aether:aether-spi:jar:1.8:compile - omitted
> for duplicate)
> [INFO] |     +- (org.sonatype.aether:aether-util:jar:1.8:compile - omitted
> for duplicate)
> [INFO] |     \- org.sonatype.aether:aether-impl:jar:1.8:compile
> [INFO] |        +- (org.sonatype.aether:aether-api:jar:1.8:compile -
> omitted for duplicate)
> [INFO] |        +- (org.sonatype.aether:aether-spi:jar:1.8:compile -
> omitted for duplicate)
> [INFO] |        \- (org.sonatype.aether:aether-util:jar:1.8:compile -
> omitted for duplicate)
> [INFO] \- org.apache.openejb:arquillian-tomee-remote:jar:1.5.2:compile
> [INFO]    \- org.apache.openejb:arquillian-tomee-common:jar:1.5.2:compile
> [INFO]       \- org.apache.openejb:openejb-provisionning:jar:4.5.2:compile
> [INFO]          +- (org.sonatype.aether:aether-api:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          +- (org.sonatype.aether:aether-spi:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          +- (org.sonatype.aether:aether-util:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          +- (org.sonatype.aether:aether-impl:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          \-
> (org.sonatype.aether:aether-connector-wagon:jar:1.13.1:compile - 
> omitted for conflict with 1.8)
>
> I do not know how to resolve this version clash. 
> arquillian-tomee-remote needs 1.13.1 (hence the NoClassDefFoundError) and 
> Shrinkwrap needs 1.8.
> These versions of aether seem to have completely incompatible API's. 
> If I manually copy the 1.13.1 JAR into my repository all tests somehow 
> work, but obviously I do not want to have to copy that JAR manually 
> every time I update my repository. Any idea if this version clash 
> problem can be resolved?
>
> I also tried 2.0.0-alpha-5 because it seems to be the version you guys 
> use according to 
> http://svn.apache.org/repos/asf/tomee/tomee/trunk/arquillian/arquillian-tomee-tests/pom.xml.
> However, in this case I get a  RunTimeException:
>
> java.lang.RuntimeException: Could not invoke deployment method: public 
> static org.jboss.shrinkwrap.api.spec.WebArchive
> nl.sidn.dbs.test.ArquillianTest.createDeployment()
> -- snip --
> Caused by: java.lang.IllegalArgumentException: Packaging type zip is 
> not supported.
>
> In this case the problem seems to be that my pom contains the 
> following entry (it is the only entry with type 'zip'), which I need of 
> course:
>
> <dependency>
>         <groupId>org.apache.openejb</groupId>
>         <artifactId>apache-tomee</artifactId>
>         <version>${tomee.version}</version>
>         <classifier>${tomee.classifier}</classifier>
>         <type>zip</type>
> </dependency>
>
> Because of this problem I decided to try a slightly newer version, 
> 2.0.0-alpha-6. This results in the same problems I had before, but 
> before the hsqldb-related problems start a different exception is thrown:
>
> java.lang.ClassCastException:
> org.apache.tomee.myfaces.TomEEAnnotationProviderFactory cannot be cast 
> to org.apache.myfaces.spi.AnnotationProviderFactory
>
> I am including the myfaces-api and myfaces-impl as provided 
> dependencies in my pom, so it could be related to that. Full logs for 
> 2.0.0-alpha-6 can be found here: http://pastebin.com/Zk8hVeAw.
>
> Trying 2.0.0 leads to the same problems as I had before, for 
> completeness sake I uploaded the logs: http://pastebin.com/SsjtDgu5
>
> Kind regards,
>
> Michiel
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:[email protected]]
> Sent: donderdag 19 september 2013 17:48
> To: [email protected]
> Subject: Re: ClassNotFoundExceptions on more than two Arquillian tests
>
> Hi
>
> arquillian 1.1.1 doesn't work with tomee 1.5.2, keep using 1.0.3.
>
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> *Blog: **http://rmannibucau.wordpress.com/*<
> http://rmannibucau.wordpress.com/>
> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> *Github: https://github.com/rmannibucau*
>
>
>
> 2013/9/19 John D. Ament <[email protected]>
>
> > Michiel,
> >
> > Just wondering, are you including hsqldb in your war file?
> >
> > John
> >
> > On Thu, Sep 19, 2013 at 11:10 AM, Michiel Graat 
> > <[email protected]>
> > wrote:
> > > Hi guys,
> > >
> > > I have been trying to use Arquillian/TomEE but I have run into a 
> > > strange
> > problem. Whenever I try to run more than two arquillian testclasses 
> > in one testrun I get ClassNotFoundExceptions for the 
> > org.hsqldb.jdbc.Util
> class.
> > If I run the testclasses separately or two at a time everything 
> > works
> fine.
> > >
> > > I use arquillian 1.1.1.Final with TestNG, arquillian-tomee-remote
> > > 1.5.2
> > for webprofile and shrinkwrap 2.0.0. My deployment method looks like
> this:
> > >
> > > @Deployment
> > > public static WebArchive createDeployment() { File[] deps =
> > > Maven.resolver()
> > > .loadPomFromFile("pom.xml")
> > > .importRuntimeAndTestDependencies()
> > > .resolve().withTransitivity().asFile();
> > >
> > > return ShrinkWrap.create(WebArchive.class, "dbs.war")
> > >         .addPackages(true, "foo.bar.dbs")
> > >         .addAsManifestResource("META-INF/test-persistence.xml",
> > "persistence.xml")
> > >         .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
> > >         .addAsLibraries(deps)
> > >         .addAsResource("messages_nl.properties",
> > "messages_nl.properties");
> > > }
> > >
> > > I remember seeing HSQLDB lock errors when trying to run more than 
> > > two
> > testclasses but I cannot seem to reproduce them anymore.
> > >
> > > You can find a log of a failed run here (split into 3 parts, 
> > > because its
> > > 1 MB total, lots of repetition of stacktraces though), in it I try 
> > > to run
> > three tests:
> > >
> > > http://pastebin.com/KvQtJ6LH (part 1) http://pastebin.com/Ww6rSDGw 
> > > (part 2)
> > > http://pastebin.com/6YpdKXq4 (part 3)
> > >
> > > A successful run (two tests) can be found here:
> > >
> > > http://pastebin.com/2HBnAKPw
> > >
> > > This problem has kept me occupied for days now but I cannot seem 
> > > to find
> > the cause or a solution. Do you guys have any idea?
> > >
> > > Kind regards,
> > >
> > > Michiel
> >
>

Reply via email to