********************************************
JavaRebel Changelog
********************************************
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 2009)
* 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 2009)
* (Critical) Disabled Spring singleton autoinstantiation after reload (caused too eager instantiation in some complex configurations)
2.0.2 (14th July 2009)
* 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 a NoClassDefFound in Struts 2.x and potentially others.
* 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 performance 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/<web> 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 included
* 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)
* 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.
Performance was one of the main goals for this release and we have optimized or otherwise eliminated
most of the bottlenecks that made the previous versions so slow for some of the users.
There is some work to be done before the final release, but you should see a noticeable difference already.
* Compat