Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News JavaRebel 2.0 supports WAR/EAR hot-deployment and Spring integration

JavaRebel 2.0 supports WAR/EAR hot-deployment and Spring integration

This item in japanese


The latest version of JavaRebel, a JVM plugin used for dynamic deployment of application code changes, supports WAR/EAR hot-deployment and integration with Spring and Struts 2 frameworks. ZeroTurnaround development team recently announced the release of JavaRebel 2.0 version.

The tool uses a Java agent (-javaagent) to hot-deploy the code changes made in java classes in the web applications to override the servlet container (JBoss or Tomcat) default WAR deployment behavior (which redeploys the whole web application context).

The new features in JavaRebel 2.0 include:

  • Changes made in method body of a java class.
  • Changes to class structure, including adding methods, fields, constructors, changing/adding annotations, and changing interfaces.
  • Integration with Spring and Guice frameworks using JavaRebel plugins, which allows the application configuration to be changed dynamically. Plugins can be created using the JavaRebel SDK. It also has integration with MVC frameworks like Wicket, Stripes, Tapestry 4, and Struts2, with an open API for adding further support.
  • Exploded and Packaged Deployment: The new version supports application deployment as WAR/EAR files with exactly the same way as the exploded developments work. All the classes and resources will be reloaded on the fly as the application files are modified and saved. This feature requires a new configuration file called rebel.xml to tell JavaRebel where to find the updated classes and resources. There is also a Maven plugin that can be used to do this configuration from outside the IDE.

The new version of JavaRebel also includes some performance and startup time improvements, Reflection API changes and better test suites to verify the product functionality. There is also support for AspectJ load-time-weaving, IBM WebSphere and Groovy dynamic language. JavaRebel also has support for Eclipse platform where the developers can launch their plugins and as they change the source code they can see the results without restarting the new Eclipse instance.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Some corrections

    by Jevgeni Kabanov,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    JavaRebel does not use a custom classloader, -javaagent is a way to register a "Java agent" that has access to some lower level APIs like bytecode postprocessing. Also "Strut2" -> "Struts2" and atm JavaRebel is not integrated as an Eclipse plugin, it can be used to develop Eclipse plugins.

  • Re: Some corrections

    by Srini Penchikala,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks Jevgeni. I have made the corrections.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p