]> source.dussan.org Git - aspectj.git/commitdiff
excluding preinitialization join points from around advice since
authorjhugunin <jhugunin>
Mon, 16 Dec 2002 22:56:16 +0000 (22:56 +0000)
committerjhugunin <jhugunin>
Mon, 16 Dec 2002 22:56:16 +0000 (22:56 +0000)
that's not implemented (and the test case isn't expecting these
newly added join points)

tests/new/PR559.java

index 24a371d38644992ac1a5ef87f85240131a14245a..a612c9b8102e3cfd2bbcc94f6323b914d130604b 100644 (file)
@@ -32,7 +32,7 @@ public class PR559 {
 }
 
 interface AspectMarker {
-    pointcut notInAspect()   : ! within(AspectMarker+);
+    pointcut notInAspect()   : ! within(AspectMarker+) && !preinitialization(new(..));
     pointcut allTarget()     : execution(* Target.*(..)) ;
     pointcut allTargetFlow() : cflow(allTarget()); 
     pointcut inTarget()      : notInAspect() && allTarget();
@@ -45,17 +45,17 @@ class Target {
 
 class Base implements AspectMarker {
     pointcut TargetRun () 
-        : within(Target) && execution(* *(..)) && !within(AspectMarker+);
+        : within(Target) && execution(* *(..)) && notInAspect() ;
         ;
     pointcut TargetRunFlow () 
-        : cflow(within(Target) && execution(* *(..))) && !within(AspectMarker+)
+        : cflow(within(Target) && execution(* *(..))) && notInAspect() 
         ;
 }
 
 /** @testcase PR#559 subaspect advice not run for superclass cflow-based pointcut */
 aspect Derived extends Base {
     pointcut TargetSubRunFlow () 
-        : cflow(within(Target) && execution(* *(..))) && !within(AspectMarker+)
+        : cflow(within(Target) && execution(* *(..))) && notInAspect() 
         ;
     Object around () : inTarget() {
         Tester.event("inTarget class");
@@ -81,17 +81,17 @@ aspect Derived extends Base {
 
 abstract aspect BaseAspect implements AspectMarker {
     pointcut TargetRun () 
-        : within(Target) && execution(* *(..)) && !within(AspectMarker+);
+        : within(Target) && execution(* *(..)) && notInAspect() ;
         ;
     pointcut TargetRunFlow () 
-        : cflow(within(Target) && execution(* *(..))) && !within(AspectMarker+)
+        : cflow(within(Target) && execution(* *(..))) && notInAspect() 
         ;
 }
 
 /** @testcase PR#559 subaspect advice not run for superaspect cflow-based pointcut */
 aspect DerivedAspect extends BaseAspect implements AspectMarker {
     pointcut TargetSubRunFlow () 
-        : cflow(within(Target) && execution(* *(..))) && !within(AspectMarker+)
+        : cflow(within(Target) && execution(* *(..))) && notInAspect() 
         ;
     Object around () : TargetRun() {
         Tester.event("target aspect");