Test plan for abstract aspects: Coverage: * all pointcut types * all declare types * all annotation pattern nodes * all type pattern nodes * type variables as type parameters * Binary weaving!!! Pointcut types: * test declare warning with : DONE - KindedPointcut all parts of Signature pattern - HandlerPointcut - ReferencePointcut - WithincodePointcut - WithinPointcut - And - Or - Not * test before advice with DONE - CflowPointcut - annotation - args annotation - args - this - target - @this - @target - @within - @withincode - parameter binding * pointcut in generic class DONE - ref with parameterized type - ref without parameterized type (error) Declares: * declare warning / error (covered above) DONE * declare parents DONE * declare soft DONE * declare precedence DONE * declare @type DONE * declare @field / method / cons DONE AnnotationPatternNodes: * And * Or * Not * Exact * Wild Type pattern Nodes: * And * AnyWithAnnotation * Or * Not * HasMember * Exact * Wild * type variables as type parameters DONE Multi-level hierarchy: DONE * test 3-deep with partial parameterization in middle