[jboss-as7-dev] Arquillian + Embedded + Modular Surefire Plugin
Kabir Khan
kabir.khan at jboss.com
Tue Jan 18 05:06:18 EST 2011
Thanks,
The trace looks like like it is being executed on the same thread as the client. For the JMX protocol the client calls the MBean server and then the MBean server executes the test runner MBean in the same thread. I will take a look at the JMX protocol later and see if I find anything there. How to set IN_CONTAINER on the "server side", and what is the significance of the Thread? TCCL?
On 17 Jan 2011, at 22:24, Aslak Knutsen wrote:
> It is not suppose to be called on the server side. It sounds like the
> TestRunner is not set to run IN_CONTAINER mode, or it's being re
> executed on the same Thread as the client ?
>
> -aslak-
>
> On Mon, Jan 17, 2011 at 8:29 PM, Kabir Khan <kabir.khan at jboss.com> wrote:
>> 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