Using Arquillian without mvn, forge, or ant+ivy
thomasmorrow Feb 23, 2017 2:56 PMI realize the following scenario is off the beaten path, but I don't have any choice. I would love some sort of suggestion on how to approach this problem. Even if it is only a take a look at this webpage, etc. All of the solutions seem to use a build/dependency tool besides ant.
I'm working on a project where the systems we work on can't be connected to the internet. We also can't bring in any new executables without a large paperwork trail. It would take many months to bring in open source executable software. I can however bring in libraries or jar files. Our development environment contains wildfly, mysql, hibernate and netbeans as an ide. I would like to add Arquillian to that. If there are any other pertinent details I'm leaving out please let me know.
I have been successful with getting mvn to work with the arquillian guides using a remote wildfly container on a computer connected to the internet. I have also been able to get mvn to export all of the dependencies for the guides to a separate directory.
I'm trying to create a typical ant netbeans project that will run a really simple arquillian project. It is basically a hello world project. I created a java ee project, created a simple class Happy and then added all of the dependencies from mvn to the Test Libraries folder. I then added an arquillian.xml under TestPackages/resources. For a simple test, I added HappyTest based on the code from the Getting Started Guide.
I put the code in github here.
My Test class looks like the following
@RunWith(Arquillian.class) public class HappyTest { @Deployment public static JavaArchive createDeployment() { return ShrinkWrap.create(JavaArchive.class) .addClass(Happy.class) .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"); } @Inject Happy happy; @Test public void beHappy() { Assert.assertEquals("the thing", happy.getSomething()); } }
When running the test I get the below errors
Do I need some sort of other dependency to do this? Or do I need to change my build files to do this correctly?
Thanks
Testcase: org.arquillian.example.HappyTest: | Caused an ERROR |
Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.JavaArchive org.arquillian.example.HappyTest.createDeployment()
java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.JavaArchive org.arquillian.example.HappyTest.createDeployment()
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(AnnotationDeploymentScenarioGenerator.java:181) | |
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generateDeployment(AnnotationDeploymentScenarioGenerator.java:103) | |
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generate(AnnotationDeploymentScenarioGenerator.java:64) | |
at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:79) | |
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96) | |
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) | |
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) | |
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) | |
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) | |
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) | |
at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:100) | |
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96) | |
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) | |
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) | |
at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92) | |
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96) | |
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) | |
at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73) | |
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96) | |
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) | |
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) | |
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) | |
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:87) | |
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:202) | |
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:431) | |
at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:55) | |
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:219) | |
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:167) |
Caused by: java.lang.reflect.InvocationTargetException
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(AnnotationDeploymentScenarioGenerator.java:177) |
Caused by: java.lang.IllegalArgumentException: WEB-INF/classes/org/arquillian/example/HappyTest.class not found in classloader sun.misc.Launcher$AppClassLoader@1c6b6478
at org.jboss.shrinkwrap.api.asset.ClassLoaderAsset.<init>(ClassLoaderAsset.java:70) | |
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.foundClass(URLPackageScanner.java:165) | |
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handle(URLPackageScanner.java:157) | |
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handle(URLPackageScanner.java:145) | |
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.scanPackage(URLPackageScanner.java:113) | |
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addPackage(ContainerBase.java:1520) | |
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addPackages(ContainerBase.java:1497) | |
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClasses(ContainerBase.java:1358) | |
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClass(ContainerBase.java:1285) | |
at org.arquillian.example.HappyTest.createDeployment(HappyTest.java:19) |
Message was edited by: Thomas Morrow
Message was edited by: Thomas Morrow to add a little more detail