Search code examples
jboss-arquillianarquillian-dronegraphene2

How to make working MavenImporter on Graphene 2.3


I'm working with a web application based on jsf, and I've some functional tests in which Arquillian is used.

The dependencies of my pom file are the following

<properties>
        <arquillian.version>1.1.14.Final</arquillian.version>
        <arquillian.graphene.version>2.2.1</arquillian.graphene.version>
        <arquillian.glassfish.version>1.0.1</arquillian.glassfish.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>${arquillian.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

       <dependency>
            <groupId>org.jboss.arquillian.junit</groupId>
            <artifactId>arquillian-junit-container</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.arquillian.graphene</groupId>
            <artifactId>graphene-webdriver</artifactId>
            <version>${arquillian.graphene.version}</version>
            <type>pom</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.shrinkwrap.resolver</groupId>
            <artifactId>shrinkwrap-resolver-api-maven-archive</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.arquillian.container</groupId>
            <artifactId>arquillian-glassfish-remote-3.1</artifactId>
            <version>${arquillian.glassfish.version}</version>
            <scope>test</scope>
        </dependency>

My deployment method starts with the following line

@Deployment
public static WebArchive createDeployment() throws IOException {
     MavenImporter x1 = ShrinkWrap.create(MavenImporter.class);
     ...
     ...
}

All is working fine but after updating the graphene-webdriver dependency from 2.2.1 to 2.3.2 at the first line of the createDeployment method an exception is raised.

The current configuration has no mapping for type org.jboss.shrinkwrap.resolver.api.maven.archive.importer.MavenImporter, unable to determine extension. You should provide extension in the services descriptor file
    at org.jboss.shrinkwrap.api.UnknownExtensionTypeException.newInstance(UnknownExtensionTypeException.java:68)
    at org.jboss.shrinkwrap.api.UnknownExtensionTypeExceptionDelegator.newExceptionInstance(UnknownExtensionTypeExceptionDelegator.java:37)
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.findExtensionImpl(ServiceExtensionLoader.java:279)
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.loadExtensionMapping(ServiceExtensionLoader.java:246)
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.getExtensionFromExtensionMapping(ServiceExtensionLoader.java:160)
    at org.jboss.shrinkwrap.api.ArchiveFactory.create(ArchiveFactory.java:104)
    at org.jboss.shrinkwrap.api.ShrinkWrap.create(ShrinkWrap.java:136)

What I'm doing wrong? Can you help me? Thank you


Solution

  • Now it's working. My pom looks like the following

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>1.1.15.Final</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian.selenium</groupId>
                <artifactId>selenium-bom</artifactId>
                <version>3.8.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian.extension</groupId>
                <artifactId>arquillian-drone-bom</artifactId>
                <version>2.5.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependencies>
        <dependency>
            <groupId>org.jboss.arquillian.junit</groupId>
            <artifactId>arquillian-junit-container</artifactId>
            <scope>test</scope>
        </dependency>
    
        <dependency>
            <groupId>org.jboss.arquillian.graphene</groupId>
            <artifactId>graphene-webdriver</artifactId>
            <version>2.3.2</version>
            <type>pom/type>
            <scope>test</scope>
        </dependency>
    
        <dependency>
            <groupId>org.jboss.shrinkwrap.resolver</groupId>
            <artifactId>shrinkwrap-resolver-impl-maven-archive</artifactId>
            <version>3.0.1</version>
            <scope>test</scope>
        </dependency>        
        <dependency>
            <groupId>org.jboss.shrinkwrap.resolver</groupId>
            <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
            <version>3.0.1</version>
            <scope>test</scope>
        </dependency>
        ...
        ...
    </dependencies>