arquillian.org: The Bridge of the Arquillian Project

The short version

Arquillian now has guides! If you want to know how to get started with Arquillian, head over to arquillian.org to check them out…in one of 8 languages! If you want to make them better, fork the website project and get involved.

The slightly longer version

When I thought of how to present arquillian.org, naturally images of alien spacecraft came to mind. These days, there’s a lot of activity flowing in an out of the Arquillian mothership. To manage and make sense of all that information, we were in need of a central view of everything. In other words, we needed to get to “the bridge” of the ship. From there we can monitor activity, publish the lastest information, collect and exchange ideas and decide which actions to take.

Well, we’ve made it, finally. Welcome to arquillian.org. As Bob McWhirter likes to say, “You’re soaking in it.”

The full story

We’ve been thrilled to witness the impact Arquillian has made over these last two years and the agility it’s brought to the Java ecosystem. There’s no question, the Arquillian invasion is in full force.

But even as we stood on stage at JavaOne to receive a Duke’s Choice Award for Arquillian on behalf of our awesome community, I kept thinking about how much more successful it could be. I mean, if developers have been able to figure out how to use and build on Arquillian so far, just imagine how many more developers would use it—and how much easier it would be for them—if the project actually had some decent guides to get started.

We felt your pain. We heard your voice.

That’s why we decided at JavaOne it was time to get serious about closing this gap by writing several step-by-step guides. We didn’t leave off there, though. We recognized the whole experience of discovering Arquillian for the first time (or coming back to it after a break) needs to be extremely easy and rewarding. So after we drafted the guides, we molded them into a visually appealing website with a call to action button you can’t possibly miss. We then called on our noble community members to volunteer to translate those guides into as many languages as possible. And they came through!

The long road

Ever since then, we have been trying to get these guides into your hands. It’s been a long and rather ridiculous journey. I describe it as ridiculous for contrasting reasons.

On one hand, the reason we couldn’t make it available was ridiculous. But that’s a long and boring story. On a positive note, it was ridiculous to see how much effort the community has contributed to driving this vision to make Arquillian easy to adopt and use—to a website that wasn’t even being published, no less. It certainly demonstrated a lot of spirit. That’s why we kept pressing against that first ridiculous reason to get it launched :)

The final stretch

Over the past several weeks, I’ve been working with Sarah and Aslak (with blood, sweat and tears) to get this website ready to publish. We have curated as much information as we can find—at least so far—and organized it into a website that’s going to give you a view into the Arquillian project like you’ve never seen before. Heck, even while building the website, I was stunned to finally see a list of modules, releases and changelogs in one place for the first time. And now, it’s finally out there.

A new beginning

This is just the beginning. By no means do I consider the website to be set in stone for you just to look at (though I need a few days off to sleep). Quite the opposite. arquillian.org is an open book. It’s a Creative Commons (CC BY-SA 3.0) open source project hosted on, you guessed it, github. Clone (or fork) the repository named arquillian.github.com and checkout the README. The project comes complete with an issue tracker and wiki.

It’s important to recognize that the website needs to be a part of the Arquillian project just like any other module. After all, the project is only as good as the information we put out there. I’m envisioning have contributors that join the website team much the same as they might join a module. The group will be a cross section of design, outreach, messaging, documentation and, of course, automation.

We got it spun up (nearly writing it twice) because we knew Arquillian was severely lacking in good documentation and reference material, but we want you to be as involved in it as you like.

The website reflects the quality of the software—especially in the eyes of new users—and therefore it represents all of our work. That’s why my favorite page on the site is the list of contributors ;) It’s all about you, the nobles.

What’s inside

Before I close, I want to mention some key highlights of the website. Then, I’ll leave you to explore and discover the rest :)

  • All content managed in git and hosted on Github
  • Baked with Awestruct, a static site generator
  • A data curating pipeline written in Ruby (JRuby) as Awestruct extensions
  • Pages written in Haml (with a mix of Textile)
  • Easy to read, step-by-step guides (written in Textile, changelog retrieved via git)
  • Blogs written in Textile (or Markdown)
  • Guest blogs and improvements integrated via pull requests
  • Layout and components built on Twitter Bootstrap and jQuery
  • CSS3 goodness and cross-browser support compiled by SASS
  • Designed to be responsive for mobile phones and tablets (give it a try!)
  • Module, release and commit information mined from git repositories
  • Auto-generated, in-depth blog entry plus custom notes for each release (example)
  • Detailed summary page for each module (repository, versions, dependencies, contributors, etc)
  • Contributor information backed by Github and Gravatar
  • Dynamic information retrieved via json-p (tunneled through jgfeed when necessary)
  • Upcoming talks on Arquillian syndicated from Lanyrd
  • Blogs and articles about Arquillian syndicated from Diigo
  • Under the watchful eye of Ike (as you can see in the upper-left hand corner)

If you are curious about more details, check out the Information Architecture page I drafted on the wiki about the site. Take a look at the README if you want to build the site locally.

The vision

Our vision is to automate as much as the documentation as we can possibly accomplish. It ain’t (just) because we’re lazy. It’s because we know it’s the only way to get you the most accurate, up to date information about Arquillian and to reasonably manage the growing Arquillian ecosystem. In other words, we need to be in “the bridge”. And now we have it. Just check out the module pages. What a start!

Use it. Enjoy it. Pass it on. And fork it if you want it to be better.

If words could do

I want to give a huge thanks to Sarah White, who has stuck with me through trying times to get this website looking visually stunning, organized and logical (and for just putting up with my intense focus on this project).

