]> source.dussan.org Git - aspectj.git/commitdiff
263323: broken aspect weaving
authoraclement <aclement>
Tue, 3 Feb 2009 17:33:14 +0000 (17:33 +0000)
committeraclement <aclement>
Tue, 3 Feb 2009 17:33:14 +0000 (17:33 +0000)
tests/multiIncremental/brokenCode/base/src/tjp/Demo.java [new file with mode: 0644]
tests/multiIncremental/brokenCode/base/src/tjp/GetInfo.aj [new file with mode: 0644]
tests/multiIncremental/brokenCode/inc1/src/tjp/GetInfo.aj [new file with mode: 0644]
tests/multiIncremental/brokenCode/inc2/src/tjp/Demo.java [new file with mode: 0644]

diff --git a/tests/multiIncremental/brokenCode/base/src/tjp/Demo.java b/tests/multiIncremental/brokenCode/base/src/tjp/Demo.java
new file mode 100644 (file)
index 0000000..6175c6c
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+
+Copyright (c) Xerox Corporation 1998-2002.  All rights reserved.
+
+Use and copying of this software and preparation of derivative works based
+upon this software are permitted.  Any distribution of this software or
+derivative works must comply with all applicable United States export control
+laws.
+
+This software is made available AS IS, and Xerox Corporation makes no warranty
+about the software, its performance or its conformity to any specification.
+
+*/
+package tjp;
+import java.util.List;
+import java.util.ArrayList;
+  
+public class Demo {
+    static Demo d;
+    public static void main(String[] args){
+        new Demo().go();
+    }
+    void go(){
+        d = new Demo();
+        d.foo(1,d);
+        System.out.println(d.bar(new Integer(3)));
+    }
+
+    void foo(int i, Object o){
+        System.out.println("Demo.foo(" + i + ", " + o + ")\n");
+    }
+
+    String bar (Integer j){
+        System.out.println("Demo.bar(" + j + ")\n");
+        return "Demo.bar(" + j  + ")";
+    }
+}
diff --git a/tests/multiIncremental/brokenCode/base/src/tjp/GetInfo.aj b/tests/multiIncremental/brokenCode/base/src/tjp/GetInfo.aj
new file mode 100644 (file)
index 0000000..8835e82
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+Copyright (c) Xerox Corporation 1998-2002.  All rights reserved.
+
+Use and copying of this software and preparation of derivative works based
+upon this software are permitted.  Any distribution of this software or
+derivative works must comply with all applicable United States export control
+laws.
+
+This software is made available AS IS, and Xerox Corporation makes no warranty
+about the software, its performance or its conformity to any specification.
+*/
+
+package tjp;
+
+import org.aspectj.lang.reflect.CodeSignature;
+
+import org.aspectj.lang.JoinPoint;
+
+aspect GetInfo {
+
+before():staticinitialization(*) {}
+   static final void println(String s){ System.out.println(s); }
+
+   pointcut goCut(): cflow(this(Demo) && execution(void go()));
+
+   pointcut demoExecs(): within(Demo) && execution(* *(..));
+
+   Object around(): demoExecs() && !execution(* go()) && goCut() {
+      println("Intercepted message: " +
+          thisJoinPointStaticPart.getSignature().getName());
+      println("in class: " +
+          thisJoinPointStaticPart.getSignature().getDeclaringType().getName());
+      printParameters(thisJoinPoint);
+      println("Running original method: \n" );
+      Object result = proceed();
+      println("  result: " + result );
+      return result;
+   }
+
+   static private void printParameters(JoinPoint jp) {
+      println("Arguments: " );
+      Object[] args = jp.getArgs();
+      String[] names = ((CodeSignature)jp.getSignature()).getParameterNames();
+      Class[] types = ((CodeSignature)jp.getSignature()).getParameterTypes();
+      for (int i = 0; i < args.length; i++) {
+         println("  "  + i + ". " + names[i] +
+             " : " +            types[i].getName() +
+             " = " +            args[i]);
+      }
+   }
+}
diff --git a/tests/multiIncremental/brokenCode/inc1/src/tjp/GetInfo.aj b/tests/multiIncremental/brokenCode/inc1/src/tjp/GetInfo.aj
new file mode 100644 (file)
index 0000000..166960d
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+Copyright (c) Xerox Corporation 1998-2002.  All rights reserved.
+
+Use and copying of this software and preparation of derivative works based
+upon this software are permitted.  Any distribution of this software or
+derivative works must comply with all applicable United States export control
+laws.
+
+This software is made available AS IS, and Xerox Corporation makes no warranty
+about the software, its performance or its conformity to any specification.
+*/
+
+package tjp;
+
+import org.aspectj.lang.reflect.CodeSignature;
+
+
+
+aspect GetInfo {
+
+before():staticinitialization(*) {}
+   static final void println(String s){ System.out.println(s); }
+
+   pointcut goCut(): cflow(this(Demo) && execution(void go()));
+
+   pointcut demoExecs(): within(Demo) && execution(* *(..));
+
+   Object around(): demoExecs() && !execution(* go()) && goCut() {
+      println("Intercepted message: " +
+          thisJoinPointStaticPart.getSignature().getName());
+      println("in class: " +
+          thisJoinPointStaticPart.getSignature().getDeclaringType().getName());
+      printParameters(thisJoinPoint);
+      println("Running original method: \n" );
+      Object result = proceed();
+      println("  result: " + result );
+      return result;
+   }
+
+   static private void printParameters(JoinPoint jp) {
+      println("Arguments: " );
+      Object[] args = jp.getArgs();
+      String[] names = ((CodeSignature)jp.getSignature()).getParameterNames();
+      Class[] types = ((CodeSignature)jp.getSignature()).getParameterTypes();
+      for (int i = 0; i < args.length; i++) {
+         println("  "  + i + ". " + names[i] +
+             " : " +            types[i].getName() +
+             " = " +            args[i]);
+      }
+   }
+}
diff --git a/tests/multiIncremental/brokenCode/inc2/src/tjp/Demo.java b/tests/multiIncremental/brokenCode/inc2/src/tjp/Demo.java
new file mode 100644 (file)
index 0000000..d51d2ff
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+
+Copyright (c) Xerox Corporation 1998-2002.  All rights reserved.
+
+Use and copying of this software and preparation of derivative works based
+upon this software are permitted.  Any distribution of this software or
+derivative works must comply with all applicable United States export control
+laws.
+
+This software is made available AS IS, and Xerox Corporation makes no warranty
+about the software, its performance or its conformity to any specification.
+
+*/
+package tjp;
+import java.util.List;
+import java.util.ArrayList;
+
+  
+public class Demo {
+    static Demo d;
+    public static void main(String[] args){
+        new Demo().go();
+    }
+    void go(){
+        d = new Demo();
+        d.foo(1,d);
+        System.out.println(d.bar(new Integer(3)));
+    }
+
+    void foo(int i, Object o){
+        System.out.println("Demo.foo(" + i + ", " + o + ")\n");
+    }
+
+    String bar (Integer j){
+        System.out.println("Demo.bar(" + j + ")\n");
+        return "Demo.bar(" + j  + ")";
+    }
+}