AspectJ
|
AspectJ is an aspect-oriented extension to the Java programming language created at Xerox PARC. An AspectJ compiler weaves aspects into Java bytecode to implement crosscutting concerns. Aspects are written in a combination of Java and AspectJ and are woven on an incremental per-class basis into Java (source or .class files) to produce standard Java bytecodes (making Java and AspectJ compatible). There are at least two compilers for the AspectJ language, ajc which is part of the toolset supported by the AspectJ eclipse project, and abc (http://aspectbench.org) which is an extensible optimizing compiler provided at aspectbench.org. AspectJ has been ported to other languages, including Common Lisp (AspectL) and Ruby (AspectR). In both of these ports, no special compiler was needed; aspects could be programmed within the existing object system.
External links
- http://eclipse.org/aspectj
- http://aspectbench.org/
- Xerox has Template:US patent for AOP/AspectJ, but published AspectJ source code under the Common Public License (http://www.eclipse.org/legal/cpl-v10.html), which grants some patent rights.