JavaRebel 2.0 supports WAR/EAR hot-deployment and Spring integration
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.