InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

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

Posted by Srini Penchikala on Apr 05, 2009

Sections
Development
Topics
Java ,
Artifacts & Tools ,
Languages ,
Tools ,
Deployment ,
Programming ,
Cloud Computing ,
Agile ,
JavaRebel

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.

Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.

  • This article is part of a featured topic series on Agile and also Java
Some corrections by Jevgeni Kabanov Posted
Re: Some corrections by Srini Penchikala Posted
  1. Back to top

    Some corrections

    by Jevgeni Kabanov

    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.

  2. Back to top

    Re: Some corrections

    by Srini Penchikala

    Thanks Jevgeni. I have made the corrections.