mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-09-13 15:45:38 +02:00
53 lines
1.3 KiB
Java
53 lines
1.3 KiB
Java
|
import org.aspectj.testing.Tester;
|
||
|
public class AbstractAspectsExtendingAbstractAspectsGeneratesMethodsWithTheSameName_PR464 {
|
||
|
public static void main(String[] args) {
|
||
|
new AbstractAspectsExtendingAbstractAspectsGeneratesMethodsWithTheSameName_PR464().realMain(args);
|
||
|
}
|
||
|
public void realMain(String[] args) {
|
||
|
new C().c();
|
||
|
// No tests to actually run. The point is that all advice is abstract!
|
||
|
//Tester.checkAllEvents();
|
||
|
}
|
||
|
static {
|
||
|
//Tester.expectEventsInString("AspectA.star,AspectA.c");
|
||
|
//Tester.expectEventsInString("AspectB.star,AspectB.c");
|
||
|
//Tester.expectEventsInString("AspectC.star,AspectC.c");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class C {
|
||
|
public void c() {}
|
||
|
}
|
||
|
|
||
|
abstract aspect AspectA {
|
||
|
before() : execution(* *(..)) {
|
||
|
Tester.event("AspectA.star");
|
||
|
}
|
||
|
|
||
|
before() : execution(* c(..)) {
|
||
|
Tester.event("AspectA.c");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
abstract aspect AspectB extends AspectA {
|
||
|
|
||
|
before() : execution(* *(..)) {
|
||
|
Tester.event("AspectB.star");
|
||
|
}
|
||
|
|
||
|
before() : execution(* c(..)) {
|
||
|
Tester.event("AspectB.c");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
abstract aspect AspectC extends AspectB {
|
||
|
before() : execution(* *(..)) {
|
||
|
Tester.event("AspectC.star");
|
||
|
}
|
||
|
|
||
|
before() : execution(* c(..)) {
|
||
|
Tester.event("AspectC.c");
|
||
|
}
|
||
|
}
|
||
|
|