2.2.1 (21st December 2009)

  • Added “Packages” tab to the Agent Settings
  • Fixed an issue that could cause a deadlock in the server.
  • Fixed Class.getMethods skipping some bridge methods
  • Fixed ClassLoader integration with NetBeans 6.5
  • Fixed performance logging enabled by default after running Configuration Wizard/Agent Settings
  • Fixed an issue with file paths containing “+” symbols
  • Fixed a Setup issue with shortcuts on 64-bit Windows
  • Fixed an issue with the installer that could cause it to fail on Mac OS X
  • Fixed bytecode proxy bypass turned on by default by the Configuration Wizard
  • Fixed autoupdates disabled by default by the Configuration Wizard
  • Improved performance of JSPs on Weblogic

2.2 (15th December 2009)

  • Added JRebel Setup
  • Added JRebel Configuration Wizard
  • Added JRebel Reference Manual
  • Now can configure JRebel using conf/jrebel.properties
  • Updated Eclipse IDE plugin:
    • Weblogic 9.2+ support
    • Glassfish v2, v3 support
    • JBoss 4+, 5+ support
    • Tomcat 5+, 5.5+, 6+ support
    • Websphere 6.0, 6.1, 7.0 (RAD 7.5) support
    • Automatic bootstrap.jar generation for 1.4 JVMs
  • Updated IntelliJ 8+ plugin
    • Community edition support
    • Fixed handling of spaces in paths
    • Fixed the path separator for classpath building
    • Fixed multiple minor issues
  • IntelliJ 6+ plugin
    • Community edition support
    • Better integration with IDEA
    • Fixed multiple minor issues
  • NetBeans plugin
    • Supports debugging for 6.5 and 6.7
  • Maven plugin now available from Maven Central repository
  • Fixed an issue causing reflection invocations on static methods with changed return type to fail.
  • Fixed an issue that could cause a NoClassDefFoundError on WebSphere.
  • Fixed an issue that could cause a ClassNotFoundException on Glassfish (Felix)
  • Fixed an issue that could cause a CannotCompileException on Websphere 6.0
  • Fixed an issue that could cause a NullPointerException on Websphere

2.1.1 (13th November 2009)

  • Support for Jetty 7
  • Preliminary support for GlassFish v3 Preview
  • Log4J plugin now reloads changes to log configuration on-the-fly, contributed by Julien Richard.
  • Fixed an issue causing the annotations on constructors to disappear after class reload.
  • Fixed an issue with Google Web Toolkit client side classes in hosted mode
  • Fixed an issue with FileNotFoundException thrown by JavaRebelResourceServlet
  • Fixed an issue with ClassCastException when defining web services in web.xml
  • Fixed several issues in the Wicket plugin.

2.1a (7th October 2009)

2.1 (6th October 2009)

  • Reworked Struts 2.x plugin
  • Brand-new Struts 1.x plugin
  • JavaRebel renamed to JRebel
  • GlassFish v3 now supported
  • Felix OSGi container now supported
  • Apache Tomcat will no longer automatically reload applications when JRebel agent is enabled
  • Updated statistics reporting with the latest redeploy & restart survey report (http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/)
  • JRebel will now report anonymous usage stats, including jvm version, container name and other stats that can help us improve the product. You can see the text file with reported data next to jrebel.jar as jrebel.info. To disable reporting add -Drebel.usage_reporting=false to the JVM command line
  • Improved logging options (-Drebel.log=echo and -Drebel.log=trace)
  • Fixed an issue with private static native methods sometimes not called correctly
  • Fixed ArrayIndexOutOfBoundsException when using -Drebel.packages on Weblogic
  • Fixed an issue with Spring MVC plugin being disabled
  • Fixed a problem that could cause a NoSuchMethodError when updating a Spring bean
  • Fixed an issue with Spring property placeholder configurers not applying
  • Fixed an issue with deadlock of Spring plugin
  • Fixed an issue with Spring MVC plugin requiring Spring AOP
  • Fixed an issue with Resin up to 3.1.5 not starting
  • Fixed issues with FileNotFoundException and NullPointerException
  • Fixed an issue with ServletContext paths starting with ‘./’
  • Fixed an issue with JRockit reflection

