[jboss-cvs] JBossAS SVN: r62758 - in projects/aop/trunk/aop/src: test/org/jboss/test/aop/beforeafterArgs and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 2 16:52:59 EDT 2007
Author: flavia.rainone at jboss.com
Date: 2007-05-02 16:52:59 -0400 (Wed, 02 May 2007)
New Revision: 62758
Modified:
projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsPOJO.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnPOJO.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetCallerPOJO.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownAspect.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownPOJO.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownTestCase.java
Log:
[JBAOP-381] Tests finally with all parameter annotations
Modified: projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml 2007-05-02 20:52:59 UTC (rev 62758)
@@ -37,6 +37,7 @@
<after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->bunch3(..))">
@@ -51,6 +52,7 @@
<after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->bunch4(..))">
@@ -81,13 +83,36 @@
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->bunch7(..))">
+ <advice name="around6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
</bind>
+
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->bunch8(..))">
+ <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ </bind>
+
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->bunch9(..))">
+ <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ </bind>
<bind pointcut="execution(void org.jboss.test.aop.beforeafterArgs.ArgsPOJO->*(org.jboss.test.aop.beforeafterArgs.Interface))">
<before name="beforeInterface1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
@@ -110,6 +135,11 @@
<throwing name="throwingInterface3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<throwing name="throwingInterface4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<throwing name="throwingInterface5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInterface1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInterface2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInterface3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInterface4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInterface5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
</bind>
<bind pointcut="execution(void org.jboss.test.aop.beforeafterArgs.ArgsPOJO->*(java.lang.String,java.util.Collection))">
@@ -121,6 +151,8 @@
<after name="afterInvertedArgs2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<throwing name="throwingInvertedArgs1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
<throwing name="throwingInvertedArgs2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInvertedArgs1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
+ <finally name="finallyInvertedArgs2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspect"/>
</bind>
<!-- @Args test -->
@@ -135,9 +167,11 @@
</bind>
<bind pointcut="set(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->field2)">
- <before name="before6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <before name="XXX6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
+ <before name="before6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <before name="XXX6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
</bind>
<bind pointcut="field(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->field3)">
@@ -161,31 +195,64 @@
<after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
<after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
<after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method1(..))">
- <before name="before3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
+ <before name="before3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
</bind>
- <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method2(..))">
- <before name="before7" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <after name="after7" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method2(..))">
+ <before name="before3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
</bind>
-
+
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method3(..))">
- <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
+ <before name="before7" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after7" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
</bind>
+
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method4(..))">
+ <before name="before7" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after7" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ </bind>
+
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method5(..))">
+ <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ </bind>
- <bind pointcut="call(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method3(..)) AND withincode(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method4(..))">
- <before name="before8" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <after name="after8" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
- <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect" />
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method6(..))">
+ <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
</bind>
+
+ <bind pointcut="call(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method5(..)) AND withincode(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method7(..))">
+ <before name="before8" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after8" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ </bind>
+ <bind pointcut="call(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method6(..)) AND withincode(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method8(..))">
+ <before name="before8" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <after name="after8" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <throwing name="throwing" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+ </bind>
+
<!-- @Caller test -->
<aspect class="org.jboss.test.aop.beforeafterArgs.CallerAspect" scope="PER_VM"/>
@@ -201,9 +268,16 @@
<after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
<after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
<after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
+ <finally name="finally4" aspect="org.jboss.test.aop.beforeafterArgs.CallerAspect"/>
</stack>
- <bind pointcut="call(org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO2->new(int))">
+ <bind pointcut="call(org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO2->new(int,..))">
<stack-ref name="CallerAdvices"/>
</bind>
@@ -222,6 +296,7 @@
<bind pointcut="set(* org.jboss.test.aop.beforeafterArgs.JoinPointPOJO->text)">
<before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
<after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
</bind>
<bind pointcut="get(* org.jboss.test.aop.beforeafterArgs.JoinPointPOJO->text)">
@@ -241,15 +316,20 @@
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.JoinPointPOJO->method3(..))">
+ <before name="before4" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
+ <after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
<throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.JoinPointPOJO->method4(..))">
<throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.JoinPointPOJO->method5(..))">
<throwing name="throwing4" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
+ <finally name="finally4" aspect="org.jboss.test.aop.beforeafterArgs.JoinPointAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.JoinPointPOJO->method6(..))">
@@ -263,61 +343,84 @@
<before name="before" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<advice name="around1" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method2(..))">
<advice name="around2" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method3(..))">
<before name="before" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<advice name="around3" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method4(..))">
<advice name="around4" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally4" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method5(..))">
<advice name="around5" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally5" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method6(..))">
<advice name="around6" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally6" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method7(..))">
<advice name="around7" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after7" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally7" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method8(..))">
<before name="before" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<advice name="around8" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after8" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally8" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method9(..))">
<advice name="around9" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after9" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally9" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method10(..))">
<before name="before" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<advice name="around10" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after10" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally10" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method11(..))">
<advice name="around11" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
<after name="after11" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally11" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
</bind>
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method12(..))">
+ <advice name="around12" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <after name="after12" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally12" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ </bind>
+
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ReturnPOJO->method13(..))">
+ <advice name="around12" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally12" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ <finally name="finally13" aspect="org.jboss.test.aop.beforeafterArgs.ReturnAspect"/>
+ </bind>
+
<!-- @Target test -->
<aspect class="org.jboss.test.aop.beforeafterArgs.TargetAspect" scope="PER_VM"/>
@@ -330,9 +433,15 @@
<advice name="around3" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
<after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
<after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+ <throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+ <throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+ <throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.TargetAspect"/>
</stack>
- <bind pointcut="execution(org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO->new(int))">
+ <bind pointcut="execution(org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO->new(int,..))">
<stack-ref name="TargetAdvices"/>
</bind>
@@ -348,10 +457,18 @@
<stack-ref name="TargetAdvices"/>
</bind>
- <bind pointcut="call(org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO2->new(int))">
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO->method3(..))">
<stack-ref name="TargetAdvices"/>
</bind>
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO->method4(..))">
+ <stack-ref name="TargetAdvices"/>
+ </bind>
+
+ <bind pointcut="call(org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO2->new(int,..))">
+ <stack-ref name="TargetAdvices"/>
+ </bind>
+
<bind pointcut="call(void org.jboss.test.aop.beforeafterArgs.TargetCallerPOJO2->*())">
<stack-ref name="TargetAdvices"/>
</bind>
@@ -361,27 +478,37 @@
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method1(..))">
<throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method2(..))">
<throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method3(..))">
<throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method4(..))">
<throwing name="throwing4" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <finally name="finally4" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method5(..))">
<throwing name="throwing5" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <finally name="finally5" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
</bind>
- <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method6(..))">
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method6(..))">
<throwing name="throwing6" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <finally name="finally6" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ </bind>
+
+ <bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ThrownPOJO->method7(..))">
<throwing name="throwing7" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
+ <throwing name="throwing8" aspect="org.jboss.test.aop.beforeafterArgs.ThrownAspect"/>
</bind>
<!-- overloaded advices test -->
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -55,6 +55,9 @@
static boolean after4 = false;
static boolean after6 = false;
+ static boolean finally1 = false;
+ static boolean finally2 = false;
+
static int before1X = 0;
static int before2X = 0;
static int before3Q = 0;
@@ -71,6 +74,9 @@
static int after4Q = 0;
static Object[] after6Args = null;
+ static int finally1X = 0;
+ static Object[] finally2Args = null;
+
static boolean beforeInterface1 = false;
static boolean beforeInterface2 = false;
static boolean beforeInterface3 = false;
@@ -83,11 +89,15 @@
static boolean throwingInterface1 = false;
static boolean throwingInterface2 = false;
static boolean throwingInterface3 = false;
+ static boolean finallyInterface1 = false;
+ static boolean finallyInterface2 = false;
+ static boolean finallyInterface3 = false;
static boolean beforeInverted1 = false;
static boolean aroundInverted1 = false;
static boolean afterInverted1 = false;
static boolean throwingInverted1 = false;
+ static boolean finallyInverted1 = false;
public static void clear()
{
@@ -102,6 +112,8 @@
after1 = false;
after4 = false;
after6 = false;
+ finally1 = false;
+ finally2 = false;
before1X = 0;
before2X = 0;
@@ -115,6 +127,8 @@
after4X = 0;
after4Q = 0;
after6Args = null;
+ finally1X = 0;
+ finally2Args = null;
beforeInterface1 = false;
beforeInterface2 = false;
@@ -128,11 +142,15 @@
throwingInterface1 = false;
throwingInterface2 = false;
throwingInterface3 = false;
+ finallyInterface1 = false;
+ finallyInterface2 = false;
+ finallyInterface3 = false;
beforeInverted1 = false;
aroundInverted1 = false;
afterInverted1 = false;
throwingInverted1 = false;
+ finallyInverted1 = false;
}
public void before1(@Arg(index=0) int x)
@@ -147,10 +165,10 @@
before2X = x;
}
- public void before3(@Arg(index=4) int y)
+ public void before3(@Arg(index=4) int q)
{
before3 = true;
- before3Q = y;
+ before3Q = q;
}
public void before4(@Args Object[] arguments)
@@ -163,11 +181,11 @@
}
}
- public void before5(@Arg int x, @Arg int y)
+ public void before5(@Arg int x, @Arg int q)
{
before5 = true;
before5X = x;
- before5Q = y;
+ before5Q = q;
}
public int around1(@Arg int x, @Arg double y, @Arg float z, @Arg String str, @Arg long q)
@@ -248,9 +266,27 @@
public void after6(@Args Object[] args)
{
after6 = true;
+ args[0] = Integer.valueOf(((Integer) args[0]).intValue() - 1);
after6Args = args;
}
+ public void finally1(@Arg int x)
+ {
+ finally1 = true;
+ finally1X = x;
+ }
+
+ public void finally2(@Args Object[] args)
+ {
+ finally2 = true;
+ finally2Args = args;
+ }
+
+ public void finally3(@Arg Collection arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
public void beforeInterface1(@Arg Interface param)
{
beforeInterface1 = true;
@@ -356,6 +392,31 @@
Assert.fail("This advice should never be executed");
}
+ public void finallyInterface1(@Arg Interface param)
+ {
+ finallyInterface1 = true;
+ }
+
+ public void finallyInterface2(@Arg SuperInterface param)
+ {
+ finallyInterface2 = true;
+ }
+
+ public void finallyInterface3(@Arg Object param)
+ {
+ finallyInterface3 = true;
+ }
+
+ public void finallyInterface4(@Arg Implementor param)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finallyInterface5(@Arg SubInterface param)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
public void beforeInvertedArgs1(@Arg Object arg2, @Arg (index = 0) String arg1)
{
beforeInverted1 = true;
@@ -402,4 +463,15 @@
{
Assert.fail("This advice should never be executed");
}
+
+ public void finallyInvertedArgs1(@Arg Object arg2, @Arg (index = 0) String arg1)
+ {
+ finallyInverted1 = true;
+ }
+
+ public void finallyInvertedArgs2(@Arg (index = 0) Object arg2,
+ @Arg (index = 0) String arg1)
+ {
+ Assert.fail("This advice should never be executed");
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -92,37 +92,14 @@
assertEquals(34, ArgAspect.around5Q);
assertEquals(17, ArgAspect.after1X);
assertEquals(17, ArgAspect.after4X);
- assertEquals(34, ArgAspect.after4Q);
+ assertEquals(34, ArgAspect.after4Q);
+
+ assertFalse(ArgAspect.finally1);
+ assertFalse(ArgAspect.finally2);
}
public void test2()
{
- assertEquals(52, this.pojo.bunch1(5, (double) 1.3, (float) 0, "test1", 1));
-
- assertTrue(ArgAspect.before1);
- assertTrue(ArgAspect.before2);
- assertTrue(ArgAspect.before3);
- assertTrue(ArgAspect.before4);
- assertTrue(ArgAspect.before5);
- assertTrue(ArgAspect.around4);
- assertTrue(ArgAspect.around5);
- assertTrue(ArgAspect.after1);
- assertTrue(ArgAspect.after4);
-
- assertEquals(5, ArgAspect.before1X);
- assertEquals(5, ArgAspect.before2X);
- assertEquals(1, ArgAspect.before3Q);
- assertEquals(25, ArgAspect.before5X);
- assertEquals(-17, ArgAspect.before5Q);
- assertEquals(17, ArgAspect.around5X);
- assertEquals(34, ArgAspect.around5Q);
- assertEquals(17, ArgAspect.after1X);
- assertEquals(17, ArgAspect.after4X);
- assertEquals(34, ArgAspect.after4Q);
- }
-
- public void test3()
- {
assertEquals(108, this.pojo.bunch2(1, (double) 2.0, (float) 3, 4));
assertTrue(ArgAspect.before1);
@@ -132,20 +109,23 @@
assertTrue(ArgAspect.around6);
assertTrue(ArgAspect.after4);
assertTrue(ArgAspect.after6);
+ assertTrue(ArgAspect.finally1);
assertEquals(1, ArgAspect.before1X);
assertEquals(1, ArgAspect.before2X);
assertEquals(5, ArgAspect.before5X);
assertEquals(4, ArgAspect.before5Q);
assertEquals(6, ArgAspect.after4X);
- assertEquals(48, ArgAspect.after4Q);
+ assertEquals(48, ArgAspect.after4Q);
+ assertEquals(5, ArgAspect.finally1X);
assertSame(ArgAspect.around6Args, ArgAspect.after6Args);
assertFalse(ArgAspect.before3);
assertFalse(ArgAspect.after1);
+ assertFalse(ArgAspect.finally2);
}
- public void test4()
+ public void test3()
{
assertEquals(18, this.pojo.bunch3(1, (double) 2.0, (float) 3, 4));
@@ -155,6 +135,7 @@
assertTrue(ArgAspect.before5);
assertTrue(ArgAspect.after4);
assertTrue(ArgAspect.after6);
+ assertTrue(ArgAspect.finally2);
assertEquals(1, ArgAspect.before1X);
assertEquals(1, ArgAspect.before2X);
@@ -163,7 +144,9 @@
assertEquals(5, ArgAspect.after4X);
assertEquals(4, ArgAspect.after4Q);
assertNotNull(ArgAspect.after6Args);
- assertEquals(5, ((Integer) ArgAspect.after6Args[0]).intValue());
+ assertNotNull(ArgAspect.finally2Args);
+ assertSame(ArgAspect.after6Args, ArgAspect.finally2Args);
+ assertEquals(4, ((Integer) ArgAspect.after6Args[0]).intValue());
assertEquals(2.0, ((Double) ArgAspect.after6Args[1]).doubleValue());
assertEquals(3.0, ((Float) ArgAspect.after6Args[2]).floatValue());
assertEquals(4, ((Integer) ArgAspect.after6Args[3]).intValue());
@@ -171,9 +154,10 @@
assertFalse(ArgAspect.before3);
assertFalse(ArgAspect.around6);
assertFalse(ArgAspect.after1);
+ assertFalse(ArgAspect.finally1);
}
- public void test5()
+ public void test4()
{
assertEquals(132, this.pojo.bunch4(10, (double) 9.0, (float) 8.0, 7));
@@ -192,9 +176,11 @@
assertFalse(ArgAspect.after1);
assertFalse(ArgAspect.after4);
assertFalse(ArgAspect.after6);
+ assertFalse(ArgAspect.finally1);
+ assertFalse(ArgAspect.finally2);
}
- public void test6()
+ public void test5()
{
assertEquals(110, this.pojo.bunch5(10, (double) 9.0, (float) 8.0, 7));
@@ -214,9 +200,11 @@
assertFalse(ArgAspect.after1);
assertFalse(ArgAspect.after4);
assertFalse(ArgAspect.after6);
+ assertFalse(ArgAspect.finally1);
+ assertFalse(ArgAspect.finally2);
}
- public void test7()
+ public void test6()
{
assertEquals(156, this.pojo.bunch6(51, (double) 5.3, (float) 61, 131));
@@ -234,11 +222,37 @@
assertFalse(ArgAspect.before5);
assertFalse(ArgAspect.before3);
assertFalse(ArgAspect.after1);
+ assertFalse(ArgAspect.finally1);
+ assertFalse(ArgAspect.finally2);
}
+ public void test7()
+ {
+ assertEquals(168, this.pojo.bunch7(15, (double) 3.5, (float) 16, 131));
+
+ assertTrue(ArgAspect.around6);
+ assertTrue(ArgAspect.after4);
+ assertTrue(ArgAspect.after6);
+ assertTrue(ArgAspect.finally1);
+ assertTrue(ArgAspect.finally2);
+
+ assertEquals(6, ArgAspect.after4X);
+ assertEquals(48, ArgAspect.after4Q);
+ assertEquals(5, ArgAspect.finally1X);
+ assertSame(ArgAspect.around6Args, ArgAspect.after6Args);
+ assertSame(ArgAspect.after6Args, ArgAspect.finally2Args);
+
+ assertFalse(ArgAspect.before1);
+ assertFalse(ArgAspect.before2);
+ assertFalse(ArgAspect.before4);
+ assertFalse(ArgAspect.before5);
+ assertFalse(ArgAspect.before3);
+ assertFalse(ArgAspect.after1);
+ }
+
public void test8()
{
- assertEquals(278, this.pojo.bunch7(51, (double) 5.3, (float) 61, 131));
+ assertEquals(283, this.pojo.bunch8(51, (double) 5.3, (float) 61, 131));
assertTrue(ArgAspect.after4);
assertTrue(ArgAspect.after6);
@@ -246,7 +260,7 @@
assertEquals(51, ArgAspect.after4X);
assertEquals(131, ArgAspect.after4Q);
assertNotNull(ArgAspect.after6Args);
- assertEquals(51, ((Integer) ArgAspect.after6Args[0]).intValue());
+ assertEquals(50, ((Integer) ArgAspect.after6Args[0]).intValue());
assertEquals(5.3, ((Double) ArgAspect.after6Args[1]).doubleValue());
assertEquals(61, ((Float) ArgAspect.after6Args[2]).floatValue());
assertEquals(131, ((Integer) ArgAspect.after6Args[3]).intValue());
@@ -258,12 +272,41 @@
assertFalse(ArgAspect.before3);
assertFalse(ArgAspect.around6);
assertFalse(ArgAspect.after1);
+ assertFalse(ArgAspect.finally1);
+ assertFalse(ArgAspect.finally2);
}
- public void test9() throws POJOException
+ public void test9()
{
- this.pojo.method5(new Implementor());
+ assertEquals(189, this.pojo.bunch9(15, (double) 3.5, (float) 16, 131));
+ assertTrue(ArgAspect.after4);
+ assertTrue(ArgAspect.after6);
+ assertTrue(ArgAspect.finally1);
+ assertTrue(ArgAspect.finally2);
+
+ assertEquals(15, ArgAspect.after4X);
+ assertEquals(131, ArgAspect.after4Q);
+ assertNotNull(ArgAspect.after6Args);
+ assertEquals(14, ArgAspect.finally1X);
+ assertEquals(14, ((Integer) ArgAspect.after6Args[0]).intValue());
+ assertEquals(3.5, ((Double) ArgAspect.after6Args[1]).doubleValue());
+ assertEquals(16, ((Float) ArgAspect.after6Args[2]).floatValue());
+ assertEquals(131, ((Integer) ArgAspect.after6Args[3]).intValue());
+
+ assertFalse(ArgAspect.before1);
+ assertFalse(ArgAspect.before2);
+ assertFalse(ArgAspect.before4);
+ assertFalse(ArgAspect.before5);
+ assertFalse(ArgAspect.before3);
+ assertFalse(ArgAspect.around6);
+ assertFalse(ArgAspect.after1);
+ }
+
+ public void test10() throws POJOException
+ {
+ this.pojo.method9(new Implementor());
+
assertTrue(ArgAspect.beforeInterface1);
assertTrue(ArgAspect.beforeInterface2);
assertTrue(ArgAspect.beforeInterface3);
@@ -279,14 +322,18 @@
assertFalse(ArgAspect.throwingInterface1);
assertFalse(ArgAspect.throwingInterface2);
assertFalse(ArgAspect.throwingInterface3);
+
+ assertTrue(ArgAspect.finallyInterface1);
+ assertTrue(ArgAspect.finallyInterface2);
+ assertTrue(ArgAspect.finallyInterface3);
}
- public void test10()
+ public void test11()
{
boolean thrown = false;
try
{
- this.pojo.method6(null);
+ this.pojo.method10(null);
}
catch(POJOException e)
{
@@ -310,16 +357,21 @@
assertTrue(ArgAspect.throwingInterface1);
assertTrue(ArgAspect.throwingInterface2);
assertTrue(ArgAspect.throwingInterface3);
+
+ assertTrue(ArgAspect.finallyInterface1);
+ assertTrue(ArgAspect.finallyInterface2);
+ assertTrue(ArgAspect.finallyInterface3);
}
public void testInverted1()
{
- pojo.method7("testInverted", null);
+ pojo.method11("testInverted", null);
assertTrue(ArgAspect.beforeInverted1);
assertTrue(ArgAspect.aroundInverted1);
assertTrue(ArgAspect.afterInverted1);
assertFalse(ArgAspect.throwingInverted1);
+ assertTrue(ArgAspect.finallyInverted1);
}
public void testInverted2()
@@ -327,7 +379,7 @@
boolean thrown = false;
try
{
- pojo.method8("testInverted", null);
+ pojo.method12("testInverted", null);
}
catch(POJOException e)
{
@@ -340,5 +392,6 @@
assertTrue(ArgAspect.aroundInverted1);
assertFalse(ArgAspect.afterInverted1);
assertTrue(ArgAspect.throwingInverted1);
+ assertTrue(ArgAspect.finallyInverted1);
}
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -71,6 +71,11 @@
static boolean throwing = false;
static Object[] throwingArgs = null;
+ static boolean finally1 = false;
+ static Object[] finally1Args = null;
+ static boolean finally3 = false;
+ static Object[] finally3Args = null;
+
public static void clear()
{
before1 = false;
@@ -106,6 +111,11 @@
throwing = false;
throwingArgs = null;
+
+ finally1 = false;
+ finally1Args = null;
+ finally3 = false;
+ finally3Args = null;
}
public void before1()
@@ -237,4 +247,22 @@
throwing = true;
throwingArgs = arguments;
}
+
+ public void finally1(@Args Object[] arguments)
+ {
+ finally1 = true;
+ finally1Args = arguments;
+ }
+
+ public void finally2(@Args int arguments)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finally3(@Args Object[] arguments)
+ {
+ finally3 = true;
+ arguments[0]="finally3";
+ finally3Args = arguments;
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsPOJO.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsPOJO.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -73,32 +73,58 @@
return x + (int) y * 7 + (int) z + q;
}
+ public int bunch8(int x, double y, float z, int q)
+ {
+ return x + (int) y * 8 + (int) z + q;
+ }
+
+ public int bunch9(int x, double y, float z, int q)
+ {
+ return x + (int) y * 9 + (int) z + q;
+ }
+
public void method1(String param1, int param2, boolean param3, ArgsPOJO[] param4)
{}
public void method2(String param1, int param2, boolean param3, ArgsPOJO[] param4)
{}
- public void method3(short param1, long param2) throws POJOException
+ public void method3(String param1, int param2, boolean param3, ArgsPOJO[] param4)
+ {}
+
+ public void method4(String param1, int param2, boolean param3, ArgsPOJO[] param4)
+ {}
+
+ public void method5(short param1, long param2) throws POJOException
{
throw new POJOException();
}
- public void method4() throws POJOException
+ public void method6(short param1, long param2) throws POJOException
{
- this.method3((short) -4, (long) 4);
+ throw new POJOException();
}
- public void method5(Interface param) throws POJOException {}
+ public void method7() throws POJOException
+ {
+ this.method5((short) -4, (long) 4);
+ }
- public void method6(Interface param) throws POJOException
+ public void method8() throws POJOException
{
+ this.method6((short) -4, (long) 4);
+ }
+
+ public void method9(Interface param) throws POJOException {}
+
+ public void method10(Interface param) throws POJOException
+ {
throw new POJOException();
}
- public void method7(String param1, Collection param2) {}
+ public void method11(String param1, Collection param2) {}
- public void method8(String param1, Collection param2) throws POJOException
+ public void method12(String param1, Collection param2) throws POJOException
{
throw new POJOException();
}
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -66,6 +66,7 @@
assertTrue(ArgsAspect.before1);
assertTrue(ArgsAspect.before2);
assertTrue(ArgsAspect.before3);
+
assertSame(ArgsAspect.before2Args, ArgsAspect.before3Args);
assertEquals(0, ArgsAspect.before2Args.length);
@@ -82,6 +83,8 @@
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.around3);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
public void test2()
@@ -90,9 +93,11 @@
assertTrue(ArgsAspect.before1);
assertTrue(ArgsAspect.before2);
assertTrue(ArgsAspect.before3);
+
assertSame(ArgsAspect.before2Args, ArgsAspect.before3Args);
assertEquals(1, ArgsAspect.before2Args.length);
assertEquals("test2", ArgsAspect.before2Args[0]);
+
assertFalse(ArgsAspect.before6);
assertFalse(ArgsAspect.before7);
assertFalse(ArgsAspect.before8);
@@ -106,6 +111,8 @@
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.around3);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
public void test3()
@@ -113,10 +120,13 @@
pojo.field2 = "test3";
assertTrue(ArgsAspect.before6);
assertTrue(ArgsAspect.after6);
+ assertTrue(ArgsAspect.finally3);
+
assertNotNull(ArgsAspect.before6Args);
assertSame(ArgsAspect.before6Args, ArgsAspect.after6Args);
+ assertSame(ArgsAspect.after6Args, ArgsAspect.finally3Args);
assertEquals(1, ArgsAspect.before6Args.length);
- assertEquals("after6", ArgsAspect.before6Args[0]);
+ assertEquals("finally3", ArgsAspect.before6Args[0]);
assertFalse(ArgsAspect.before1);
assertFalse(ArgsAspect.before2);
@@ -132,6 +142,7 @@
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.around3);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally1);
assertEquals("before6", pojo.field2);
}
@@ -139,10 +150,12 @@
public void test4()
{
pojo.field3 = 10;
+
assertTrue(ArgsAspect.around3);
assertTrue(ArgsAspect.after1);
assertTrue(ArgsAspect.after2);
assertTrue(ArgsAspect.after3);
+
assertNotNull(ArgsAspect.around3Args);
assertEquals(1, ArgsAspect.around3Args.length);
assertEquals(10, ArgsAspect.around3Args[0]);
@@ -163,6 +176,8 @@
assertFalse(ArgsAspect.around1);
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
public void test5()
@@ -176,10 +191,13 @@
assertTrue(ArgsAspect.after1);
assertTrue(ArgsAspect.after2);
assertTrue(ArgsAspect.after3);
+ assertTrue(ArgsAspect.finally1);
+
assertNotNull(ArgsAspect.before2Args);
assertSame(ArgsAspect.before2Args, ArgsAspect.before3Args);
assertSame(ArgsAspect.before2Args, ArgsAspect.after2Args);
assertSame(ArgsAspect.before2Args, ArgsAspect.after3Args);
+ assertSame(ArgsAspect.before2Args, ArgsAspect.finally1Args);
assertEquals(0, ArgsAspect.before2Args.length);
assertFalse(ArgsAspect.after6);
@@ -191,6 +209,7 @@
assertFalse(ArgsAspect.around1);
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally3);
}
public void test6()
@@ -204,11 +223,15 @@
assertTrue(ArgsAspect.after1);
assertTrue(ArgsAspect.after2);
assertTrue(ArgsAspect.after3);
+ assertTrue(ArgsAspect.finally1);
+
assertNotNull(ArgsAspect.before2Args);
assertSame(ArgsAspect.before2Args, ArgsAspect.before3Args);
assertSame(ArgsAspect.before2Args, ArgsAspect.around3Args);
assertSame(ArgsAspect.around3Args, ArgsAspect.after2Args);
assertSame(ArgsAspect.before2Args, ArgsAspect.after3Args);
+ assertSame(ArgsAspect.before2Args, ArgsAspect.finally1Args);
+
assertEquals(1, ArgsAspect.before2Args.length);
assertEquals(false, ((Boolean) ArgsAspect.before2Args[0]).booleanValue());
@@ -221,22 +244,27 @@
assertFalse(ArgsAspect.around1);
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally3);
}
public void test7()
{
- pojo.method1("test6", 6, true, null);
+ pojo.method1("test7", 7, true, null);
assertTrue(ArgsAspect.before3);
assertTrue(ArgsAspect.after3);
assertNotNull(ArgsAspect.before3Args);
+
assertSame(ArgsAspect.before3Args, ArgsAspect.after3Args);
assertEquals(4, ArgsAspect.before3Args.length);
- assertEquals("test6", ArgsAspect.before3Args[0]);
- assertEquals(6, ((Integer) ArgsAspect.before3Args[1]).intValue());
+
+ assertEquals("test7", ArgsAspect.before3Args[0]);
+ assertEquals(7, ((Integer) ArgsAspect.before3Args[1]).intValue());
assertEquals(true, ((Boolean) ArgsAspect.before3Args[2]).booleanValue());
assertNull(ArgsAspect.before3Args[3]);
+
System.out.println("AROUND ARGS: " + ArgsAspect.around3Args);
+
assertFalse(ArgsAspect.before1);
assertFalse(ArgsAspect.before2);
assertFalse(ArgsAspect.before6);
@@ -251,14 +279,54 @@
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.around3);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
public void test8()
{
- pojo.method2("test7", 0, false, null);
+ pojo.method2("test8", 8, true, null);
+
+ assertTrue(ArgsAspect.before3);
+ assertTrue(ArgsAspect.after3);
+ assertTrue(ArgsAspect.finally1);
+
+ assertNotNull(ArgsAspect.before3Args);
+ assertSame(ArgsAspect.before3Args, ArgsAspect.after3Args);
+ assertSame(ArgsAspect.after3Args, ArgsAspect.finally1Args);
+
+ assertEquals(4, ArgsAspect.before3Args.length);
+ assertEquals("test8", ArgsAspect.before3Args[0]);
+ assertEquals(8, ((Integer) ArgsAspect.before3Args[1]).intValue());
+ assertEquals(true, ((Boolean) ArgsAspect.before3Args[2]).booleanValue());
+ assertNull(ArgsAspect.before3Args[3]);
+
+ System.out.println("AROUND ARGS: " + ArgsAspect.around3Args);
+
+ assertFalse(ArgsAspect.before1);
+ assertFalse(ArgsAspect.before2);
+ assertFalse(ArgsAspect.before6);
+ assertFalse(ArgsAspect.before7);
+ assertFalse(ArgsAspect.before8);
+ assertFalse(ArgsAspect.after1);
+ assertFalse(ArgsAspect.after2);
+ assertFalse(ArgsAspect.after6);
+ assertFalse(ArgsAspect.after7);
+ assertFalse(ArgsAspect.after8);
+ assertFalse(ArgsAspect.around1);
+ assertFalse(ArgsAspect.around2);
+ assertFalse(ArgsAspect.around3);
+ assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally3);
+ }
+
+ public void test9()
+ {
+ pojo.method3("test9", 0, false, null);
+
assertTrue(ArgsAspect.before7);
+ assertTrue(ArgsAspect.around1);
assertTrue(ArgsAspect.after7);
- assertTrue(ArgsAspect.around1);
assertNotNull(ArgsAspect.before7Args);
assertSame(ArgsAspect.before7Args, ArgsAspect.after7Args);
@@ -285,14 +353,55 @@
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.around3);
assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
- public void test9()
+ public void test10()
{
+ pojo.method4("test10", 0, false, null);
+
+ assertTrue(ArgsAspect.before7);
+ assertTrue(ArgsAspect.around1);
+ assertTrue(ArgsAspect.after7);
+ assertTrue(ArgsAspect.finally1);
+
+ assertNotNull(ArgsAspect.before7Args);
+ assertSame(ArgsAspect.before7Args, ArgsAspect.around1Args);
+ assertSame(ArgsAspect.around1Args, ArgsAspect.after7Args);
+ assertSame(ArgsAspect.after7Args, ArgsAspect.finally1Args);
+
+ assertEquals(4, ArgsAspect.before7Args.length);
+ assertEquals("after7", ArgsAspect.before7Args[0]);
+ assertEquals(14, ((Integer) ArgsAspect.before7Args[1]).intValue());
+ assertEquals(false, ((Boolean) ArgsAspect.before7Args[2]).booleanValue());
+
+ assertNotNull(ArgsAspect.before7Args[3]);
+ assertEquals(1, ((ArgsPOJO[]) ArgsAspect.before7Args[3]).length);
+ assertNull(((ArgsPOJO[]) ArgsAspect.before7Args[3])[0]);
+
+ assertFalse(ArgsAspect.before1);
+ assertFalse(ArgsAspect.before2);
+ assertFalse(ArgsAspect.before3);
+ assertFalse(ArgsAspect.before6);
+ assertFalse(ArgsAspect.before8);
+ assertFalse(ArgsAspect.after1);
+ assertFalse(ArgsAspect.after2);
+ assertFalse(ArgsAspect.after3);
+ assertFalse(ArgsAspect.after6);
+ assertFalse(ArgsAspect.after8);
+ assertFalse(ArgsAspect.around2);
+ assertFalse(ArgsAspect.around3);
+ assertFalse(ArgsAspect.throwing);
+ assertFalse(ArgsAspect.finally3);
+ }
+
+ public void test11()
+ {
boolean exceptionThrown = false;
try
{
- pojo.method3((short) 0, 100);
+ pojo.method5((short) 0, 100);
}
catch(POJOException e)
{
@@ -301,6 +410,7 @@
assertTrue(exceptionThrown);
assertTrue(ArgsAspect.throwing);
+
assertNotNull(ArgsAspect.throwingArgs);
assertEquals(2, ArgsAspect.throwingArgs.length);
assertEquals(0, ((Short) ArgsAspect.throwingArgs[0]).shortValue());
@@ -321,14 +431,56 @@
assertFalse(ArgsAspect.around1);
assertFalse(ArgsAspect.around2);
assertFalse(ArgsAspect.around3);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
- public void test10()
+ public void test12()
{
boolean exceptionThrown = false;
try
{
- pojo.method4();
+ pojo.method6((short) 5, 112);
+ }
+ catch(POJOException e)
+ {
+ exceptionThrown = true;
+ }
+ assertTrue(exceptionThrown);
+
+ assertTrue(ArgsAspect.throwing);
+ assertTrue(ArgsAspect.finally1);
+
+ assertNotNull(ArgsAspect.throwingArgs);
+ assertSame(ArgsAspect.throwingArgs, ArgsAspect.finally1Args);
+ assertEquals(2, ArgsAspect.throwingArgs.length);
+ assertEquals(5, ((Short) ArgsAspect.throwingArgs[0]).shortValue());
+ assertEquals(112, ((Long) ArgsAspect.throwingArgs[1]).longValue());
+
+ assertFalse(ArgsAspect.before1);
+ assertFalse(ArgsAspect.before2);
+ assertFalse(ArgsAspect.before3);
+ assertFalse(ArgsAspect.before6);
+ assertFalse(ArgsAspect.before7);
+ assertFalse(ArgsAspect.before8);
+ assertFalse(ArgsAspect.after1);
+ assertFalse(ArgsAspect.after2);
+ assertFalse(ArgsAspect.after3);
+ assertFalse(ArgsAspect.after6);
+ assertFalse(ArgsAspect.after7);
+ assertFalse(ArgsAspect.after8);
+ assertFalse(ArgsAspect.around1);
+ assertFalse(ArgsAspect.around2);
+ assertFalse(ArgsAspect.around3);
+ assertFalse(ArgsAspect.finally3);
+ }
+
+ public void test13()
+ {
+ boolean exceptionThrown = false;
+ try
+ {
+ pojo.method7();
} catch (POJOException e)
{
exceptionThrown = true;
@@ -361,5 +513,50 @@
assertFalse(ArgsAspect.after8);
assertFalse(ArgsAspect.around1);
assertFalse(ArgsAspect.around3);
+ assertFalse(ArgsAspect.finally1);
+ assertFalse(ArgsAspect.finally3);
}
+
+ public void test14()
+ {
+ boolean exceptionThrown = false;
+ try
+ {
+ pojo.method8();
+ } catch (POJOException e)
+ {
+ exceptionThrown = true;
+ }
+ assertTrue(exceptionThrown);
+ assertTrue(ArgsAspect.finally1);
+
+ assertTrue(ArgsAspect.before8);
+ assertTrue(ArgsAspect.around2);
+ assertTrue(ArgsAspect.throwing);
+
+ assertNotNull(ArgsAspect.before8Args);
+ assertSame(ArgsAspect.before8Args, ArgsAspect.around2Args);
+ assertSame(ArgsAspect.around2Args, ArgsAspect.throwingArgs);
+ assertSame(ArgsAspect.throwingArgs, ArgsAspect.finally1Args);
+
+ assertEquals(2, ArgsAspect.before8Args.length);
+ assertEquals((short) -8, ((Short) ArgsAspect.before8Args[0]).shortValue());
+ assertEquals((long) 8, ((Long) ArgsAspect.before8Args[1]).longValue());
+
+ assertFalse(ArgsAspect.before1);
+ assertFalse(ArgsAspect.before2);
+ assertFalse(ArgsAspect.before3);
+ assertFalse(ArgsAspect.before6);
+ assertFalse(ArgsAspect.before7);
+ assertFalse(ArgsAspect.after1);
+ assertFalse(ArgsAspect.after2);
+ assertFalse(ArgsAspect.after3);
+ assertFalse(ArgsAspect.after6);
+ assertFalse(ArgsAspect.after7);
+ // after 8 is not called due to the exception thrown
+ assertFalse(ArgsAspect.after8);
+ assertFalse(ArgsAspect.around1);
+ assertFalse(ArgsAspect.around3);
+ assertFalse(ArgsAspect.finally3);
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -24,6 +24,7 @@
import junit.framework.Assert;
import org.jboss.aop.advice.annotation.Caller;
+import org.jboss.aop.advice.annotation.Thrown;
import org.jboss.aop.joinpoint.CurrentInvocation;
/**
@@ -41,12 +42,20 @@
static boolean around4 = false;
static boolean after1 = false;
static boolean after2 = false;
-
+ static boolean throwing1 = false;
+ static boolean throwing3 = false;
+ static boolean finally1 = false;
+ static boolean finally2 = false;
+ static boolean finally4 = false;
+
static Object before2Caller = null;
static Object before3Caller = null;
static Object around2Caller = null;
static Object around4Caller = null;
static Object after2Caller = null;
+ static Object throwing3Caller = null;
+ static Object finally1Caller = null;
+ static Object finally4Caller = null;
public static void clear()
{
@@ -58,11 +67,19 @@
around4 = false;
after1 = false;
after2 = false;
+ throwing1 = false;
+ throwing3 = false;
+ finally1 = false;
+ finally2 = false;
+ finally4 = false;
before2Caller = null;
before3Caller = null;
around2Caller = null;
around4Caller = null;
after2Caller = null;
+ throwing3Caller = null;
+ finally1Caller = null;
+ finally4Caller = null;
}
@@ -129,4 +146,42 @@
{
Assert.fail("This advice should never be executed");
}
+
+ public void throwing1(@Thrown Throwable throwable)
+ {
+ throwing1 = true;
+ }
+
+ public void throwing2(@Caller String caller, @Thrown Throwable throwable)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void throwing3(@Caller Object caller, @Thrown Throwable throwable)
+ {
+ throwing3 = true;
+ throwing3Caller = caller;
+ }
+
+ public void finally1(@Caller TargetCallerPOJO caller)
+ {
+ finally1 = true;
+ finally1Caller = caller;
+ }
+
+ public void finally2()
+ {
+ finally2 = true;
+ }
+
+ public void finally3(@Caller ArgTestCase caller)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finally4(@Caller Object caller)
+ {
+ finally4 = true;
+ finally4Caller = caller;
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/CallerTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -62,54 +62,146 @@
public void test1() throws Exception
{
- pojo.method3();
- assertAllAdvices(pojo);
+ pojo.method5();
+ assertAllAdvices(pojo, false);
}
public void test2() throws Exception
{
- pojo.method4();
- assertAllAdvices(pojo);
+ boolean thrown = false;
+ try
+ {
+ pojo.method6();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(pojo, thrown);
}
public void test3() throws Exception
{
- pojo.method5();
- assertAllAdvices(pojo);
+ pojo.method7();
+ assertAllAdvices(pojo,false);
}
public void test4() throws Exception
{
- TargetCallerPOJO.method6();
- assertAllAdvices(null);
+ pojo.method8();
+ assertAllAdvices(pojo, false);
}
public void test5() throws Exception
{
- TargetCallerPOJO.method7();
- assertAllAdvices(null);
+ boolean thrown = false;
+ try
+ {
+ pojo.method9();
+ }
+ catch(POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(pojo, thrown);
}
public void test6() throws Exception
{
- TargetCallerPOJO.method8();
- assertAllAdvices(null);
+ boolean thrown = false;
+ try
+ {
+ pojo.method10();
+ }
+ catch(POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(pojo, thrown);
}
- public void assertAllAdvices(Object caller)
+ public void test7() throws Exception
{
+ TargetCallerPOJO.method11();
+ assertAllAdvices(null, false);
+ }
+
+ public void test8() throws Exception
+ {
+ TargetCallerPOJO.method12();
+ assertAllAdvices(null, false);
+ }
+
+ public void test9() throws Exception
+ {
+ TargetCallerPOJO.method13();
+ assertAllAdvices(null, false);
+ }
+
+ public void test10() throws Exception
+ {
+ boolean thrown = false;
+ try
+ {
+ TargetCallerPOJO.method14();
+ }
+ catch(POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(null, thrown);
+ }
+
+ public void test11() throws Exception
+ {
+ boolean thrown = false;
+ try
+ {
+ TargetCallerPOJO.method15();
+ }
+ catch(POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(null, thrown);
+ }
+
+ public void assertAllAdvices(Object caller, boolean error)
+ {
assertTrue(CallerAspect.before1);
assertTrue(CallerAspect.before2);
assertTrue(CallerAspect.before3);
assertTrue(CallerAspect.around1);
assertTrue(CallerAspect.around2);
assertTrue(CallerAspect.around4);
- assertTrue(CallerAspect.after1);
- assertTrue(CallerAspect.after2);
+ assertEquals(!error, CallerAspect.after1);
+ assertEquals(!error, CallerAspect.after2);
+ assertEquals(error, CallerAspect.throwing1);
+ assertEquals(error, CallerAspect.throwing3);
+ assertTrue(CallerAspect.finally1);
+ assertTrue(CallerAspect.finally2);
+ assertTrue(CallerAspect.finally4);
+
assertSame(caller, CallerAspect.before2Caller);
assertSame(CallerAspect.before2Caller, CallerAspect.before3Caller);
assertSame(CallerAspect.before3Caller, CallerAspect.around2Caller);
assertSame(CallerAspect.around2Caller, CallerAspect.around4Caller);
- assertSame(CallerAspect.around4Caller, CallerAspect.after2Caller);
+ if (error)
+ {
+ assertSame(CallerAspect.around4Caller, CallerAspect.throwing3Caller);
+ assertNull(CallerAspect.after2Caller);
+ }
+ else
+ {
+ assertSame(CallerAspect.around4Caller, CallerAspect.after2Caller);
+ assertNull(CallerAspect.throwing3Caller);
+ }
+ assertSame(CallerAspect.around4Caller, CallerAspect.finally1Caller);
+ assertSame(CallerAspect.finally1Caller, CallerAspect.finally4Caller);
}
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -43,6 +43,8 @@
static JoinPointInfo afterJoinPointInfo = null;
static String throwingAdvice = null;
static JoinPointInfo throwingJoinPointInfo = null;
+ static String finallyAdvice = null;
+ static JoinPointInfo finallyJoinPointInfo = null;
public static void clear()
{
@@ -52,6 +54,8 @@
afterJoinPointInfo = null;
throwingAdvice = null;
throwingJoinPointInfo = null;
+ finallyAdvice = null;
+ finallyJoinPointInfo = null;
}
public void before1()
@@ -139,4 +143,27 @@
throwingAdvice = "throwing5";
throwingJoinPointInfo = joinPointInfo;
}
+
+
+ public void finally1(@JoinPoint FieldInfo joinPointInfo)
+ {
+ finallyAdvice = "finally1";
+ finallyJoinPointInfo = joinPointInfo;
+ }
+
+ public void finally2()
+ {
+ finallyAdvice = "finally2";
+ }
+
+ public void finally3(@JoinPoint Object joinPointInfo)
+ {
+ finallyAdvice = "finally3";
+ finallyJoinPointInfo = (JoinPointInfo) joinPointInfo;
+ }
+
+ public void finally4(@JoinPoint ConstructorInfo joinPointInfo)
+ {
+ Assert.fail("This advice should never be executed");
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/JoinPointTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -69,6 +69,11 @@
assertNull(JoinPointAspect.beforeJoinPointInfo);
assertEquals("after1", JoinPointAspect.afterAdvice);
assertNotNull(JoinPointAspect.afterJoinPointInfo);
+ assertNull(JoinPointAspect.throwingAdvice);
+ assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
assertTrue(JoinPointAspect.afterJoinPointInfo instanceof FieldInfo);
FieldInfo fieldInfo = (FieldInfo) JoinPointAspect.afterJoinPointInfo;
assertEquals("number", fieldInfo.getAdvisedField().getName());
@@ -82,7 +87,13 @@
assertNotNull(JoinPointAspect.beforeJoinPointInfo);
assertNull(JoinPointAspect.afterAdvice);
assertNull(JoinPointAspect.afterJoinPointInfo);
+ assertNull(JoinPointAspect.throwingAdvice);
+ assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertEquals("finally1", JoinPointAspect.finallyAdvice);
+ assertNotNull(JoinPointAspect.finallyJoinPointInfo);
+ assertSame(JoinPointAspect.beforeJoinPointInfo,
+ JoinPointAspect.finallyJoinPointInfo);
assertTrue(JoinPointAspect.beforeJoinPointInfo instanceof FieldInfo);
FieldInfo fieldInfo = (FieldInfo) JoinPointAspect.beforeJoinPointInfo;
assertEquals("text", fieldInfo.getAdvisedField().getName());
@@ -96,6 +107,11 @@
assertNull(JoinPointAspect.beforeJoinPointInfo);
assertEquals("after5", JoinPointAspect.afterAdvice);
assertNotNull(JoinPointAspect.afterJoinPointInfo);
+ assertNull(JoinPointAspect.throwingAdvice);
+ assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
assertTrue(JoinPointAspect.afterJoinPointInfo instanceof FieldInfo);
FieldInfo fieldInfo = (FieldInfo) JoinPointAspect.afterJoinPointInfo;
assertEquals("text", fieldInfo.getAdvisedField().getName());
@@ -109,6 +125,11 @@
assertNotNull(JoinPointAspect.beforeJoinPointInfo);
assertEquals("after3", JoinPointAspect.afterAdvice);
assertNull(JoinPointAspect.afterJoinPointInfo);
+ assertNull(JoinPointAspect.throwingAdvice);
+ assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
assertTrue(JoinPointAspect.beforeJoinPointInfo instanceof MethodInfo);
assertEquals("method1", ((MethodInfo) JoinPointAspect.beforeJoinPointInfo).
getAdvisedMethod().getName());
@@ -123,6 +144,9 @@
assertNotNull(JoinPointAspect.afterJoinPointInfo);
assertNull(JoinPointAspect.throwingAdvice);
assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
assertSame(JoinPointAspect.beforeJoinPointInfo, JoinPointAspect.afterJoinPointInfo);
assertTrue(JoinPointAspect.beforeJoinPointInfo instanceof MethodInfo);
assertEquals("method2", ((MethodInfo) JoinPointAspect.beforeJoinPointInfo).
@@ -148,6 +172,9 @@
assertNull(JoinPointAspect.afterJoinPointInfo);
assertEquals("throwing1", JoinPointAspect.throwingAdvice);
assertNotNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
assertSame(JoinPointAspect.beforeJoinPointInfo,
JoinPointAspect.throwingJoinPointInfo);
assertTrue(JoinPointAspect.beforeJoinPointInfo instanceof MethodInfo);
@@ -168,12 +195,18 @@
}
assertTrue(exceptionThrown);
- assertNull(JoinPointAspect.beforeAdvice);
- assertNull(JoinPointAspect.beforeJoinPointInfo);
+ assertEquals("before4", JoinPointAspect.beforeAdvice);
+ assertNotNull(JoinPointAspect.beforeJoinPointInfo);
assertNull(JoinPointAspect.afterAdvice);
assertNull(JoinPointAspect.afterJoinPointInfo);
assertNull(JoinPointAspect.throwingAdvice);
assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertEquals("finally2", JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
+ assertTrue(JoinPointAspect.beforeJoinPointInfo instanceof MethodInfo);
+ assertEquals("method3", ((MethodInfo) JoinPointAspect.beforeJoinPointInfo).
+ getAdvisedMethod().getName());
}
public void test8() throws POJOException
@@ -195,6 +228,11 @@
assertNull(JoinPointAspect.afterJoinPointInfo);
assertEquals("throwing3", JoinPointAspect.throwingAdvice);
assertNotNull(JoinPointAspect.throwingJoinPointInfo);
+ assertEquals("finally3", JoinPointAspect.finallyAdvice);
+ assertNotNull(JoinPointAspect.finallyJoinPointInfo);
+
+ assertSame(JoinPointAspect.throwingJoinPointInfo,
+ JoinPointAspect.finallyJoinPointInfo);
assertTrue(JoinPointAspect.throwingJoinPointInfo instanceof MethodInfo);
assertEquals("method4", ((MethodInfo) JoinPointAspect.throwingJoinPointInfo).
getAdvisedMethod().getName());
@@ -219,6 +257,8 @@
assertNull(JoinPointAspect.afterJoinPointInfo);
assertEquals("throwing4", JoinPointAspect.throwingAdvice);
assertNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
}
public void test10() throws POJOException
@@ -240,6 +280,9 @@
assertNull(JoinPointAspect.afterJoinPointInfo);
assertEquals("throwing5", JoinPointAspect.throwingAdvice);
assertNotNull(JoinPointAspect.throwingJoinPointInfo);
+ assertNull(JoinPointAspect.finallyAdvice);
+ assertNull(JoinPointAspect.finallyJoinPointInfo);
+
assertTrue(JoinPointAspect.throwingJoinPointInfo instanceof MethodInfo);
assertEquals("method6", ((MethodInfo) JoinPointAspect.throwingJoinPointInfo).
getAdvisedMethod().getName());
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -26,6 +26,7 @@
import org.jboss.aop.JoinPointInfo;
import org.jboss.aop.advice.annotation.JoinPoint;
import org.jboss.aop.advice.annotation.Return;
+import org.jboss.aop.advice.annotation.Thrown;
import org.jboss.aop.joinpoint.Invocation;
/**
@@ -39,6 +40,9 @@
public static Object aroundReturn = null;
public static String afterAdvice = null;
public static Object afterReturn = null;
+ public static String finallyAdvice = null;
+ public static Object finallyReturn = null;
+ public static Object finallyThrown = null;
public static void clear()
{
@@ -46,6 +50,8 @@
aroundReturn = null;
afterAdvice = null;
afterReturn = null;
+ finallyAdvice = null;
+ finallyReturn = null;
}
public void before(@Return Object object)
@@ -132,6 +138,12 @@
return new SuperValue(110);
}
+ public Object around12(Invocation invocation) throws Throwable
+ {
+ aroundAdvice = "around12";
+ aroundReturn = invocation.invokeNext();
+ return new SuperValue(120);
+ }
public void after1(@org.jboss.aop.advice.annotation.JoinPoint JoinPointInfo info) throws Exception
{
@@ -203,4 +215,99 @@
afterReturn = returnedValue;
return new SubValue(1100);
}
+
+ public SubValue after12(@Return SubValue returnedValue)
+ {
+ // intercepted method throws an exception, and should go directly to finally
+ Assert.fail("This advice should never be executed");
+ return new SubValue(0);
+ }
+
+ public void finally1()
+ {
+ finallyAdvice = "finally1";
+ }
+
+ public void finally2(@Return String returnedValue)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public String finally3(@Return Object returnedValue, @Thrown Throwable thrown)
+ {
+ finallyAdvice = "finally3";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ return finallyAdvice;
+ }
+
+ public String finally4(@Thrown Throwable thrown, @Return String returnedValue)
+ {
+ finallyAdvice = "finally4";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ return finallyAdvice;
+ }
+
+ public String finally5(@Return int returnedValue, @Thrown Throwable thrown)
+ {
+ Assert.fail("This advice should never be executed");
+ return null;
+ }
+
+ public Object finally6(@Return Object returnedValue, @Thrown Throwable thrown)
+ {
+ finallyAdvice = "finally6";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ return finallyAdvice;
+ }
+
+ public void finally7(@Return Object returnedValue, @Thrown Throwable thrown)
+ {
+ finallyAdvice = "finally7";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ }
+
+ public SubValue finally8()
+ {
+ finallyAdvice = "finally8";
+ return new SubValue(8000);
+ }
+
+ public SuperValue finally9() throws Throwable
+ {
+ Assert.fail("This advice should never be executed");
+ return null;
+ }
+
+ public SubValue finally10(@Return SuperValue returnedValue, @Thrown Throwable thrown) throws Throwable
+ {
+ finallyAdvice = "finally10";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ return new SubValue(10000);
+ }
+
+ public SubValue finally11(@Return SuperValue returnedValue, @Thrown Throwable thrown) throws Throwable
+ {
+ finallyAdvice = "finally11";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ return new SubValue(11000);
+ }
+
+ public SubValue finally12(@Return SuperValue returnedValue, @Thrown Throwable thrown)
+ {
+ finallyAdvice = "finally12";
+ finallyReturn = returnedValue;
+ finallyThrown = thrown;
+ return new SubValue(12000);
+ }
+
+ public SubValue finally13()
+ {
+ return new SubValue(13);
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnPOJO.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnPOJO.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -81,8 +81,13 @@
return new SuperValue(11);
}
- public Object method12() throws POJOException
+ public SubValue method12() throws POJOException
{
throw new POJOException();
}
+
+ public SubValue method13() throws POJOException
+ {
+ throw new POJOException();
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ReturnTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -63,75 +63,108 @@
public void test1()
{
pojo.method1();
+
assertNull(ReturnAspect.aroundAdvice);
assertNull(ReturnAspect.aroundReturn);
assertEquals("after1", ReturnAspect.afterAdvice);
assertNull(ReturnAspect.afterReturn);
+ assertEquals("finally1", ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test2()
{
assertEquals("method2", pojo.method2());
+
assertNull(ReturnAspect.aroundAdvice);
assertNull(ReturnAspect.aroundReturn);
assertEquals("after2", ReturnAspect.afterAdvice);
assertEquals("method2", ReturnAspect.afterReturn);
+ assertNull(ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test3()
{
- assertEquals("after3", pojo.method3());
+ assertEquals("finally3", pojo.method3());
+
assertEquals("around3", ReturnAspect.aroundAdvice);
assertEquals("method3", ReturnAspect.aroundReturn);
assertEquals("after3", ReturnAspect.afterAdvice);
assertEquals("around3", ReturnAspect.afterReturn);
+ assertEquals("finally3", ReturnAspect.finallyAdvice);
+ assertEquals("after3", ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test4()
{
- assertEquals("after4", pojo.method4());
+ assertEquals("finally4", pojo.method4());
+
assertEquals("around4", ReturnAspect.aroundAdvice);
assertEquals("method4", ReturnAspect.aroundReturn);
assertEquals("after4", ReturnAspect.afterAdvice);
assertEquals("around4", ReturnAspect.afterReturn);
+ assertEquals("finally4", ReturnAspect.finallyAdvice);
+ assertEquals("after4", ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test5()
{
assertEquals("after5", pojo.method5());
+
assertEquals("around5", ReturnAspect.aroundAdvice);
assertNull(ReturnAspect.aroundReturn);
assertEquals("after5", ReturnAspect.afterAdvice);
assertNull(ReturnAspect.afterReturn);
+ assertNull(ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test6()
{
- assertEquals("method6", pojo.method6());
+ assertEquals("finally6", pojo.method6());
+
assertNull(ReturnAspect.aroundAdvice);
assertNull(ReturnAspect.aroundReturn);
assertEquals("after6", ReturnAspect.afterAdvice);
assertNull(ReturnAspect.afterReturn);
+ assertEquals("finally6", ReturnAspect.finallyAdvice);
+ assertEquals("method6", ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test7()
{
assertEquals("after7", pojo.method7());
+
assertEquals("around7", ReturnAspect.aroundAdvice);
assertEquals("method7", ReturnAspect.aroundReturn);
assertEquals("after7", ReturnAspect.afterAdvice);
assertEquals("around7", ReturnAspect.afterReturn);
+ assertEquals("finally7", ReturnAspect.finallyAdvice);
+ assertNotNull(ReturnAspect.finallyReturn);
+ assertEquals("after7", ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test8()
{
SubValue value = pojo.method8();
assertNotNull(value);
- assertEquals(800, value.i);
+ assertEquals(8000, value.i);
+
assertEquals("around8", ReturnAspect.aroundAdvice);
assertNull(ReturnAspect.aroundReturn);
assertEquals("after8", ReturnAspect.afterAdvice);
assertNull(ReturnAspect.afterReturn);
+ assertEquals("finally8", ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test9()
@@ -139,43 +172,92 @@
SubValue value = pojo.method9();
assertNotNull(value);
assertEquals(9, value.i);
+
assertNull(ReturnAspect.aroundAdvice);
assertNull(ReturnAspect.aroundReturn);
assertNull(ReturnAspect.afterAdvice);
assertNull(ReturnAspect.afterReturn);
+ assertNull(ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test10()
{
SuperValue value = pojo.method10();
assertNotNull(value);
- assertEquals(100, value.i);
+ assertEquals(10000, value.i);
+
assertEquals("around10", ReturnAspect.aroundAdvice);
assertNotNull(ReturnAspect.aroundReturn);
assertEquals(10, ((SuperValue) ReturnAspect.aroundReturn).i);
assertNull(ReturnAspect.afterAdvice);
assertNull(ReturnAspect.afterReturn);
+ assertEquals("finally10", ReturnAspect.finallyAdvice);
+ assertNotNull(ReturnAspect.finallyReturn);
+ assertEquals(100, ((SuperValue) ReturnAspect.finallyReturn).i);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test11()
{
SuperValue value = pojo.method11();
assertNotNull(value);
- assertEquals(1100, value.i);
+ assertEquals(11000, value.i);
+
assertEquals("around11", ReturnAspect.aroundAdvice);
assertNotNull(ReturnAspect.aroundReturn);
assertEquals(11, ((SuperValue) ReturnAspect.aroundReturn).i);
assertEquals("after11", ReturnAspect.afterAdvice);
assertNotNull(ReturnAspect.afterReturn);
assertEquals(110, ((SuperValue) ReturnAspect.afterReturn).i);
+ assertEquals("finally11", ReturnAspect.finallyAdvice);
+ assertNotNull(ReturnAspect.finallyReturn);
+ assertEquals(1100, ((SuperValue) ReturnAspect.finallyReturn).i);
+ assertNull(ReturnAspect.finallyThrown);
}
public void test12()
{
+ Throwable thrown = null;
try
{
pojo.method12();
}
- catch(POJOException e){}
+ catch(POJOException e)
+ {
+ thrown = e;
+ }
+ assertNotNull(thrown);
+
+ assertEquals("around12", ReturnAspect.aroundAdvice);
+ assertNull(ReturnAspect.aroundReturn);
+ assertNull(ReturnAspect.afterAdvice);
+ assertNull(ReturnAspect.afterReturn);
+ assertEquals("finally12", ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertSame(thrown, ReturnAspect.finallyThrown);
}
+
+ public void method13()
+ {
+ boolean thrown = false;
+ try
+ {
+ pojo.method13();
+ }
+ catch(POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+
+ assertEquals("around12", ReturnAspect.aroundAdvice);
+ assertNull(ReturnAspect.aroundReturn);
+ assertNull(ReturnAspect.afterAdvice);
+ assertNull(ReturnAspect.afterReturn);
+ assertEquals("finally13", ReturnAspect.finallyAdvice);
+ assertNull(ReturnAspect.finallyReturn);
+ assertNull(ReturnAspect.finallyThrown);
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -24,6 +24,7 @@
import junit.framework.Assert;
import org.jboss.aop.advice.annotation.Target;
+import org.jboss.aop.advice.annotation.Thrown;
import org.jboss.aop.joinpoint.CurrentInvocation;
/**
@@ -39,10 +40,16 @@
static boolean around2 = false;
static boolean after1 = false;
static boolean after2 = false;
-
+ static boolean throwing1 = false;
+ static boolean throwing2 = false;
+ static boolean finally1 = false;
+ static boolean finally2 = false;
+
static Object before2Target = null;
static Object around2Target = null;
static Object after2Target = null;
+ static Object throwing1Target = null;
+ static Object finally2Target = null;
public static void clear()
{
@@ -52,9 +59,16 @@
around2 = false;
after1 = false;
after2 = false;
+ throwing1 = false;
+ throwing2 = false;
+ finally1 = false;
+ finally2 = false;
+
before2Target = null;
around2Target = null;
after2Target = null;
+ throwing1Target = null;
+ finally2Target = null;
}
public void before1()
@@ -102,4 +116,36 @@
after2 = true;
after2Target = target;
}
+
+ public void throwing1(@Thrown Throwable thrown, @Target TargetCallerPOJO target)
+ {
+ throwing1 = true;
+ throwing1Target = target;
+ }
+
+ public void throwing2(@Thrown Throwable thrown)
+ {
+ throwing2 = true;
+ }
+
+ public void throwing3(@Thrown Throwable thrown, @Target String target)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finally1()
+ {
+ finally1 = true;
+ }
+
+ public void finally2(@Target Object target)
+ {
+ finally2 = true;
+ finally2Target = target;
+ }
+
+ public void finally3(@Target double target)
+ {
+ Assert.fail("This advice should never be executed");
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetCallerPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetCallerPOJO.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetCallerPOJO.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -30,49 +30,108 @@
public class TargetCallerPOJO
{
public TargetCallerPOJO(){}
+
public TargetCallerPOJO(int x){}
+ public TargetCallerPOJO(int x, String y) throws POJOException
+ {
+ throw new POJOException();
+ }
+
public int field1;
public static int field2;
public void method1(){}
public static void method2(){}
- public void method3(){
+ public void method3() throws POJOException
+ {
+ throw new POJOException();
+ }
+
+ public static void method4() throws POJOException
+ {
+ throw new POJOException();
+ }
+
+ public void method5()
+ {
new TargetCallerPOJO2(3);
}
- public void method4()
+ public void method6() throws POJOException
{
+ new TargetCallerPOJO2(3, "method6");
+ }
+
+ public void method7()
+ {
TargetCallerPOJO2 pojo2 = new TargetCallerPOJO2();
- pojo2.method1();
+ pojo2.method1_();
}
- public void method5()
+ public void method8()
{
- TargetCallerPOJO2.method2();
+ TargetCallerPOJO2.method2_();
}
- public static void method6(){
+ public void method9() throws POJOException
+ {
+ TargetCallerPOJO2 pojo2 = new TargetCallerPOJO2();
+ pojo2.method3_();
+ }
+
+ public void method10() throws POJOException
+ {
+ TargetCallerPOJO2.method4_();
+ }
+
+ public static void method11(){
new TargetCallerPOJO2(3);
}
- public static void method7()
+ public static void method12()
{
TargetCallerPOJO2 pojo2 = new TargetCallerPOJO2();
- pojo2.method1();
+ pojo2.method1_();
}
- public static void method8()
+ public static void method13()
{
- TargetCallerPOJO2.method2();
+ TargetCallerPOJO2.method2_();
}
+
+ public static void method14() throws POJOException
+ {
+ TargetCallerPOJO2 pojo2 = new TargetCallerPOJO2();
+ pojo2.method3_();
+ }
+
+ public static void method15() throws POJOException
+ {
+ TargetCallerPOJO2.method4_();
+ }
}
class TargetCallerPOJO2 extends TargetCallerPOJO
{
public TargetCallerPOJO2(){}
+
public TargetCallerPOJO2(int x){}
- public void method1(){}
- public static void method2(){}
+
+ public TargetCallerPOJO2(int x, String y) throws POJOException
+ {
+ throw new POJOException();
+ }
+
+ public void method1_(){}
+ public static void method2_(){}
+ public void method3_() throws POJOException
+ {
+ throw new POJOException();
+ }
+ public static void method4_() throws POJOException
+ {
+ throw new POJOException();
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/TargetTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -63,126 +63,276 @@
public void test1()
{
new TargetCallerPOJO(1);
- assertStaticAdvices();
+ assertStaticAdvices(false);
}
-
public void test2()
{
- pojo.field1 = 0;
- assertAllAdvices();
- assertTarget(pojo);
+ boolean thrown = false;
+ try
+ {
+ new TargetCallerPOJO(1, "test2");
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertStaticAdvices(thrown);
}
-
+
public void test3()
{
- int test = pojo.field1;
- assertAllAdvices();
- assertTarget(pojo);
+ pojo.field1 = 0;
+ assertAllAdvices(false);
+ assertTarget(pojo, false);
}
public void test4()
{
- TargetCallerPOJO.field2 = 5;
- assertAllAdvices();
- assertTarget(null);
+ int test = pojo.field1;
+ assertAllAdvices(false);
+ assertTarget(pojo, false);
}
public void test5()
{
- int test = TargetCallerPOJO.field2;
- assertAllAdvices();
- assertTarget(null);
+ TargetCallerPOJO.field2 = 5;
+ assertAllAdvices(false);
+ assertTarget(null, false);
}
public void test6()
{
- pojo.method1();
- assertAllAdvices();
- assertTarget(pojo);
+ int test = TargetCallerPOJO.field2;
+ assertAllAdvices(false);
+ assertTarget(null, false);
}
public void test7()
{
- TargetCallerPOJO.method2();
- assertAllAdvices();
- assertTarget(null);
+ pojo.method1();
+ assertAllAdvices(false);
+ assertTarget(pojo, false);
}
public void test8()
{
- pojo.method3();
- assertStaticAdvices();
+ TargetCallerPOJO.method2();
+ assertAllAdvices(false);
+ assertTarget(null, false);
}
public void test9()
{
- pojo.method4();
- assertAllAdvices();
- assertTarget();
+ boolean thrown = false;
+ try
+ {
+ pojo.method3();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(pojo, thrown);
}
public void test10()
{
- pojo.method5();
- assertAllAdvices();
- assertTarget(null);
+ boolean thrown = false;
+ try
+ {
+ TargetCallerPOJO.method4();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(null, thrown);
}
public void test11()
{
- TargetCallerPOJO.method6();
- assertStaticAdvices();
+ pojo.method5();
+ assertStaticAdvices(false);
}
public void test12()
{
- TargetCallerPOJO.method7();
- assertAllAdvices();
- assertTarget();
+ boolean thrown = false;
+ try
+ {
+ pojo.method6();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertStaticAdvices(thrown);
}
public void test13()
{
- TargetCallerPOJO.method8();
- assertAllAdvices();
- assertTarget(null);
+ pojo.method7();
+ assertAllAdvices(false);
+ assertTarget(false);
}
- private void assertAllAdvices()
+ public void test14()
{
+ pojo.method8();
+ assertAllAdvices(false);
+ assertTarget(null, false);
+ }
+
+ public void test15()
+ {
+ boolean thrown = false;
+ try
+ {
+ pojo.method9();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(thrown);
+ }
+
+ public void test16()
+ {
+ boolean thrown = false;
+ try
+ {
+ pojo.method10();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(null, thrown);
+ }
+
+ public void test17()
+ {
+ TargetCallerPOJO.method11();
+ assertStaticAdvices(false);
+ }
+
+ public void test18()
+ {
+ TargetCallerPOJO.method12();
+ assertAllAdvices(false);
+ assertTarget(false);
+ }
+
+ public void test19()
+ {
+ TargetCallerPOJO.method13();
+ assertAllAdvices(false);
+ assertTarget(null, false);
+ }
+
+ public void test20()
+ {
+ boolean thrown = false;
+ try
+ {
+ TargetCallerPOJO.method14();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(thrown);
+ }
+
+ public void test21()
+ {
+ boolean thrown = false;
+ try
+ {
+ TargetCallerPOJO.method15();
+ }
+ catch (POJOException e)
+ {
+ thrown = true;
+ }
+ assertTrue(thrown);
+ assertAllAdvices(thrown);
+ assertTarget(null, thrown);
+ }
+
+ private void assertAllAdvices(boolean error)
+ {
assertTrue(TargetAspect.before1);
assertTrue(TargetAspect.before2);
assertTrue(TargetAspect.around1);
assertTrue(TargetAspect.around2);
- assertTrue(TargetAspect.after1);
- assertTrue(TargetAspect.after2);
+ assertEquals(!error, TargetAspect.after1);
+ assertEquals(!error, TargetAspect.after2);
+ assertEquals(error, TargetAspect.throwing1);
+ assertEquals(error, TargetAspect.throwing2);
+ assertTrue(TargetAspect.finally1);
+ assertTrue(TargetAspect.finally2);
}
- private void assertTarget()
+ private void assertTarget(boolean error)
{
assertNotNull(TargetAspect.before2Target);
- assertSame(TargetAspect.before2Target, TargetAspect.around2Target);
- assertSame(TargetAspect.around2Target, TargetAspect.after2Target);
+ assertSameTarget(error);
}
- private void assertTarget(Object target)
+ private void assertTarget(Object target, boolean error)
{
assertSame(target, TargetAspect.before2Target);
+ assertSameTarget(error);
+ }
+
+ private void assertSameTarget(boolean error)
+ {
assertSame(TargetAspect.before2Target, TargetAspect.around2Target);
- assertSame(TargetAspect.around2Target, TargetAspect.after2Target);
+ if (error)
+ {
+ assertSame(TargetAspect.around2Target, TargetAspect.throwing1Target);
+ assertNull(TargetAspect.after2Target);
+ }
+ else
+ {
+ assertSame(TargetAspect.around2Target, TargetAspect.after2Target);
+ assertNull(TargetAspect.throwing1Target);
+ }
+ assertSame(TargetAspect.around2Target, TargetAspect.finally2Target);
}
- private void assertStaticAdvices()
+ private void assertStaticAdvices(boolean error)
{
assertTrue(TargetAspect.before1);
assertFalse(TargetAspect.before2);
assertTrue(TargetAspect.around1);
assertFalse(TargetAspect.around2);
- assertTrue(TargetAspect.after1);
+ assertEquals(!error, TargetAspect.after1);
assertFalse(TargetAspect.after2);
+ assertFalse(TargetAspect.throwing1);
+ assertEquals(error, TargetAspect.throwing2);
+ assertTrue(TargetAspect.finally1);
+ assertFalse(TargetAspect.finally2);
+
assertNull(TargetAspect.before2Target);
assertNull(TargetAspect.around2Target);
assertNull(TargetAspect.after2Target);
+ assertNull(TargetAspect.throwing1Target);
+ assertNull(TargetAspect.finally2Target);
}
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownAspect.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownAspect.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -33,42 +33,52 @@
*/
public class ThrownAspect
{
-
- public static String advice;
- public static Throwable thrown;
- public static int thrownNumber;
+ // as a convention, the number of the thrown exception should never be 0, so we
+ // can identify when the number hasn't been set in ThrownAspect, and when it has
+ public static String throwingAdvice;
+ public static Throwable throwingThrown;
+ public static int throwingNumber;
+ public static String finallyAdvice;
+ public static Throwable finallyThrown;
+ public static int finallyNumber;
+
+
public static void clear()
{
- advice = null;
- thrown = null;
- thrownNumber = 0;
+ throwingAdvice = null;
+ throwingThrown = null;
+ throwingNumber = 0;
+ finallyAdvice = null;
+ finallyThrown = null;
+ finallyNumber = 0;
}
public void throwing1()
{
- advice = "throwing1";
+ throwingAdvice = "throwing1";
}
public void throwing2(@Thrown Throwable throwable, @Arg int i)
{
- advice = "throwing2";
- thrownNumber = i;
- thrown = throwable;
+ throwingAdvice = "throwing2";
+ throwingNumber = i;
+ throwingThrown = throwable;
+ ((POJOException) throwable).number = throwingNumber + 1;
}
public void throwing3(@Thrown Exception exception)
{
- advice = "throwing3";
- thrownNumber = ((POJOException) exception).number;
- thrown = exception;
+ throwingAdvice = "throwing3";
+ throwingNumber = ((POJOException) exception).number;
+ throwingThrown = exception;
}
public void throwing4(@Thrown POJOException pojoException, @Arg int i)
{
- advice = "throwing4";
- thrownNumber = i;
- thrown = pojoException;
+ throwingAdvice = "throwing4";
+ throwingNumber = i;
+ throwingThrown = pojoException;
}
public void throwing5(@Thrown RuntimeException runtimeException)
@@ -76,13 +86,59 @@
Assert.fail("This advice should never be executed");
}
- public void throwing6(Throwable throwable)
+ public void throwing6(@Thrown Throwable throwable)
{
+ // exception isn't thrown by joinpoint
Assert.fail("This advice should never be executed");
}
- public void throwing7(@Arg int i)
+ public void throwing7(Throwable throwable)
{
Assert.fail("This advice should never be executed");
}
+
+ public void throwing8(@Arg int i)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finally1(@Thrown Throwable throwable)
+ {
+ finallyAdvice = "finally1";
+ finallyThrown = throwable;
+ finallyNumber = ((POJOException) throwable).number;
+ ((POJOException) throwable).number = finallyNumber + 1;
+ }
+
+ public void finally2()
+ {
+ finallyAdvice = "finally2";
+ }
+
+ public void finally3(@Thrown POJOException throwable)
+ {
+ finallyAdvice = "finally3";
+ finallyThrown = throwable;
+ finallyNumber = throwable.number;
+ }
+
+ public void finally4(@Arg int i, @Thrown Throwable throwable)
+ {
+ finallyAdvice = "finally4";
+ finallyThrown = throwable;
+ finallyNumber = i;
+ }
+
+ public void finally5(@Thrown Object throwable)
+ {
+ finallyAdvice = "finally5";
+ finallyThrown = (Throwable) throwable;
+ finallyNumber = ((POJOException) throwable).number;
+ }
+
+ public void finally6(@Thrown Throwable throwable)
+ {
+ finallyAdvice = "finally6";
+ finallyThrown = throwable;
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownPOJO.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownPOJO.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -28,6 +28,9 @@
*/
public class ThrownPOJO
{
+ // as a convention, the number of the thrown exception should never be 0, so we
+ // can identify when the number hasn't been set in ThrownAspect, and when it has
+
public void method1(int i) throws POJOException
{
throw new POJOException(i);
@@ -53,7 +56,9 @@
throw new POJOException(i);
}
- public void method6() throws POJOException
+ public void method6() throws POJOException { }
+
+ public void method7() throws POJOException
{
throw new POJOException(6);
}
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownTestCase.java 2007-05-02 20:01:57 UTC (rev 62757)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ThrownTestCase.java 2007-05-02 20:52:59 UTC (rev 62758)
@@ -35,6 +35,9 @@
*/
public class ThrownTestCase extends AOPTestWithSetup
{
+ // as a convention, the number of the thrown exception should never be 0, so we
+ // can identify when the number hasn't been set in ThrownAspect, and when it has
+
private ThrownPOJO pojo;
public static void main(String[] args)
@@ -71,10 +74,15 @@
catch(POJOException pojoException)
{
thrown = true;
- assertEquals(11, pojoException.number);
- assertNull(ThrownAspect.advice);
- assertNull(ThrownAspect.thrown);
- assertEquals(0, ThrownAspect.thrownNumber);
+ assertEquals(12, pojoException.number);
+
+ assertNull(ThrownAspect.throwingAdvice);
+ assertNull(ThrownAspect.throwingThrown);
+ assertEquals(0, ThrownAspect.throwingNumber);
+
+ assertEquals("finally1", ThrownAspect.finallyAdvice);
+ assertSame(pojoException, ThrownAspect.finallyThrown);
+ assertEquals(11, ThrownAspect.finallyNumber);
}
assertTrue(thrown);
}
@@ -89,10 +97,15 @@
catch(POJOException pojoException)
{
thrown = true;
- assertEquals(23, pojoException.number);
- assertEquals("throwing2", ThrownAspect.advice);
- assertEquals(pojoException, ThrownAspect.thrown);
- assertEquals(23, ThrownAspect.thrownNumber);
+ assertEquals(24, pojoException.number);
+
+ assertEquals("throwing2", ThrownAspect.throwingAdvice);
+ assertSame(pojoException, ThrownAspect.throwingThrown);
+ assertEquals(23, ThrownAspect.throwingNumber);
+
+ assertEquals("finally2", ThrownAspect.finallyAdvice);
+ assertNull(ThrownAspect.finallyThrown);
+ assertEquals(0, ThrownAspect.finallyNumber);
}
assertTrue(thrown);
}
@@ -108,12 +121,17 @@
{
thrown = true;
assertEquals(37, pojoException.number);
- assertNull(ThrownAspect.advice);
- assertNull(ThrownAspect.thrown);
- assertEquals(0, ThrownAspect.thrownNumber);
+
+ assertNull(ThrownAspect.throwingAdvice);
+ assertNull(ThrownAspect.throwingThrown);
+ assertEquals(0, ThrownAspect.throwingNumber);
/*assertEquals("throwing3", ThrownAspect.advice);
- assertEquals(pojoException, ThrownAspect.thrown);
+ assertSame(pojoException, ThrownAspect.thrown);
assertEquals(37, ThrownAspect.thrownNumber);*/
+
+ assertNull(ThrownAspect.finallyAdvice);
+ assertNull(ThrownAspect.finallyThrown);
+ assertEquals(0, ThrownAspect.finallyNumber);
}
assertTrue(thrown);
}
@@ -129,12 +147,15 @@
{
thrown = true;
assertEquals(43, pojoException.number);
- assertNull(ThrownAspect.advice);
- assertNull(ThrownAspect.thrown);
- assertEquals(0, ThrownAspect.thrownNumber);
+
+ assertNull(ThrownAspect.throwingAdvice);
+ assertNull(ThrownAspect.throwingThrown);
+ assertEquals(0, ThrownAspect.throwingNumber);
/*assertEquals("throwing4", ThrownAspect.advice);
- assertEquals(pojoException, ThrownAspect.thrown);
+ assertSame(pojoException, ThrownAspect.thrown);
assertEquals(43, ThrownAspect.thrownNumber);*/
+
+
}
assertTrue(thrown);
}
@@ -150,9 +171,14 @@
{
thrown = true;
assertEquals(59, pojoException.number);
- assertNull(ThrownAspect.advice);
- assertNull(ThrownAspect.thrown);
- assertEquals(0, ThrownAspect.thrownNumber);
+
+ assertNull(ThrownAspect.throwingAdvice);
+ assertNull(ThrownAspect.throwingThrown);
+ assertEquals(0, ThrownAspect.throwingNumber);
+
+ assertEquals("finally5", ThrownAspect.finallyAdvice);
+ assertSame(pojoException, ThrownAspect.finallyThrown);
+ assertEquals(59, ThrownAspect.finallyNumber);
}
assertTrue(thrown);
}
@@ -167,10 +193,36 @@
catch(POJOException pojoException)
{
thrown = true;
+ }
+ assertFalse(thrown);
+
+ assertNull(ThrownAspect.throwingAdvice);
+ assertNull(ThrownAspect.throwingThrown);
+ assertEquals(0, ThrownAspect.throwingNumber);
+
+ assertEquals("finally6", ThrownAspect.finallyAdvice);
+ assertNull(ThrownAspect.finallyThrown);
+ assertEquals(0, ThrownAspect.finallyNumber);
+ }
+
+ public void test7()
+ {
+ boolean thrown = false;
+ try
+ {
+ pojo.method7();
+ }
+ catch(POJOException pojoException)
+ {
+ thrown = true;
assertEquals(6, pojoException.number);
- assertNull(ThrownAspect.advice);
- assertNull(ThrownAspect.thrown);
- assertEquals(0, ThrownAspect.thrownNumber);
+ assertNull(ThrownAspect.throwingAdvice);
+ assertNull(ThrownAspect.throwingThrown);
+ assertEquals(0, ThrownAspect.throwingNumber);
+
+ assertNull(ThrownAspect.finallyAdvice);
+ assertNull(ThrownAspect.finallyThrown);
+ assertEquals(0, ThrownAspect.finallyNumber);
}
assertTrue(thrown);
}
More information about the jboss-cvs-commits
mailing list