Arquillian Extension JRebel 1.0.0.Alpha1 Released

The Arquillian team is proud to announce the 1.0.0.Alpha1 release of the Arquillian Extension JRebel component!

It’s great that we can write integration tests and that Arquillian can automatically deploy them into a container. However, writing these tests arn’t always that great. It takes precious time to wait for redeploys and often you need to fix datasets (for persistence extension), test logic or the implementation.

The JRebel extension is meant to save developers time. It leverages JRebel to hot deploy classes you have changed. The IDE takes care of recompiling the modified class and all you need to do is rerun the test.

How does JRebel extension avoid redeploys?

It creates a special metadata file for each deployment in target/jrebel-temp directory. When you run your tests it checks for this file. If the file is present then no redeploy happens.

How do I enable the JRebel extension for Arquillian?

All you need to do is add arquillian-jrebel-impl to class path (i.e. as a Maven dependency) and configure your contianer to run with the JRebel agent (I assume you have JRebel installed).

Here is an example configuration for JBoss AS7 bin/standalone.conf:

JAVA_OPTS="-javaagent:%JREBEL_HOME%/jrebel.jar $JAVA_OPTS"

Do I need rebel.xml?

Not neccesarily. Arquillian JRebel Extension can automatically generate rebel.xml based on your archives content. (Note that in cases where you add new class or resource to the archive after deployment: JRebel will most likely not pick it up).

You may of course provide your own rebel.xml and add it to testable archive with ShrinkWrap. If a rebel.xml file is found, the Arquillian JRebel Extension will skip generating it’s own.

Further reading

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 Extension JRebel
Version 1.0.0.Alpha1 view tag
Release date 2013-11-26
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-jrebel-impl jar javadoc pom

Release notes and resolved issues 5

Feature Request
  • ARQ-892 - Should be able to reference the real disk resources in rebel.xml where applicable
  • ARQ-893 - Should be able to work with EAR, WAR and JARs with rebel.xml files pr module
  • ARQ-894 - Allow developer to provide their own rebel.xml
  • ARQ-1311 - NPE when using @Deployment(testable=false)

Thanks to the following list of contributors: Bernard Labno, Aslak Knutsen