Here are some publicly available extensions of abc:
- ARJ : Aspect Refinement and Mixin-Based Aspect Inheritance
- AspectJ* : An implementation of Stratified Aspects for AspectJ
- J-Lo : A tool for runtime-checking temporal assertions
- LoopsAJ : Adds join points at loops
- SCoPE : Static evaluation of conditional pointcuts
- ArrayPT : array set and get pointcuts with context exposure of indices and written/read values
- Explicit joinpoints
- StrongAspectJ: Flexible and Safe Pointcut/Advice Bindings
If you would like your project to be listed here,
or represent one of the projects already listed here and would like us to
update the URL or description, please let us know using the mailing lists.
Extended AspectJ
There are a couple of extension which the abc has already built-in. You can enable them via the commandline parameter -ext abc.eaj.
- cast pointcut: lets you capture casts
(see here).
- global pointcuts are pointcuts which are implicitly conjoined with all pieces of advice in an aspect
(see here).
- let pointcut: has the form let(x,e) and binds the variable x to the expression e
(see here).
- monitorenter/exit pointcuts: let you capture the acquisition or release of a lock (synchronized block)
(see here).
- maybeShared pointcut: lets you match on potentially shared field accesses; in particular does not match field accesses that are certainly single-threaded
(see here).
- contains pointcut: expresses that a particular joinpoint should be lexically contained in another one
(see here).
- arrayset/get pointcuts: let you capture array set and get events and expose the indices and written/read values. Note that this implementation is different from the one developed under the name ArrayPT (see above)