Jonas Bonér bio photo

Jonas Bonér

Public Speaker.
Powder Skier.
Perpetual Learner.
Jazz Fanatic.
Wannabee Musician.

Twitter LinkedIn Github

Today me and Alex released the 0.8 version of AspectWerkz.

This new release have been tested and verified to work for servlets and all types of EJBs under WebLogic Server 7 and 8.1 using both online and offline mode.

JMangler has been thrown out for a completely new and customized solution that apart from solving some of the shortcomings and bugs in JMangler also provides completely new and interesting possibilities. Here are the options currently supported for online mode:

  • HotSwap
    A first JVM launchs your target application in a second JVM. The first JVM hooks AspectWerkz in the second one just before the main class (and all dependencies) gets loaded, and then connects to the stdout / stderr / stdin stream ot the second JVM to make them appear as usual thru the first JVM.
  • Transparent bootclasspath
    For JVM or java version like 1.3 which don't support class replacement at runtime (HotSwap), this option allows for same mechanism by putting an enhanced class loader in the target application VM bootclasspath.
  • Native HotSwap
    A native C JVM extension running in the target application VM handles the replacement of the class loader by the enhanced one.
  • Remote HotSwap
    The application VM is launched suspended. The replacement of the enhanced class loader is done thru a separate manual process, which can easily be scripted.
  • Prepared bootclasspath
    The enhanced class loader is builded and packaged as a jar file in a first separate manual process, which can easily be scripted. The application VM is launched with options to use this enhanced class loader.
  • Auto detection of java 1.3 and java 1.4

Some of the other new features are:

  • JDK 1.3 compatibility.
  • Runtime attributes -> XML compiler (no more metaData dir and meta-data compilers needed, one aspectwerkz.xml per application).
  • Offline compiler refactored. Now support rollback on error facility.
  • Released under a BSD-style license.
  • Non-reentrancy option for join points.
  • Definition validator.
  • Documentation updated and reorganized.

The new release can be downloaded from here.

A more detailed paper describing the new online architecture can be downloaded from here