import pack3.Foo; import org.aspectj.testing.Tester; public class Driver { public static void main(String[] args) { test(); } public static void test() { C1 c1 = new C1(); C2 c2 = new C2(); C3 c3 = new C3(); Tester.checkEqual(c1.m(), 3, "c1.m()"); Tester.checkEqual(c2.m(), 3, "c2.m()"); Tester.checkEqual(c3.m(), 3, "c3.m()"); } } class C3 { int m () { Foo f = new Foo(); return f.hello(); } } aspect Test { int around(): ( target(C1) || target(C2) ) && call(int m()) { Foo f = new Foo(); return f.hello(); } }