Goodbye, Ajocado - Welcome, Graphene!

Goodbye, Ajocado

Wait, the Ajocado project is not leaving us!
It is just undergoing rename.
Why such a change?

Ajocado has always been a proud member of Arquillian family, however its name didn’t tell very well what’s its purpose is in the true alien world. In other words, the name didn’t fit the story.

Moreover, we have experienced many troubles explaining how Ajocado should be even pronounced.

I must admit it was unlucky choice.

Choosing the new name…

The project is like a diamond – very strong in its basis:

  • a strongly-typed, chaining API
  • efficient jQuery-based locators
  • proven to handle AJAX successfully

But on the other hand, diamonds can’t be simply manufactured.

Let’s look what more could Ajocado offer us:

  • rapid test development
  • readability
  • high-level abstractions

What can be as strong as diamond, but be much more flexible?

Welcome, Graphene

Graphene is stronger and stiffer than diamond, yet can be stretched by a quarter of its length, like rubber.

Let me introduce the Graphene – the strong and flexible UI automation tool – the old/new member of the alien crew, on the way to save the world!

What’s next?

The rename is already done, waiting in Maven repositories as Graphene 1.0.0.CR3.

And what about migration? It’s pretty straight-forward, as you can see in my previous post.

Thank you all who participated in choosing new name, renaming and migration testing (Vlasta Elias, Dan Allen, Jan Papousek, Karel Piwko)!

Project Links

Graphene 1.0.0.CR3 Released & How To Migrate from Ajocado

The Arquillian team is proud to announce the 1.0.0.CR3 release of the Graphene component!

The project Ajocado has been renamed to Graphene.

The first release under the new name waits for you in Maven repositories.

Migration Path

Fortunately, the migration to new name in your project is very smooth, you can even continue to use original APIs.

Java Classes

The packages of the Java classes have not been renamed, the only change is addition of three new interfaces/utilities and deprecation of the old ones:

  • Ajocado → Graphene
  • AjaxSelenium → GrapheneSelenium
  • AjocadoConfiguration → GrapheneConfiguration
  • AjocadoContext → GrapheneSeleniumContextM
  • AjocadoConfigurationContext → GrapheneConfigurationContext

The original names has been deprecated, but it doesn’t prevent to use current tests as they are – the deprecated classes will continue to be part of the project.

Configuration

The simple change in the arquillian.xml descriptor is needed, you just need to change ajocado to graphene:

<extension qualifier="graphene">
    ...
</extension>

Maven Artifacts

The most significant change underwent dependency system, so let me talk a more little bit about that:

In Ajocado CR2, there was only one dependency necessary to import all the JUnit/TestNG and all Arquillian dependencies.

In Graphene CR3, you need to manage several dependencies – however it makes your usage of dependencies little more cleaner, since you know exactly what dependencies are imported.

At first, you need to import JUnit/TestNG dependency:

Test Framework

JUnit

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.8.2</version>
    <scope>test</scope>
</dependency>

TestNG

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>5.14.6</version>
    <scope>test</scope>
</dependency>

Additionally, you need to choose between using Graphene as standalone or use Arquillian integration with containers:

Standalone Usage

In this mode, you don’t use integration with containers, you need to manage the container and deployment at own:

Arquillian JUnit Standalone

<dependency>
    <groupId>org.jboss.arquillian.junit</groupId>
    <artifactId>arquillian-junit-standalone</artifactId>
    <version>1.0.0.CR7</version>
    <scope>test</scope>
</dependency>

Arquillian TestNG Standalone

<dependency>
    <groupId>org.jboss.arquillian.testng</groupId>
    <artifactId>arquillian-testng-standalone</artifactId>
    <version>1.0.0.CR7</version>
    <scope>test</scope>
</dependency>

Container usage

In the container mode, you need to provide deployable archive (@Deployment) and the whole lifecycle of the container and deployment will be managed by Arquillian:

Arquillian JUnit Container

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

Arquillian TestNG Container

