Arquillian Universe - Getting started experience


#1

We’ve started a new project to improve the Getting Started experience of Arquillian Universe.

It’s been a long complain/frustration that Arquillian is too hard to configure/setup/dependency hell. The Arquillian Universe Bom project is aiming to do something about that. https://github.com/arquillian/arquillian-universe-bom

The initial discussion can be found here: https://github.com/arquillian/arquillian-universe-bom/issues/1

Currently the user view looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.arquillian.universe</groupId>
    <artifactId>arquillian-test</artifactId>
    <name>Arquillian Universe Test</name>
    <description>Arquillian Universe Test</description>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.arquillian</groupId>
                <artifactId>arquillian-universe</artifactId>
                <version>1.0.0.Alpha1-SNAPSHOT</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.arquillian.universe</groupId>
            <artifactId>arquillian-junit</artifactId>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.arquillian.universe</groupId>
            <artifactId>arquillian-persistence</artifactId>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.arquillian.universe</groupId>
            <artifactId>arquillian-chameleon</artifactId>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

That gives you the Arquillian JUnit Container integration, Arquillian Persistence and the Chameleon container. Similar you can add org.arquillian.universe:arquillian-drone|graphene and soon to come a bunch of the others, e.g. Cube, Warp etc…

Additional to this POM, the only extra configuration currently is some target for the Chameleon container:

<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://jboss.org/schema/arquillian"
    xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

    <container qualifier="chameleon" default="true">
        <configuration>
            <property name="chameleonTarget">wildfly:9.0.0.Final:managed</property>
        </configuration>
    </container>
</arquillian>

Thoughts?


#2

I would suggest merging all guides into 1 canonical, centralized reference manual and add all Arquillian universe docs there (and only there). So with the very least a separate chapter for each major extension. And also 1 or more quick start chapters. There could be a new repo in github as arquillian-docs to hold those docs. Currently all docs info is scattered and unversioned (so it’s not obvious if there’s a newer better version of that information).

Then we can use ctrl-f in the browser on the single_html to find the best quality Arquillian related information in one page. Examples of such reference manuals for other projects:
http://docs.jboss.org/optaplanner/release/6.2.0.Final/optaplanner-docs/html_single/index.html
https://docs.jboss.org/weld/reference/latest/en-US/html_single/
docs.jboss.org/resteasy/docs/3.0.12.Final/userguide/html_single/index.html
docs.jboss.org/hibernate/orm/5.0/userGuide/en-US/html_single/


#3

@Geoffrey_De_Smet Docs are definitely another pain point that needs work.


#4

How about improving the Arquillian Forge add-on to automatically set that up?


#5

@gastaldi To setup the Universe BOM? or instead of?

But yes, of course the Forge addon should be updated to use ‘this’… But let’s figure out what ‘this’ is first :smile:


#6

Yes, setup the universe BOM or any specific arquillian subproduct


#7

The first set of Universe modules has been pushed upstream; https://github.com/arquillian/arquillian-universe-bom

Feel free to take it for a spin! :slight_smile:


#8

man, this is really complicated configuration,
especially when you already have a project that has dependency modules (EAR, EJB, WEB) .com one 6 Jboss application server on my machine.
I’m trying to set up to 7 days, but nothing, is not it the container, of null, already configured the arquillian.xml already put in pom.xml and is also referenced in JBOSS_HOME the path and could not work anything yet :frowning: , I started reading your book, Aslak, “Continuous Enterprise Development in Java” especially the part about Arquillian. I am not an expert in Arquillian. not yet, but I will get.
If powers humbly help me. can you help me Aslak? :smiley: :smile:


#9

If you could provide your POM xml I can try to see what might be wrong…