[jboss-cvs] JBossAS SVN: r63337 - 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
Mon Jun 4 16:33:40 EDT 2007
Author: flavia.rainone at jboss.com
Date: 2007-06-04 16:33:40 -0400 (Mon, 04 Jun 2007)
New Revision: 63337
Added:
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspectGenerics.java
Modified:
projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgTestCase.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsPOJO.java
Log:
Tests generics with @Arg annotated paramaters.
Modified: projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml 2007-06-04 19:18:26 UTC (rev 63336)
+++ projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml 2007-06-04 20:33:40 UTC (rev 63337)
@@ -158,7 +158,51 @@
<finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectInvertedArgs"/>
<finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectInvertedArgs"/>
</bind>
+
+ <aspect class="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics" scope="PER_VM"/>
+ <bind pointcut="execution(void org.jboss.test.aop.beforeafterArgs.ArgsPOJO->*(java.util.List))">
+ <before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <before name="before4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <before name="before5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <before name="before6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <before name="before7" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <before name="before8" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around7" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <around name="around8" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after7" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <after name="after8" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing7" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <throwing name="throwing8" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally1" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally2" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally3" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally4" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally5" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally6" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally7" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ <finally name="finally8" aspect="org.jboss.test.aop.beforeafterArgs.ArgAspectGenerics"/>
+ </bind>
+
<!-- @Args test -->
<aspect class="org.jboss.test.aop.beforeafterArgs.ArgsAspect" scope="PER_VM"/>
Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspectGenerics.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspectGenerics.java (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgAspectGenerics.java 2007-06-04 20:33:40 UTC (rev 63337)
@@ -0,0 +1,312 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.aop.beforeafterArgs;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.Assert;
+
+import org.jboss.aop.advice.annotation.Arg;
+import org.jboss.aop.advice.annotation.Thrown;
+import org.jboss.aop.joinpoint.CurrentInvocation;
+
+/**
+ * Aspect used on @Arg parameter tests that involve generic argument types.
+ *
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @see org.jboss.test.aop.beforeafterArgs.ArgAspect
+ * @see org.jboss.test.aop.beforeafterArgs.ArgAspetInterfaces
+ */
+public class ArgAspectGenerics
+{
+ static boolean before1 = false;
+ static boolean before2 = false;
+ static boolean before4 = false;
+ static boolean before5 = false;
+ static boolean before6 = false;
+
+ static boolean around1 = false;
+ static boolean around2 = false;
+ static boolean around3 = false;
+ static boolean around4 = false;
+ static boolean around6 = false;
+
+ static boolean after1 = false;
+ static boolean after2 = false;
+ static boolean after3 = false;
+ static boolean after4 = false;
+ static boolean after6 = false;
+
+ static boolean throwing1 = false;
+ static boolean throwing3 = false;
+ static boolean throwing4 = false;
+ static boolean throwing5 = false;
+ static boolean throwing6 = false;
+
+ static boolean finally1 = false;
+ static boolean finally2 = false;
+ static boolean finally3 = false;
+ static boolean finally4 = false;
+ static boolean finally6 = false;
+
+ public static void clear()
+ {
+ before1 = false;
+ before2 = false;
+ before4 = false;
+ before5 = false;
+ before6 = false;
+
+ around1 = false;
+ around2 = false;
+ around3 = false;
+ around4 = false;
+ around6 = false;
+
+ after1 = false;
+ after2 = false;
+ after3 = false;
+ after4 = false;
+ after6 = false;
+
+ throwing1 = false;
+ throwing3 = false;
+ throwing4 = false;
+ throwing5 = false;
+ throwing6 = false;
+
+ finally1 = false;
+ finally2 = false;
+ finally3 = false;
+ finally4 = false;
+ finally6 = false;
+ }
+
+ public void before1(@Arg List<SuperValue> arg)
+ {
+ before1 = true;
+ }
+
+ public void before2(@Arg List<Object> arg)
+ {
+ before2 = true;
+ }
+
+ public void before3(@Arg List<SubValue> arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void before4(@Arg List arg)
+ {
+ before4 = true;
+ }
+
+ public void before5(@Arg Collection<SuperValue> arg)
+ {
+ before5 = true;
+ }
+
+ public void before6(@Arg Collection arg)
+ {
+ before6 = true;
+ }
+
+ public void before7(@Arg ArrayList<SuperValue> arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void before8(@Arg Set<SuperValue> arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void around1(@Arg Collection<SuperValue> arg) throws Throwable
+ {
+ around1 = true;
+ CurrentInvocation.proceed();
+ }
+
+ public void around2(@Arg Collection arg) throws Throwable
+ {
+ around2 = true;
+ CurrentInvocation.proceed();
+ }
+
+ public void around3(@Arg List<SuperValue> arg) throws Throwable
+ {
+ around3 = true;
+ CurrentInvocation.proceed();
+ }
+
+ public void around4(@Arg List<Object> arg) throws Throwable
+ {
+ around4 = true;
+ CurrentInvocation.proceed();
+ }
+
+ public void around5(@Arg List<Interface> arg) throws Throwable
+ {
+ //Assert.fail("This advice should never be executed");
+ CurrentInvocation.proceed();
+ }
+
+ public void around6(@Arg List arg) throws Throwable
+ {
+ around6 = true;
+ CurrentInvocation.proceed();
+ }
+
+ public void around7(@Arg ArrayList<Object> arg) throws Throwable
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void around8(@Arg Set<Object> arg) throws Throwable
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void after1(@Arg List<SuperValue> arg)
+ {
+ after1 = true;
+ }
+
+ public void after2(@Arg List<Object> arg)
+ {
+ after2 = true;
+ }
+
+ public void after3(@Arg List arg)
+ {
+ after3 = true;
+ }
+
+ public void after4(@Arg Collection<SuperValue> arg)
+ {
+ after4 = true;
+ }
+
+ public void after5(@Arg Collection<Object> arg)
+ {
+ //Assert.fail("This advice should never be executed");
+ }
+
+ public void after6(@Arg Collection arg)
+ {
+ after6 = true;
+ }
+
+ public void after7(@Arg ArrayList<SubValue> arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void after8(@Arg Set<SubValue> arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void throwing1(@Arg Collection<SuperValue> arg, @Thrown Throwable t)
+ {
+ throwing1 = true;
+ }
+
+ public void throwing2(@Arg Collection<SubValue> arg, @Thrown Throwable t)
+ {
+ //Assert.fail("This advice should never be executed");
+ }
+
+ public void throwing3(@Arg Collection arg, @Thrown Throwable t)
+ {
+ throwing3 = true;
+ }
+
+ public void throwing4(@Arg List<SuperValue> arg, @Thrown Throwable t)
+ {
+ throwing4 = true;
+ }
+
+ public void throwing5(@Arg List<Object> arg, @Thrown Throwable t)
+ {
+ throwing5 = true;
+ }
+
+ public void throwing6(@Arg List arg, @Thrown Throwable t)
+ {
+ throwing6 = true;
+ }
+
+ public void throwing7(@Arg ArrayList<Interface> arg, @Thrown Throwable t)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void throwing8(@Arg Set<Interface> arg, @Thrown Throwable t)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finally1(@Arg List<SuperValue> arg)
+ {
+ finally1 = true;
+ }
+
+ public void finally2(@Arg List<Object> arg)
+ {
+ finally2 = true;
+ }
+
+ public void finally3(@Arg List arg)
+ {
+ finally3 = true;
+ }
+
+ public void finally4(@Arg Collection<SuperValue> arg)
+ {
+ finally4 = true;
+ }
+
+ public void finally5(@Arg Collection<Interface> arg)
+ {
+ //Assert.fail("This advice should never be executed");
+ }
+
+ public void finally6(@Arg Collection arg)
+ {
+ finally6 = true;
+ }
+
+ public void finally5(@Arg ArrayList arg)
+ {
+ Assert.fail("This advice should never be executed");
+ }
+
+ public void finally5(@Arg Set arg)
+ {
+ 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-06-04 19:18:26 UTC (rev 63336)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgTestCase.java 2007-06-04 20:33:40 UTC (rev 63337)
@@ -21,6 +21,9 @@
*/
package org.jboss.test.aop.beforeafterArgs;
+import java.util.ArrayList;
+import java.util.List;
+
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
@@ -69,6 +72,7 @@
ArgAspect.clear();
ArgAspectInterfaces.clear();
ArgAspectInvertedArgs.clear();
+ ArgAspectGenerics.clear();
}
public void test1()
@@ -396,4 +400,78 @@
assertTrue(ArgAspectInvertedArgs.throwing1);
assertTrue(ArgAspectInvertedArgs.finally1);
}
+
+ public void testGenerics1()
+ {
+ List<SuperValue> list = new ArrayList<SuperValue>();
+ pojo.method13(list);
+
+ assertTrue(ArgAspectGenerics.before1);
+ assertTrue(ArgAspectGenerics.before2);
+ assertTrue(ArgAspectGenerics.before4);
+ assertTrue(ArgAspectGenerics.before5);
+ assertTrue(ArgAspectGenerics.before6);
+ assertTrue(ArgAspectGenerics.around1);
+ assertTrue(ArgAspectGenerics.around2);
+ assertTrue(ArgAspectGenerics.around3);
+ assertTrue(ArgAspectGenerics.around4);
+ assertTrue(ArgAspectGenerics.around6);
+ assertTrue(ArgAspectGenerics.after1);
+ assertTrue(ArgAspectGenerics.after2);
+ assertTrue(ArgAspectGenerics.after3);
+ assertTrue(ArgAspectGenerics.after4);
+ assertTrue(ArgAspectGenerics.after6);
+ assertFalse(ArgAspectGenerics.throwing1);
+ assertFalse(ArgAspectGenerics.throwing3);
+ assertFalse(ArgAspectGenerics.throwing4);
+ assertFalse(ArgAspectGenerics.throwing5);
+ assertFalse(ArgAspectGenerics.throwing6);
+ assertTrue(ArgAspectGenerics.finally1);
+ assertTrue(ArgAspectGenerics.finally2);
+ assertTrue(ArgAspectGenerics.finally3);
+ assertTrue(ArgAspectGenerics.finally4);
+ assertTrue(ArgAspectGenerics.finally6);
+ }
+
+ public void testGenerics2()
+ {
+ boolean thrown = false;
+ try
+ {
+ List<SuperValue> list = new ArrayList<SuperValue>();
+ pojo.method14(list);
+ }
+ catch(POJOException e)
+ {
+ thrown = true;
+ }
+ // verify precondition for this test
+ assertTrue(thrown);
+
+ assertTrue(ArgAspectGenerics.before1);
+ assertTrue(ArgAspectGenerics.before2);
+ assertTrue(ArgAspectGenerics.before4);
+ assertTrue(ArgAspectGenerics.before5);
+ assertTrue(ArgAspectGenerics.before6);
+ assertTrue(ArgAspectGenerics.around1);
+ assertTrue(ArgAspectGenerics.around2);
+ assertTrue(ArgAspectGenerics.around3);
+ assertTrue(ArgAspectGenerics.around4);
+ assertTrue(ArgAspectGenerics.around6);
+ assertFalse(ArgAspectGenerics.after1);
+ assertFalse(ArgAspectGenerics.after2);
+ assertFalse(ArgAspectGenerics.after3);
+ assertFalse(ArgAspectGenerics.after4);
+ assertFalse(ArgAspectGenerics.after6);
+ assertTrue(ArgAspectGenerics.throwing1);
+ assertTrue(ArgAspectGenerics.throwing3);
+ assertTrue(ArgAspectGenerics.throwing4);
+ assertTrue(ArgAspectGenerics.throwing5);
+ assertTrue(ArgAspectGenerics.throwing6);
+ assertTrue(ArgAspectGenerics.finally1);
+ assertTrue(ArgAspectGenerics.finally2);
+ assertTrue(ArgAspectGenerics.finally3);
+ assertTrue(ArgAspectGenerics.finally4);
+ assertTrue(ArgAspectGenerics.finally6);
+ }
}
\ 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-06-04 19:18:26 UTC (rev 63336)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsPOJO.java 2007-06-04 20:33:40 UTC (rev 63337)
@@ -22,6 +22,7 @@
package org.jboss.test.aop.beforeafterArgs;
import java.util.Collection;
+import java.util.List;
/**
* Plain old java object used on @Args parameter tests.
@@ -128,4 +129,12 @@
{
throw new POJOException();
}
+
+ // test of generics
+ public void method13(List<SuperValue> arg) {}
+
+ public void method14(List<SuperValue> arg) throws POJOException
+ {
+ throw new POJOException();
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list