We are excited to announce the last milestone on the way to the JRebel 3.0. This release includes the following exciting new features:
- More EJB Support. JRebel now includes plugins for IBM WebSphere 6.1 and 7.0 that support changing the Local/Remote EJB interface in EJB 1.x, 2.x and 3.x. Unfortunately we don’t support EJB interface changes on IBM WebSphere 6.0 or earlier and require the EJB 3.0 Feature Pack to be installed on IBM WebSphere 6.1 even if you use EJB 1.x or 2.x.
- Better Proxy Support. JRebel now integrates tightly with Javassist and CgLib, providing much better compatibility with changes to class signature in some advanced cases, e.g. JBoss Seam.
- Hibernate Plugin. Now when you change your database schema the ORM follows. JRebel will recreate the SessionFactory automatically. Unfortunately this may take some time, so you’ll have to wait for it to finish, but it’s still much faster than a full redeploy.
- Mojarra JSF Plugin. Supports reloading JSF annotations and XML configuration on the fly.
- Seam Plugin. Supports reloading the Seam annotations on the fly.
- Weld Plugin. Supports reloading the Weld annotations on the fly.
- rebel.xml Editor. A GUI editor for creating the JRebel configuration files is now available and will soon be integrated in the IDEs.
- We also added support for reloading property resource bundles on IBM JVM, improved startup behaviour to prevent deadlocks and improved expression language support.
In addition to that there are numerous fixes and minor features that you can see in the changelog. And it includes the features introduced in 3.0 M1 and 3.0 M2; in case you forgot, here they are:
- Advanced EJB Support. JRebel now includes plugins for JBoss 4.x, 5.x and Oracle Weblogic 8.x, 9.x and 10.x that support changing the Local/Remote EJB interface in EJB 1.x, 2.x and 3.x. It also supports on-the-fly dependency injection for @EJB annotation in JBoss. In the coming milestones we’ll add support for IBM WebSphere and more comprehensive support for the EJB 3.x features
- Startup time improvements. We significantly improved class/resource lookup overhead with caching and better server integration. Our nightly users are reporting up to 2x improvements in startup time.
- More integration. We added or improved plugins for Guice 2.x, Groovy, Wicket 1.4, Google App Engine, AspectJ, Struts 1 and Spring MVC. With every new plugin we are a step closer to our vision of seamless updates to your application, no matter what are you changing. Expect even more integration in the next JRebel release.
- Support for adding static fields and changing enums. Previously when you added a static field to your class you’d see a discouraging warning in the console and get an exception when trying to access the field. Now JRebel will happily print “Reinitialized class” and your application will continue working as if nothing happened. To top it off you can also now change Java 1.5 enums in any way you like and they should just continue working. This feature is still a tad experimental, so please help us out to smooth it out!
- Full JSP <scriptlet> support. Now when you change your Java code (e.g. add a method) it can be immediately used in the Java code snippets in the JSP.
- 25%-30% less memory use. It is not uncommon to need a lot of PermGen heap with JRebel enabled. Now we optimized the memory use and will continue to drive it down in the upcoming milestones.
Download and enjoy!