AspectWerkz is now an extensible aspect container. AspectJ excels at providing a language-level support for AOP concepts and AspectWerkz excels at its integration with application servers. It seems that one can now write aspects in AspectJ and deploy using AspectWerkz's deployment technology.
AspectWerkz's AOP support is now more closely aligned to that implemented in AspectJ:
- variations of the after() advice
- percflow() aspect association
- this(), target(), and args() pointcuts to capture join point context
The AspectWerkz team plans to address some of the remaining differences from AspectJ (cflow(), cflowbelow() etc.) in a future version. It seems like AspectJ and AspectWerkz will become nearly isomorphic -- you can write program in AspectJ or AspectWerkz and translate between them without much loss of information.
Of course, there are many AspectWerkz-specific improvements such as 20x improvement in performance and hot deployment/redeployment that got to make it more useful as an enterprise AOP solution.
This is exciting! Congratulation to the AspectWerkz team.