|
1234567891011121314151617181920212223242526272829303132333435363738 |
-
- import org.aspectj.testing.Tester;
-
- /** @testcase PR#535 */
- public class PR535 {
- public static void main(String[] args) {
- Tester.expectEvent("In bar()");
- Tester.expectEvent("advice");
- Tester.expectEvent("In foo()");
- new C().foo();
- Tester.checkAllEvents();
- }
- }
-
- class C {
-
- public void foo() {
- Tester.event("In foo()");
- bar();
- }
-
- public void bar() {
- Tester.event("In bar()");
- }
- }
-
- aspect A {
- pointcut outside(): !cflow(within(A));
-
- void around(C c):
- cflow(execution(public void C.foo())) &&
- target(c) &&
- execution(public void C.bar()) &&
- outside() {
- Tester.event("advice");
- proceed(c);
- }
- }
|