Summary of implementation requirements
Prev | Appendix C. Implementation Notes |

## Summary of implementation requirements

This summarizes the requirements of our implementation of AspectJ. For more details, see the relevant sections of this guide.

- The invoking code must be under the control of ajc for the following join points:

  - call join point
  - get join point
  - set join point

- The declaring/target code must be under the control of ajc for the following join points and inter-type declarations:

  - execution join point
  - adviceexecution join point
  - handler join point
  - initialization join point
  - preinitialiaztion join point
  - staticinitialization join point
  - perthis aspect
  - pertarget aspect
  - declare parents
  - declare method or field (see interface caveats below)

- Implementation Caveats

  - The initialization and preinitialization join points do not support around advice

  - The handler join point does not support...

    - after advice
    - around advice
    - cflow(handler(..))

  - Declaring members on an interface in an aspect affects only the topmost implementing classes the implementation controls.

  - cflow and cflowbelow pointcuts work within a single thread.

  - Runtime `ClassCastException` may result from supplying a supertype of the actual type as an argument to proceed(..) in around advice.

Prev | Home |
Annotation-style Notes | Up |