6 Replies Latest reply on Jul 23, 2013 8:25 PM by rokhmanov

    arquillian 1.1.0 final and shrinkwrap

    kgoedert

      Hi,

       

      I am trying to follow this guide http://arquillian.org/guides/functional_testing_using_drone/ but using version 1.1.0 final of arquillian. But I am getting a MavenDependencyResolver cannot be resolved to a type error. Should I change my version to the one used on the guide? Or am I missing a dependency? Here is the relevant parts of the pom:

       

       

      {code}<version.arquillian_core>1.1.0.Final</version.arquillian_core>{code}

       

       

      {code}

      <dependencyManagement>

                          <dependencies>

                                    <dependency>

                                              <groupId>org.jboss.spec</groupId>

                                              <artifactId>jboss-javaee-6.0</artifactId>

                                              <version>3.0.2.Final</version>

                                              <type>pom</type>

                                              <scope>import</scope>

                                    </dependency>

                                    <dependency>

                                              <groupId>org.jboss.arquillian</groupId>

                                              <artifactId>arquillian-bom</artifactId>

                                              <version>${version.arquillian_core}</version>

                                              <type>pom</type>

                                              <scope>import</scope>

                                    </dependency>

                                    <dependency>

                                              <groupId>org.jboss.arquillian.extension</groupId>

                                              <artifactId>arquillian-drone-bom</artifactId>

                                              <version>1.2.0.Alpha2</version>

                                              <type>pom</type>

                                              <scope>import</scope>

                                    </dependency>

                          </dependencies>

                </dependencyManagement>

       

      {code}

       

       

      {code}

      <dependency>

                                    <groupId>org.jboss.shrinkwrap.resolver</groupId>

                                    <artifactId>shrinkwrap-resolver-impl-maven</artifactId>

                                    <scope>test</scope>

                          </dependency>

       

      {code}

       

       

      and the class that is not compiling

       

       

      {code}

      public class Deployments {

                private static final String WEBAPP_SRC = "src/main/webapp";

       

       

                public static WebArchive createLoginScreenDeployment() {

                          MavenDependencyResolver resolver = DependencyResolvers.use(MavenDependencyResolver.class).loadMetadataFromPom("pom.xml");

       

       

                          return ShrinkWrap.create(WebArchive.class, "login.war").addClasses(Credentials.class, User.class, LoginController.class)

                                              .addAsLibraries(resolver.artifact("org.jboss.seam.solder:seam-solder").resolveAsFiles()).addAsWebResource(new File(WEBAPP_SRC, "login.xhtml"))

                                              .addAsWebResource(new File(WEBAPP_SRC, "home.xhtml")).addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")

                                              .addAsWebInfResource(new StringAsset("<faces-config version=\"2.0\"/>"), "faces-config.xml");

                }

      }

       

      {code}

        • 1. Re: arquillian 1.1.0 final and shrinkwrap
          alrubinger

          The latest Arquillian Core upgrades to a new major release of ShrinkWrap Resolver.  Probably you want something more like:

           

          MavenResolverSystem resolver = Maven.resolver().loadPomFromFile("pom.xml");

           

          ...consult the JavaDocs[1] or User Guide[2] for more info.

           

          S,

          ALR

           

          [1] https://repository.jboss.org/nexus/service/local/repositories/releases/archive/org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-api-maven/2.0.0/shrinkwrap-resolver-api-maven-2.0.0-javadoc.jar/!/index.html

          [2] https://github.com/shrinkwrap/resolver/blob/master/README.asciidoc

          1 of 1 people found this helpful
          • 2. Re: arquillian 1.1.0 final and shrinkwrap
            bmajsak

            Resolver have changed Maven API with the 2.x branch. So now the code should look more like

            Maven.resolver().resolve("G:A:V").withTransitivity().asFile();

             

            Have a look at repo and the tests there https://github.com/shrinkwrap/resolver

             

            HTH

            1 of 1 people found this helpful
            • 3. Re: arquillian 1.1.0 final and shrinkwrap
              alrubinger

              I replied first.

              • 4. Re: arquillian 1.1.0 final and shrinkwrap
                rokhmanov

                Hi, I'd like to report another occasion of MavenDependencyResolver. I am testing Arquillian Google Guice Extension 1.0.0.Alpha1 (released on Jun 20) and noticed that GuiceProtocolArchiveProcessor relies on MavenDependencyResolver class.

                 

                When I attempt to run a test case with @GuiceConfiguration it gives me java.lang.NoClassDefFoundError: org/jboss/shrinkwrap/resolver/api/maven/MavenDependencyResolver. A complete exception dump below. Is this a bug or something wrong with my setup?

                 

                Artifacts: arquillian-guice-impl-1.0.0.Alpha1.jar, shrinkwrap-resolver-api-maven-2.0.0.jar

                 

                Exception dump:

                java.lang.NoClassDefFoundError: org/jboss/shrinkwrap/resolver/api/maven/MavenDependencyResolver

                        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

                        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

                        at java.security.AccessController.doPrivileged(Native Method)

                        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

                        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)

                        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

                        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

                        at org.jboss.arquillian.guice.impl.client.GuiceProtocolArchiveProcessor.resolveArtifact(GuiceProtocolArchiveProcessor.java:144)

                        at org.jboss.arquillian.guice.impl.client.GuiceProtocolArchiveProcessor.resolveArtifact(GuiceProtocolArchiveProcessor.java:129)

                        at org.jboss.arquillian.guice.impl.client.GuiceProtocolArchiveProcessor.resolveGuiceDependencies(GuiceProtocolArchiveProcessor.java:109)

                        at org.jboss.arquillian.guice.impl.client.GuiceProtocolArchiveProcessor.addGuiceLibraries(GuiceProtocolArchiveProcessor.java:93)

                        at org.jboss.arquillian.guice.impl.client.GuiceProtocolArchiveProcessor.process(GuiceProtocolArchiveProcessor.java:56)

                        at org.jboss.arquillian.protocol.servlet.Processor.process(Processor.java:46)

                        at org.jboss.arquillian.protocol.servlet.v_3.ServletProtocolDeploymentPackager.handleArchive(ServletProtocolDeploymentPackager.java:94)

                        at org.jboss.arquillian.protocol.servlet.v_3.ServletProtocolDeploymentPackager.generateDeployment(ServletProtocolDeploymentPackager.java:71)

                        at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.buildTestableDeployments(DeploymentGenerator.java:193)

                        at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.createTestableDeployments(DeploymentGenerator.java:148)

                        at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:85)

                ...

                 

                Thanks,

                Andriy

                • 5. Re: arquillian 1.1.0 final and shrinkwrap
                  aslak

                  Andiry, could you report a jira issue on that one: https://issues.jboss.org/browse/ARQ

                   

                  Some extensions use Resolver to auto package some artifacts, and not all are updated to support core 1.1 yet.

                  • 6. Re: arquillian 1.1.0 final and shrinkwrap
                    rokhmanov

                    Thanks Aslak for quick reply.

                    https://issues.jboss.org/browse/ARQ-1439