@AspectJ pointcut für Unterklassen einer class mit einer Annotation

Ich suche nach einem Pointcut, der Methodenausführungen in classn vergleicht, die eine class mit einer bestimmten Annotation ableiten. Der ausgezeichnete AspectJ Cheat Sheet hat mir geholfen den folgenden Pointcut zu erstellen:

within(@my.own.annotations.AnnotationToMatch *) && execution(* *(..)) 

Dies entspricht allen Methodenaufrufen einer class A, die @AnnotationToMatch enthält, aber keine Methode einer class B, die A erweitert. Wie kann ich beide zuordnen?

 public aspect AnnotatedParentPointcutAspect { //introducing empty marker interface declare parents : (@MyAnnotation *) implements TrackedParentMarker; public pointcut p1() : execution(* TrackedParentMarker+.*(..)); before(): p1(){ System.out.println("Crosscutted method: " +thisJoinPointStaticPart.getSignature().getDeclaringTypeName() +"." +thisJoinPointStaticPart.getSignature().getName()); } } 

Eine andere und einfachere Möglichkeit besteht darin, die Annotation als @Inherited zu deklarieren – also auch für die Subklassen.