blob: 0eeae1195a6346674845a413ad72e85046de9daa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import org.aspectj.testing.Tester;
/** @testcase cflow cycles in advice from different aspects */
public class CflowCycles {
public static void main( String args[] ) {
Tester.expectEvent("target A1");
Tester.expectEvent("target A2");
new Target().run();
Tester.checkAllEventsIgnoreDups();
}
}
class Target {
public void run(){ }
}
aspect A1 {
pointcut TargetRunFlow ()
// ok if no cflow: within(Target) && execution(* *(..)) && !within(A1+);
: !within(A1+) && !preinitialization(new(..)) && !initialization(new(..))//cflow(within(Target) && execution(* *(..))) && !within(A1+)
;
Object around () : TargetRunFlow() {
Tester.event("target A1");
return proceed();
}
// ok if in the same class
}
aspect A2 {
pointcut TargetRun ()
: within(Target) && execution(* *(..)) && !within(A2+);
;
Object around () : TargetRun() {
Tester.event("target A2");
return proceed();
}
}
|