Summary
ZeroTurnaround announced the availability of JavaRebel 1.1, a JVM plugin that enables reloading changes made to Java class files on-the-fly, saving developers the time it takes to redeploy an application or perform a container restart.
Advertisement
JavaRebel is a JVM plugin (-javaagent) that enables reloading changes made to Java class files on-the-fly, saving developers the time it takes to redeploy an application or perform a container restart. JavaRebel works in Java EE and Java SE applications.
This release is a result of more than 6 months of work from the ZeroTurnaround team, and includes the following changes from the 1.0.x version:
Unexploded development.
Now you can run JavaRebel without having to change your build cycle at all. See the installation manual and this article.
Improved debugging.
No need to step through generated methods anymore, see this article.
Full reflection support.
All changes to methods, fields and annotations will show up also via Reflection API.
Dynamic proxy support.
Support for JDK, CGLib and Javassist dynamic proxies allows to add methods to classes behind proxies.
Full support for Java 1.4.
All of the features available in Java 5 are also available in Java 1.4. The installation is also now simpler and supports more containers. See installation manual for details.
JavaRebel SDK.
With the SDK you have full access to the JavaRebel API and can use it for custom integration or to enable configuration reloading. The community site includes additional support for Google Guice, Stripes and Commons-EL.
JavaRebel is commercial software with a free trial. To celebrate this release and to prove that 1.1 is stable, the JavaRebel team will give one free unrestricted personal license for any issue that a user helps to fix in the next month.
To what extent do you think reloading class files, and restarting app servers during development hinder Java developers' productivity?
Sun should buy ZeroTurnaround and make these features part of the standard JVM (at least in the jdk).
This kind of thing is much of the allure of Rails. Ruby is great as a language, but the reloadability of webrick (and the instantaneous feedback of development) is one of the main attractions of that platform.