I also want to recognize the following translators, who have brought the guides to 8 languages in total: Markus Eisele (German), Antoine Sabot-Durand and Badr El Houari (French), Takayuki Konishi (Japanese), Hantsy Bai (Simplified Chinese), Bartosz Majsak (Polish), Jose Rodolfo Freitas (Portuguese) and Tommy Tynja (Swedish). Arquillian is forever changed because of your effort.

Finally, I want to thank all of the contributors who have embraced writing release blog entries—Vineet Reynolds, Bartosz Majsak, Karel Piwko and Lukas Fryc—and contributing guides—Karel Piwko, Paul Bakker, Lincoln Baxter and Marek Schmidt.

That’s exactly the participation I envision will make this website a key communication hub of the Arquillian project. Let’s keep the invasion strong!

ShrinkWrap Descriptors 2.0.0-alpha-1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 2.0.0-alpha-1 release of the ShrinkWrap Descriptors component!

What is ShrinkWrap Descriptors?

The Shrinkwrap Descriptor project provides an uniformed fluent API for creating and modifying Java EE deployment descriptors on the fly. Starting from the very early JEE 1.3 to the brand new Java EE 7 version, the descriptor project includes almost all official deployment descriptors. Several vendor specific deployment descriptors, mostly JBoss related, are covered as well.

Release details

Component ShrinkWrap Descriptors
Version 2.0.0-alpha-1 view tag
Release date 2012-03-27
Released by Andrew Lee Rubinger
Compiled against
  • JUnit – 4.8.1

Published artifacts org.jboss.shrinkwrap.descriptors

  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-api-base jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-api-javaee jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-api-jboss jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-api-misc jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-bom pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-depchain pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-gen jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-impl-base jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-impl-javaee jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-impl-jboss jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-impl-misc jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-spi jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-test jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-test-util jar javadoc pom
  • org.jboss.shrinkwrap.descriptors » shrinkwrap-descriptors-metadata-parser-test jar javadoc pom

Release notes and resolved issues 6

Feature Request
Task

Thanks to the following list of contributors: Ralf Battenfeld, Andrew Lee Rubinger, Ken Finnigan

Arquillian Drone Extension 1.0.0.CR4 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.CR4 release of the Arquillian Drone Extension component!

Some of the highlights in this release

Upgraded underlying Selenium to 2.20.0

Simplified usage for Arquillian Drone with WebDriver and Selenium. We provide dependency chain artifacts which will grab all required dependencies. Use either one of them you need, both of them or even combined with Arquillian Graphene.

pom.xml
<dependencyManagement>
    <dependencies>
        <!-- clip -->
        <dependency>
            <groupId>org.jboss.arquillian.extension</groupId>
            <artifactId>arquillian-drone-bom</artifactId>
            <version>1.0.0.CR4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>    
<dependencies>
    <!-- clip -->
    <!-- this is only dependency you need to add 
         in order to use Arquillian Drone with WebDriver in your project --> 
    <dependency>
        <groupId>org.jboss.arquillian.extension</groupId>
        <artifactId>arquillian-drone-webdriver-depchain</artifactId>
        <version>1.0.0.CR4</version>
        <type>pom</type>
        <scope>test</scope>
    </dependency>      
    <!-- clip -->
    <!-- this is only dependency you need to add 
         in order to use Arquillian Drone with Selenium in your project --> 
    <dependency>
        <groupId>org.jboss.arquillian.extension</groupId>
        <artifactId>arquillian-drone-selenium-depchain</artifactId>
        <version>1.0.0.CR4</version>
        <type>pom</type>
        <scope>test</scope>
    </dependency>     
</dependencies>

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 Arquillian Drone Extension
Version 1.0.0.CR4 view tag
Release date 2012-03-27
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-configuration jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-server jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom

Release notes and resolved issues 5

Component Upgrade
  • ARQ-749 - Update JBoss Parent to 8
  • ARQ-750 - Update Selenium version to 2.20.0
  • ARQ-820 - Update Arquillian Core to 1.0.0.CR7
Enhancement
  • ARQ-821 - Provide a dependency chain to make usage of Drone with Selenium and WebDriver easier

Thanks to the following list of contributors: Karel Piwko, Aslak Knutsen

Arquillian OpenShift Container 1.0.0.Beta1 Released

The Arquillian team is proud to announce the 1.0.0.Beta1 release of the Arquillian OpenShift Container component!

Some of the highlights in this release

Better integration for usage in continous integration servers. You can now specify the path to the SSH identity file and disable SSH Strict host checking if needed:

arquillian.xml
<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="openshift">
    <configuration>
      <!-- CAN BE SET VIA SSH_IDENTITYFILE environment variable as well -->
      <property name="identityFile">/absolute/path/to/identity/file</property>
      <property name="disableStrictHostChecking">true</true>
    </configuration>
  </container>

</arquillian>

Archive scanning now does not fail in case of linkage errors.

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 Arquillian OpenShift Container
Version 1.0.0.Beta1 view tag
Release date 2012-03-26
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.container

  • org.jboss.arquillian.container » arquillian-openshift-express jar javadoc pom

Release notes and resolved issues 3

Feature Request
  • ARQ-823 - Allow OpenShift Container to specify path to ssh keys
Bug
  • ARQ-822 - ByteAssetLoader does not ignore all LinkageError subtypes

Thanks to the following list of contributors: Karel Piwko, Aslak Knutsen

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