|
[]
Next generation of the AspectWerkz AOP framework is released
[
jonas
]
Today we released the 0.10 Release Candidate 1 of AspectWerkz.
Which forms the foundation for the next generation of AspectWerkz.
AspectWerkz has gone through a lot of changes, the whole core engine has
for example been thrown out and replaced by a much more flexible and
performant one. The join point model is much more expressive and
orthogonal we have also implemented a JIT compiler that is making
AspectWerkz much more performant. On top of that we have a new
implementation of true runtime weaving, which allows you to redefine
your aspect model including adding new pointcuts at runtime.
Expressiveness and orthogonalityWe have improved the expressiveness and orthogonality a lot. AspectWerkz currently supports the following join points:
Performance improvements and JIT compilationWe have implemented a JIT (Just-In-Time) compiler that detects advice chains that are often executed and generates a custom class on the fly that invokes the advice chain and the target join point statically. Here are some simple but interesting benchmarks comparing the latest distribution of AspectWerkz, JBoss and AspectJ: The overhead of one around advice applied to a method call join point:
Runtime weavingIn addition to the capabilities to rearrange aspects and advices at existing join points and swapping mixin implementation at runtime, we provide a unique feature of adding new pointcuts at runtime without any prior knowledge. The implementation is based on Java HotSwap and thus requires a compliant JVM. A simple API allows to refine the aspect definition to add new pointcuts and then trigger the activation of it. Prior to pointcuts addition, your programs are guaranteed to run without any overhead since the bytecode does not gets modified prior activation. Moreover the runtime weaving does not require to have a remote JVM to control the HotSwap API since we provide a dedicated in-process module.Download the distributionYou can download the distribution from herePost a comment
|