The first release of the new development branch focuses mainly on ease of integrating JavaRebel with third-party frameworks and containers. The following main changes can be found in the 1.2 branch:
- JavaRebel SDK. The SDK has been refactored with added functionality for processing class bytecode and managing JavaRebel configuration.
- JavaRebel Plugins. It is now possible to register JavaRebel plugins that can make use of the SDK APIs to integrate with custom containers or frameworks. A howto on creating plugins is also available
- JavaRebel Integration Project. To test the new SDK APIs and plugins we created the open-sourced Integration project and moved almost all of the custom container/framework integration processors there. This was done partially to simplify the integration process for us and partially to provide an example for creating your own integration plugins. The Integration project is bundled (including source) with JavaRebel, so you can depend on it to create your own plugins. A renamed version of Javassist (to avoid version conflicts) is also included in the Integration project.
- Package filtering. JavaRebel now allows filtering the instrumented packages using the system properties “-Drebel.packages”, “-Drebel.packages_include”, “-Drebel.packages_exclude” described in the configuration manual included with the distribution.
Using the new APIs and the Integration project we have added full support for Eclipse plugins (and OSGi bundles generally) and initial support for IBM WebSphere. We have also integrated with Commons-EL, to update metadata whenever classes change.
As you can see we put a lot of effort into making third-party frameworks as easy to integrate with as possible. Although we will continue to add support for more of the popular frameworks you are also welcome to contribute to the Integration project or write your own plugin. All open-source projects (including SDK and Integration) are hosted at the zt-oss Google Code project and the discussion list for this is ZeroTurnaround Community.