Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

JavaRebel 2.0 M2 Released

We are very proud to announce the second milestone release of the 2.0 JavaRebel branch. This release is feature complete and starts the countdown to the GA planned for mid-March. We intend to release an RC every week from now until we are satisfied with the quality. We ask you to try this release and report back to us any problems, any questions about installation/configuration, or any other issues you may find.

As in the previous milestone we mainly focused on stability, performance and packaged deployment support. In comparison with the previous milestone the following things have changed:

  • Fast boot. 2.0 M1 introduced performance optimizations that reduced the runtime performance overhead. In this release we have improved the initial class loading and initialization to the point where startup with and without JavaRebel shouldn’t be noticeably different anymore (the instrumentation time for one class is under 5 ms). The performance overhead has been reduced by two orders of magnitude compared to 1.x branch and shouldn’t hinder development for anyone anymore.
  • rebel.xml The original JavaRebel release only supported exploded development until we introduced the -Drebel.dirs configuration. This release deprecates this property in favor of the new per-application rebel.xml configuration file. Using rebel.xml you can develop applications deployed as WAR or EAR as if they were fully exploded, without any intervening build process. Check out the installation and configuration manuals available in the distribution for details.
  • Compatibility. Since the first release JavaRebel had problems with some of the corner cases in the Java ecosystem. Most annoying errors were the ones where applications would refuse to deploy or would fail at runtime with JavaRebel enabled. For this release we have rewritten the compatibility layer largely from scratch to completely mimic uninstrumented Java classes. This should ensure that anyone can take JavaRebel and start using it in minutes without any problems.
  • And more? This release features more changes than can be listed. Debugging is more comfortable, exception stack trace is considerably shorter, reflection will correctly throw IllegalAccessErrors, several issues are fixed in the Spring and Guice plugins. Also in this release we identified and fixed several issues that were impacting WebSphere users and support for that container is now quite solid. Note that to enjoy it you should change the installation settings according to the manual.

Want to follow and participate in JavaRebel development? Follow us on Twitter: http://twitter.com/javarebel.

  • Martin

    Hi there,

    In further comments, I read that you don’t support using JavaRebel in production environment because of slower performance and no warranty for correctness.

    Will that be different with the new version 2.0?

  • Martin

    Hi there,

    In further comments, I read that you don’t support using JavaRebel in production environment because of slower performance and no warranty for correctness.

    Will that be different with the new version 2.0?

  • @Martin

    We are working on a separate product for use in production that will focus on instant update and rollback of changes. It will be based on JavaRebel engine, but come with a different license, configuration, outlook and etc. We will announce the public beta soon after JR 2.0 GA release. If you’d like to take part in the private beta you can subscribe for updates here:
    http://www.zeroturnaround.com/beta/

  • @Martin

    We are working on a separate product for use in production that will focus on instant update and rollback of changes. It will be based on JavaRebel engine, but come with a different license, configuration, outlook and etc. We will announce the public beta soon after JR 2.0 GA release. If you’d like to take part in the private beta you can subscribe for updates here:
    http://www.zeroturnaround.com/beta/