<dependency>
    <groupId>org.jboss.arquillian.testng</groupId>
    <artifactId>arquillian-testng-container</artifactId>
    <version>1.0.0.CR7</version>
    <scope>test</scope>
</dependency>

Graphene Dependency Chain

And finally it’s necessary to import Arquillian Graphene dependency chain, which includes all other necessary dependencies (Graphene, Drone, Selenium):

Graphene Dependency Chain

<dependency>
    <groupId>org.jboss.arquillian.graphene</groupId>
    <artifactId>arquillian-graphene</artifactId>
    <version>1.0.0.CR3</version>
    <type>pom</type>
    <scope>test</scope>
</dependency>

What’s next?

We are preparing to release Final later soon, the same as other dependencies in Arquillian ecosystem.

Thanks all the people who helped to test migration (Jan Papousek, Karel Piwko), so it is now pretty smooth.

Project Links

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Graphene
Version 1.0.0.CR3 view tag
Release date 2012-03-15
Released by Lukas Fryc
Compiled against

Published artifacts org.jboss.arquillian.graphene

  • org.jboss.arquillian.graphene » arquillian-graphene-parent pom
  • org.jboss.arquillian.graphene » arquillian-graphene-api jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene-impl jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene-drone jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene pom

Release notes and resolved issues 15

Component Upgrade
  • ARQGRA-21 - Upgrade Arquillian Core, Arquillian Drone and Shrinkwrap
  • ARQGRA-23 - Upgrade to JBoss Parent version 8
Enhancement
  • ARQGRA-32 - Remove javassist dependency
  • ARQGRA-33 - Classes Point, Dimension and Offset should override default equals and hashCode
  • ARQGRA-36 - Split arquillian-testng/junit to support -standalone and -container version
Feature Request
  • ARQGRA-54 - Thread-Local Contexts section in docs should be more clean even for people not so familiar with given topic
  • ARQGRA-59 - support for configurating arquillian.xml during runtime for matrix browser compability jobs
  • ARQGRA-61 - Umbrella: Rename the project to Graphene
Task
  • ARQGRA-97 - Remove repositories definition from pom.xml
  • ARQGRA-106 - Review usage of Shrinkwrap version definition
Sub-task
  • ARQGRA-88 - Test migration path for renaming Ajocado to Graphene
  • ARQGRA-89 - Rename project to Graphene - wiki/docs
  • ARQGRA-90 - Blog about renaming to Graphene
  • ARQGRA-91 - Rename JIRA project name to ARQGRA
  • ARQGRA-92 - Rename GitHub repository to arquillian-graphene

Thanks to the following list of contributors: Lukas Fryc, Juraj Huska, Karel Piwko, Pavol Pitonak

Graphene 1.0.0.CR3 Released & How To Migrate from Ajocado

The Arquillian team is proud to announce the 1.0.0.CR3 release of the Graphene component!

The project Ajocado has been renamed to Graphene.

The first release under the new name waits for you in Maven repositories.

Migration Path

Fortunately, the migration to new name in your project is very smooth, you can even continue to use original APIs.

Java Classes

The packages of the Java classes have not been renamed, the only change is addition of three new interfaces/utilities and deprecation of the old ones:

  • Ajocado → Graphene
  • AjaxSelenium → GrapheneSelenium
  • AjocadoConfiguration → GrapheneConfiguration
  • AjocadoContext → GrapheneSeleniumContextM
  • AjocadoConfigurationContext → GrapheneConfigurationContext

The original names has been deprecated, but it doesn’t prevent to use current tests as they are – the deprecated classes will continue to be part of the project.

Configuration

The simple change in the arquillian.xml descriptor is needed, you just need to change ajocado to graphene:

<extension qualifier="graphene">
    ...
</extension>

Maven Artifacts

The most significant change underwent dependency system, so let me talk a more little bit about that:

In Ajocado CR2, there was only one dependency necessary to import all the JUnit/TestNG and all Arquillian dependencies.