2.0.3 (25th August 2009)

  • Significantly improved Spring classpath* resolution which could previously lead to duplicate beans and conf files to be found.
  • Support for IBM WebSphere 6.0
  • Statistics now displays the number of elapsed days if less than 30.
  • Fixed an issue causing IllegalMonitorStateException to be thrown from changed synchronized methods.
  • Fixed an issue that caused AccessControlException on Sun App Server 8.2.
  • Fixed an issue that caused a wrong SerialVersionUID to be generated.
  • Fixed and issue with Class.getMethods() returning in random order (caused Flex failure).
  • Fixed an issue that caused CurrentModificationException in Spring plugin.

2.0.2b (22nd July)

  • Fixed a problem with try-catch not working properly
  • Fixed Spring plugin compiled with Java 5 in 2.0.2a
  • Fixed an issue with autoupdater and Java 1.4.
  • Fixed Eclipse not starting with JavaRebel enabled (when developing Eclipse plugins).
  • Spring MVC plugin wasn’t enabled by default.
  • Velocity plugin is now included.
  • Reflection performance improvements.

2.0.2a (15th July)

  • (Critical) Disabled Spring singleton autoinstantiation after reload (caused too eager instantiation in some complex configurations)

2.0.2 (14th July)

  • Property resource bundles now reflect the changes to the property files. This should work without any special configuration from your part, just change the property file and see the changes reflected in your application.
  • Startup performance improvements.
  • JavaRebel will now show usage statistics on startup.
  • Resin 3.1, 3.2 and 4.0 are now fully supported.
  • SAP NetWeaver 7.0 and 7.1 are now fully supported.
  • Preliminary support for Google App Engine. It should work, but let us know if it doesn’t, we’re not quite ready to vouch for it yet.
  • Directories defined in rebel.xml are now also case sensitive on Windows.
  • Spring plugin is now considered stable and enabled by default.
  • Spring plugin will now refresh XML files even when no classes were changed and no Spring MVC is used.
  • Spring plugin will now instantiate and initialize new singletons eagerly (even if they are not referenced elsewhere).
  • Spring plugin now supports springmodules-validator annotation changes.
  • Fixed a deadlock in resource lookup (could cause infinite startup on JBoss).
  • Fixed a problem with enums being “X is not an enum type”.
  • Fixed a file handle leak when deploying a web application with rebel.xml.
  • Fixed an issue that caused “Class (x) was removed” messages.
  • Fixed an issue with backslashes in include/exclude elements of rebel.xml.
  • Fixed an issue that caused NullPointerException on JBoss 5.
  • Fixed an issue with @Deprecated annotation and AspectJ.
  • Fixed an issue that caused NoSuchMethodError on some (otherwise valid) reloads.
  • Fixed an issue with wrong class redefinition causing e.g. problems with JBoss 5 (http://www.zeroturnaround.com/forum/topic.php?id=303)
  • Fixed an issue that caused DuplicateMemberException on Jetty.
  • Fixed an issue in Spring plugin that could cause an infinite loop when reloading a bean.
  • You can now use -Xbootclasspath install option with Java 5+ (it works better on some older JVM versions and JRockit JVM).

2.0.1 (25th May)

  • Fixed a deadlock that caused infinite startup.
  • Fixed new method parameter annotations not parsed correctly.
  • Fixed “this” not resolving in debugger.
  • Fixed Spring plugin trying to reconfigure beans created by a FactoryBean.
  • Fixed AspectJ plugin with Spring reparsing aop.xml.
  • Fixed EJB modules not-reloading in JBoss and WL when configured with rebel.xml.
  • Fixed NullPointerException on WL startup.
  • Fixed Velocity engine startup.
  • Improved Servlet Context perfomance when configured with rebel.xml.
  • Spring plugin now autowires changed beans that don’t have BeanDefinition.
  • Added Wicket @SpringBean plugin.

2.0 (25th March)

  • Improved ClassLoader().getResources() method behaviour by introducing a new fallback mode (default) for rebel.xml.
  • Logging no longer starts without -Drebel.log=true.
  • Couple of minor issues.

2.0-RC3 (19th March)

  • It’s no longer necessary to make changes to web.xml in your project for rebel.xml/ to work.
  • rebel.xml/<web> now supports nested <include>/<exclude>.
  • Updated Stripes plugin to 1.0.10.
  • Fixed a bunch of issues.

2.0-RC2 (11th March)

  • Stripes plugin now included
  • AspectJ plugin with support for load-time weaving is now
  • Improved Spring plugin performance
  • Numerous fixes to container compatibility
  • Numerous Spring plugin fixes
  • Fixed issue with signed JARs throwing exceptions.
  • Fixed issue with null assignment to added fields.
  • Fixed issue with “synchronized” not appearing in Method.getModifier() (could cause NPE).
  • Fixed issue with protected inner classes.
  • Fixed issue causing ClassNoDefFoundError.
  • Fixed issue causing mvn jetty:run to fail.
  • Numerous minor and compatibility issues fixed.

2.0-RC1 (20th February 2009)

  • rebel.xml now supports patterns, includes, excludes and system property substitution
  • Tapestry4 and Struts2 plugins are now also included in the distribution
  • Deleting the application WAR will no longer cause exceptions
  • Fixed an issue with Eclipse compiler producing invalid bytecode causing a NoSuchMethodError
  • Fixed several minor issues causing a NullPointerException on changes
  • Fixed an issue with some classes not processed correctly when loaded after a reflection call.
  • Known issue: IllegalArgumentException: com.mypackage.Enum is not an enum type
  • Known issue: NullPointerException from switch statement over enums
  • Known issue: Resin 3.1, see http://bugs.caucho.com/view.php?id=3339

2.0-M2 (13th February 2009)

  • New support for unexploded/packaged deployment including classpath and web resources (rebel.xml).
  • Fast boot optimization loads and executes classes much faster before the first change.
  • Optimized reflection on unchanged classes.
  • Improved debugging on unchanged classes.
  • Stack trace in exceptions will be two-three times shorter in many cases.
  • Groovy supported out-of-the-box.
  • EL in JSP 2.1 now sees class changes.
  • New step-by-step installation manual.
  • -Drebel.dirs and -Drebel.packages_include settings are deprecated in favor of the new rebel.xml configuration
  • Included plugins (Spring and Guice) are now disabled by default.
  • Fixed a problem with security providers now found in the classpath.
  • Fixed some problems with IBM WebSphere (changed installation instructions!).
  • Fixed several issues in Spring and Guice plugins.
  • There is a known issue with Resin 3.1, see http://bugs.caucho.com/view.php?id=3339

2.0-M1a (19th December 2008)

  • Fixed getField() and getFields() behaving wrong
  • Fixed virtual classpath not working with Jetty6
  • Fixed an initialization problem with parent-child circular dependencies
  • Fixed JBoss, some versions of OC4J and Eclipse/Equinox failing on startup (AbstractMethodError or NoClassDefFoundError)
  • Fixed abstract methods appearing as non-abstract via Method.getModifier() (caused CMP on Weblogic to fail among others)
  • Fixed a problem with the JBoss proxies
  • Fixed a problem with accessing a public method of a deafult visibility class via a public subclass (e.g. StringBuilder.substring() on Java 5+)
  • Fixed plugins not working properly on classes already instrumented by JavaRebel

2.0 M1 (3rd December 2008)

This version has too many individual changes to bring them out. Therefore we only outline the major goals.
  • Startup time and performance overhead.
    We have optimized or otherwise eliminated most of the bottlenecks that made the previous versions slow for some of our users. For this release we mainly focused on the runtime performance overhead, which has been decreased more than an order of magnitude and should be negligible in most cases. This should also directly affect the long startup time, as it was often caused by prolonged initialization routines in the previous versions.
  • Compatibility.
    Compatibility was a strong concern for this release. We have devoted a lot of time to tweak reflection and annotations support as well as integration with specific frameworks. We also compiled an extensive test suite that should make JavaRebel work out of the box for most users.
  • Embedded plugins: Spring and Guice.
    We now support distributing the plugins along with JavaRebel instead of downloading and installing them separately. With this release we have included Spring and Guice, so you should be able to load new components and dependencies without redeploying. More plugins will be included as they are stabilized or contributed.
  • Virtual classpath.
    Another concern for many of our users is configuring the existing build/deploy environment to make use of JavaRebel class reloading. Not everyone can use the exploded development and -Drebel.dirs has limitations in support of new classes and resource propagation.
    That’s why we implemented something we call a virtual classpath. The -Drebel.path property behaves similar to the -Drebel.dirs, except that instead of directories you can add WARs directly, with EARs and more advanced options coming soon. Virtual classpath will also propagate new classes and update your resources, like HTML or JSP files. It does require some extra configuration so take a look at the configuration manual.
    NB! Virtual classpath is only supported on Tomcat, Jetty and WebLogic containers in this release.
  • Improved API.
    Besides the embeddable plugins we also now support third-party instrumentation. This will allow us to support e.g. AspectJ load-time weaving. Unfortunately the plugin itself didn’t make it into this release, but since the required infrastructure is now in place we can release it retroactively as a plugin.