From: aclement Date: Tue, 3 Feb 2009 17:33:14 +0000 (+0000) Subject: 263323: broken aspect weaving X-Git-Tag: pre268419~140 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e842cc97fab075b691acd2a73a1c4a7ee32b554f;p=aspectj.git 263323: broken aspect weaving --- diff --git a/tests/multiIncremental/brokenCode/base/src/tjp/Demo.java b/tests/multiIncremental/brokenCode/base/src/tjp/Demo.java new file mode 100644 index 000000000..6175c6cca --- /dev/null +++ b/tests/multiIncremental/brokenCode/base/src/tjp/Demo.java @@ -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 index 000000000..8835e82af --- /dev/null +++ b/tests/multiIncremental/brokenCode/base/src/tjp/GetInfo.aj @@ -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 index 000000000..166960d1d --- /dev/null +++ b/tests/multiIncremental/brokenCode/inc1/src/tjp/GetInfo.aj @@ -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 index 000000000..d51d2ff55 --- /dev/null +++ b/tests/multiIncremental/brokenCode/inc2/src/tjp/Demo.java @@ -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 + ")"; + } +}