[jboss-as7-dev] Arquillian + Embedded + Modular Surefire Plugin

Kabir Khan kabir.khan at jboss.com
Mon Jan 17 14:29:22 EST 2011


I am trying to get the demos that I see working (sar, serviceloader, messaging, jms, jms.client) running again as part of the smoke tests using the forked surefire plugin which loads everything with modular classloading. On the client this works fine, but for IN_CONTAINER tests I am seeing the stack trace at the end.

The basic problem seems to be that Arquillian calls MessagingTestCase.getDeployment() on the client as expected, however it then also calls it on the server once it is deployed which causes this error. Does this really need to happen on the server? Is there a way to disable this?

This then causes ShrinkWrap's ContainerBase to use the TCCL, which is the classloader of the deployment, to search for rg.jboss.as.test.modular.utils.ShrinkWrapUtils which is part of the deployment. URLPackageScanner.scanPackage() finds the url: "vfs:/content/messaging-example.jar/org/jboss/as/test/modular/utils/" which becomes "/content/messaging-example.jar/org/jboss/as/test/modular/utils/" before it is added to the list passed in to handleArchiveByFile(). Since "content/messaging-example.jar/org/jboss/as/test/modular/utils/" does not exist, it all falls over. 

org.jboss.arquillian.impl.event.FiredEventException: java.lang.RuntimeException: Could not get Deployment
        at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:68)
        at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
        at org.jboss.arquillian.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:99)
        at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:165)
        at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:189)
        at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:300)
        at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:185)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:128)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
        at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.java:69)
        at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodInternal(JMXTestRunner.java:145)
        at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodEmbedded(JMXTestRunner.java:114)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
        at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
        at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
        at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
        at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
        at javax.management.StandardMBean.invoke(StandardMBean.java:391)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
        at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
        at $Proxy18.runTestMethodEmbedded(Unknown Source)
        at org.jboss.arquillian.protocol.jmx.JMXMethodExecutor.invoke(JMXMethodExecutor.java:91)
        at org.jboss.arquillian.impl.handler.ContainerTestExecuter.callback(ContainerTestExecuter.java:50)
        at org.jboss.arquillian.impl.handler.ContainerTestExecuter.callback(ContainerTestExecuter.java:40)
        at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
        at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
        at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:160)
        at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:247)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:210)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:228)
        at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:300)
        at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:224)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
        at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:166)
        at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:189)
        at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:300)
        at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:185)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:128)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:120)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:103)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:339)
        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1011)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.modules.Module.run(Module.java:244)
        at org.jboss.modules.Main.main(Main.java:178)
Caused by: java.lang.RuntimeException: Could not get Deployment
        at org.jboss.arquillian.impl.DeploymentAnnotationArchiveGenerator.generateApplicationArchive(DeploymentAnnotationArchiveGenerator.java:65)
        at org.jboss.arquillian.impl.ClientDeploymentGenerator.generate(ClientDeploymentGenerator.java:60)
        at org.jboss.arquillian.impl.handler.ArchiveGenerator.callback(ArchiveGenerator.java:52)
        at org.jboss.arquillian.impl.handler.ArchiveGenerator.callback(ArchiveGenerator.java:42)
        at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
        ... 69 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.arquillian.impl.DeploymentAnnotationArchiveGenerator.generateApplicationArchive(DeploymentAnnotationArchiveGenerator.java:57)
        ... 73 more
Caused by: java.lang.RuntimeException: Error handling file /content/messaging-example.jar/org/jboss/as/test/modular/utils
        at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handleArchiveByFile(URLPackageScanner.java:165)
        at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handle(URLPackageScanner.java:181)
        at org.jboss.shrinkwrap.impl.base.URLPackageScanner.scanPackage(URLPackageScanner.java:132)
        at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addPackages(ContainerBase.java:1003)
        at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClasses(ContainerBase.java:914)
        at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClass(ContainerBase.java:855)
        at org.jboss.as.test.modular.utils.ShrinkWrapUtils.addClasses(ShrinkWrapUtils.java:147)
        at org.jboss.as.test.modular.utils.ShrinkWrapUtils.createJavaArchive(ShrinkWrapUtils.java:52)
        at org.jboss.as.test.embedded.demos.messaging.MessagingTestCase.createDeployment(MessagingTestCase.java:76)
        ... 78 more
Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:114)
        at java.util.zip.ZipFile.<init>(ZipFile.java:131)
        at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handleArchiveByFile(URLPackageScanner.java:149)
        ... 86 more





More information about the jboss-as7-dev mailing list