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";
}
}
|