--- /dev/null
+package a;
+aspect A {
+ before():staticinitialization(!A) {
+ System.out.println("intercepted "+thisJoinPoint.getSignature().getDeclaringType());
+ }
+}
--- /dev/null
+package code;
+public class Code {
+ public static void main(String[] argv) {
+ new runner.Runner().run();
+ }
+}
--- /dev/null
+package runner;
+public class Runner {
+ public void run() {
+ System.out.println("running");
+ }
+}
--- /dev/null
+<aspectj>
+<aspects>
+ <aspect name="a.A"/>
+</aspects>
+<weaver>
+</weaver>
+</aspectj>
--- /dev/null
+<aspectj>
+<aspects>
+ <aspect name="a.A" scope="!runner.Runner AND code.Code"/>
+</aspects>
+<weaver>
+</weaver>
+</aspectj>
--- /dev/null
+<aspectj>
+<aspects>
+ <aspect name="a.A" scope="!*"/>
+</aspects>
+<weaver>
+</weaver>
+</aspectj>