summaryrefslogtreecommitdiffstats
path: root/tests/new/beforeNotRun/Driver.java
blob: 55162311e70632966f16d346b262dbc7855c82d7 (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
import org.aspectj.testing.Tester;

// PR#265 before advice not run when abstract aspect has "of" clause

public class Driver {
  
    public static String result = "";
    
    public static void main(String[] args) { test(); }
    
    public static void test() {
        new Driver();  
        Tester.checkEqual(result, "-before-init-after", "before and after advice run");
    }

    public Driver() {
        init();
    }
    
    public void init() {
        result += "-init";        
    }
}

// when "of" clause is removed test passes
abstract aspect AbstractAspect /*of eachobject(instanceof(Driver))*/ {
    pointcut init(Driver tc): call(* init(..)) && this(tc);

    after(Driver tc): init(tc) {
        Driver.result += "-after";
    }
}

aspect BeforeAspectA extends AbstractAspect {
    before(Driver tc): init(tc) {
        Driver.result += "-before";
    }
}