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