In Graphene CR3, you need to manage several dependencies – however it makes your usage of dependencies little more cleaner, since you know exactly what dependencies are imported.

At first, you need to import JUnit/TestNG dependency:

Test Framework

JUnit

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.8.2</version>
    <scope>test</scope>
</dependency>

TestNG

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>5.14.6</version>
    <scope>test</scope>
</dependency>

Additionally, you need to choose between using Graphene as standalone or use Arquillian integration with containers:

Standalone Usage

In this mode, you don’t use integration with containers, you need to manage the container and deployment at own:

Arquillian JUnit Standalone

<dependency>
    <groupId>org.jboss.arquillian.junit</groupId>
    <artifactId>arquillian-junit-standalone</artifactId>
    <version>1.0.0.CR7</version>
    <scope>test</scope>
</dependency>

Arquillian TestNG Standalone

<dependency>
    <groupId>org.jboss.arquillian.testng</groupId>
    <artifactId>arquillian-testng-standalone</artifactId>
    <version>1.0.0.CR7</version>
    <scope>test</scope>
</dependency>

Container usage

In the container mode, you need to provide deployable archive (@Deployment) and the whole lifecycle of the container and deployment will be managed by Arquillian:

Arquillian JUnit Container

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

Arquillian TestNG Container

<dependency>
    <groupId>org.jboss.arquillian.testng</groupId>
    <artifactId>arquillian-testng-container</artifactId>
    <version>1.0.0.CR7</version>
    <scope>test</scope>
</dependency>

Graphene Dependency Chain

And finally it’s necessary to import Arquillian Graphene dependency chain, which includes all other necessary dependencies (Graphene, Drone, Selenium):

Graphene Dependency Chain

<dependency>
    <groupId>org.jboss.arquillian.graphene</groupId>
    <artifactId>arquillian-graphene</artifactId>
    <version>1.0.0.CR3</version>
    <type>pom</type>
    <scope>test</scope>
</dependency>

What’s next?

We are preparing to release Final later soon, the same as other dependencies in Arquillian ecosystem.

Thanks all the people who helped to test migration (Jan Papousek, Karel Piwko), so it is now pretty smooth.

Project Links

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Graphene
Version 1.0.0.CR3 view tag
Release date 2012-03-15
Released by Lukas Fryc
Compiled against

Published artifacts org.jboss.arquillian.graphene

  • org.jboss.arquillian.graphene » arquillian-graphene-parent pom
  • org.jboss.arquillian.graphene » arquillian-graphene-api jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene-impl jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene-drone jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene pom

Release notes and resolved issues 15

Component Upgrade
  • ARQGRA-21 - Upgrade Arquillian Core, Arquillian Drone and Shrinkwrap
  • ARQGRA-23 - Upgrade to JBoss Parent version 8
Enhancement
  • ARQGRA-32 - Remove javassist dependency
  • ARQGRA-33 - Classes Point, Dimension and Offset should override default equals and hashCode
  • ARQGRA-36 - Split arquillian-testng/junit to support -standalone and -container version
Feature Request
  • ARQGRA-54 - Thread-Local Contexts section in docs should be more clean even for people not so familiar with given topic
  • ARQGRA-59 - support for configurating arquillian.xml during runtime for matrix browser compability jobs
  • ARQGRA-61 - Umbrella: Rename the project to Graphene
Task
  • ARQGRA-97 - Remove repositories definition from pom.xml
  • ARQGRA-106 - Review usage of Shrinkwrap version definition
Sub-task
  • ARQGRA-88 - Test migration path for renaming Ajocado to Graphene
  • ARQGRA-89 - Rename project to Graphene - wiki/docs
  • ARQGRA-90 - Blog about renaming to Graphene
  • ARQGRA-91 - Rename JIRA project name to ARQGRA
  • ARQGRA-92 - Rename GitHub repository to arquillian-graphene

Thanks to the following list of contributors: Lukas Fryc, Juraj Huska, Karel Piwko, Pavol Pitonak