[jboss-cvs] JBossAS SVN: r59981 - in projects/aop/trunk/aop/src: resources/test/beforeafterArgs and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 24 14:52:57 EST 2007


Author: flavia.rainone at jboss.com
Date: 2007-01-24 14:52:57 -0500 (Wed, 24 Jan 2007)
New Revision: 59981

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/FieldJoinPointGenerator.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
   projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsAspect.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsTestCase.java
Log:
[JBAOP-325] @Args support on field joinponts added.

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/FieldJoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/FieldJoinPointGenerator.java	2007-01-24 19:47:29 UTC (rev 59980)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/FieldJoinPointGenerator.java	2007-01-24 19:52:57 UTC (rev 59981)
@@ -250,16 +250,34 @@
          {
             addTypedTargetField();
          }
+         addArgumentFieldAndAccessor();
          addInvokeJoinpointMethod();
          addFieldInfoField();
          addPublicConstructor();
-         addProtectedConstructor();
+         addProtectedConstructors();
          addDispatchMethods();
 
          TransformerCommon.compileOrLoadClass(advisedClass, jp);
          return jp;
       }
 
+      protected void addArgumentFieldAndAccessor() throws CannotCompileException, NotFoundException
+      {
+         CtField argumentsField = new CtField(
+               instrumentor.forName("java.lang.Object[]"), ARGUMENTS, jp);
+         argumentsField.setModifiers(Modifier.PROTECTED);
+         jp.addField(argumentsField);
+         CtMethod getArguments = CtNewMethod.make(createGetArgumentsBody(), jp);
+         getArguments.setModifiers(Modifier.PUBLIC);
+         jp.addMethod(getArguments);
+         CtMethod setArguments = CtNewMethod.make(createSetArgumentsBody(), jp);
+         setArguments.setModifiers(Modifier.PUBLIC);
+         jp.addMethod(setArguments);
+      }
+
+      protected abstract String createGetArgumentsBody();
+      protected abstract String createSetArgumentsBody();
+      
       private static String debugFields(CtClass clazz) throws NotFoundException
       {
          StringBuffer sb = new StringBuffer();
@@ -310,25 +328,58 @@
       }
 
       /**
-       * This constructor will be called by invokeJoinpoint in the generated subclass when we need to
-       * instantiate a joinpoint containing target and args
+       * These constructors will be called by invokeJoinpoint in the generated
+       * subclass when we need to instantiate a joinpoint containing target and args
        */
-      protected void addProtectedConstructor() throws CannotCompileException, NotFoundException
+      protected void addProtectedConstructors() throws CannotCompileException, NotFoundException
       {
+         CtClass[] ctorParams1 = (hasTargetObject) ? new CtClass[2] : new CtClass[1];
+         CtClass[] ctorParams2 = (hasTargetObject) ? new CtClass[3] : new CtClass[2];
+         
+         ctorParams1[0] = ctorParams2[0] = jp;
+         if (hasTargetObject) ctorParams1[1] = ctorParams2[1] = advisedClass;
+         ctorParams2[ctorParams2.length - 1] = getArgumentType();
+         
+         StringBuffer body = new StringBuffer();
+         body.append("{");
+         body.append("   this($1." + INFO_FIELD + ");");
 
+         if (hasTargetObject)
+         {
+            body.append("   this." + TARGET_FIELD + " = $2;");
+            body.append("   super.setTargetObject($2);");
+         }
+         
+         if (getArgumentType() != null)
+         {
+            CtConstructor protectedConstructor = CtNewConstructor.make(
+                  ctorParams1,
+                  new CtClass[0],
+                  body.toString() + "}",
+                  jp);
+            protectedConstructor.setModifiers(Modifier.PROTECTED);
+            jp.addConstructor(protectedConstructor);
+         }
+         else
+         {
+            ctorParams2 = ctorParams1;
+         }
+         String setArguments = createSetValue();
          CtConstructor protectedConstructor = CtNewConstructor.make(
-               createProtectedCtorParams(),
+               ctorParams2,
                new CtClass[0],
-               createProtectedCtorBody(),
+               body.toString() + setArguments + "}",
                jp);
          protectedConstructor.setModifiers(Modifier.PROTECTED);
-
          jp.addConstructor(protectedConstructor);
+         
+         
       }
 
-      protected abstract CtClass[] createProtectedCtorParams() throws NotFoundException;
-      protected abstract String createProtectedCtorBody();
+      protected abstract CtClass getArgumentType() throws NotFoundException;
+      protected abstract String createSetValue();
       protected abstract CtClass[] getInvokeJoinPointParams() throws NotFoundException;
+      
       /**
        * Add an empty invokeJoinpoint() method. This method will be overridden by generated subclasses,
        * when the interceptors are rebuilt
@@ -438,31 +489,16 @@
          return READ_INVOCATION_CT_TYPE;
       }
 
-      protected CtClass[] createProtectedCtorParams() throws NotFoundException
+      protected CtClass getArgumentType()
       {
-         CtClass[] ctorParams = (hasTargetObject) ? new CtClass[2] : new CtClass[1];
-         ctorParams[0] = jp;
-         if (hasTargetObject) ctorParams[1] = advisedClass;
-
-         return ctorParams;
+         return null;
       }
-
-      protected String createProtectedCtorBody()
+      
+      protected String createSetValue()
       {
-         StringBuffer body = new StringBuffer();
-         body.append("{");
-         body.append("   this($1." + INFO_FIELD + ");");
-
-         if (hasTargetObject)
-         {
-            body.append("   this." + TARGET_FIELD + " = $2;");
-            body.append("   super.setTargetObject($2);");
-         }
-
-         body.append("}");
-         return body.toString();
+         return "";
       }
-
+      
       protected CtClass[] getInvokeJoinPointParams() throws NotFoundException
       {
          return (hasTargetObject) ? new CtClass[] {advisedClass} : new CtClass[0];
@@ -496,6 +532,36 @@
             "{return "  + "$1." + advisedField.getName() + ";}" :
             "{return " + advisedClass.getName() + "." + advisedField.getName() + ";}";
       }
+      
+      protected String createGetArgumentsBody()
+      {
+         StringBuffer code = new StringBuffer("public java.lang.Object[] getArguments()");
+         code.append("{ ");
+         code.append("   if(");
+         code.append(ARGUMENTS);
+         code.append("  == null)");
+         code.append("   {");
+         code.append("      ");
+         code.append(ARGUMENTS);
+         code.append(" = new java.lang.Object[0];");
+         code.append("   }");
+         code.append("   return ");
+         code.append(ARGUMENTS);
+         code.append("; ");
+         code.append("}");
+         return code.toString();
+      }
+      
+      protected String createSetArgumentsBody()
+      {
+         StringBuffer code = new StringBuffer(
+         "public void setArguments(java.lang.Object[] args)");
+         code.append("{   ");
+         code.append(ARGUMENTS);
+         code.append("=args;");
+         code.append("}");
+         return code.toString();
+      }
    }
 
    private static class WriteBaseClassGenerator extends BaseClassGenerator
@@ -510,43 +576,19 @@
       {
          return WRITE_INVOCATION_CT_TYPE;
       }
-
-      protected CtClass[] createProtectedCtorParams() throws NotFoundException
+      
+      protected CtClass getArgumentType() throws NotFoundException
       {
-         CtClass[] ctorParams = (hasTargetObject) ? new CtClass[3] : new CtClass[2];
-         ctorParams[0] = jp;
-         if (hasTargetObject)
-         {
-            ctorParams[1] = advisedClass;
-            ctorParams[2] = advisedField.getType();
-         }
-         else
-         {
-            ctorParams[1] = advisedField.getType();
-         }
-
-         return ctorParams;
+         return advisedField.getType();
       }
 
-      protected String createProtectedCtorBody()
+      protected String createSetValue()
       {
-         StringBuffer body = new StringBuffer();
-         body.append("{");
-         body.append("   this($1." + INFO_FIELD + ");");
-
          if (hasTargetObject)
          {
-            body.append("   this." + TARGET_FIELD + " = $2;");
-            body.append("   super.setTargetObject($2);");
-            body.append("   super.value = ($w)$3;");
+            return "   super.value = ($w)$3;";
          }
-         else
-         {
-            body.append("   super.value = ($w)$2;");
-         }
-
-         body.append("}");
-         return body.toString();
+         return "   super.value = ($w)$2;";
       }
 
       protected CtClass[] getInvokeJoinPointParams() throws NotFoundException
@@ -592,5 +634,36 @@
             "{$1." + advisedField.getName() + " = $2;}" :
             "{" + advisedClass.getName() + "." + advisedField.getName() + " = $1;}";
       }
+      
+      protected String createGetArgumentsBody()
+      {
+         StringBuffer code = new StringBuffer("public java.lang.Object[] getArguments()");
+         code.append("{ ");
+         code.append("   if(");
+         code.append(ARGUMENTS);
+         code.append("  == null)");
+         code.append("   {");
+         code.append("      ");
+         code.append(ARGUMENTS);
+         code.append(" = new java.lang.Object[]{super.value};");
+         code.append("   }");
+         code.append("   return ");
+         code.append(ARGUMENTS);
+         code.append("; ");
+         code.append("}");
+         return code.toString();
+      }
+      
+      protected String createSetArgumentsBody()
+      {
+         StringBuffer code = new StringBuffer(
+         "public void setArguments(java.lang.Object[] args)");
+         code.append("{   ");
+         code.append(ARGUMENTS);
+         code.append("=args;");
+         code.append("   super.value=args[0];");
+         code.append("}");
+         return code.toString();
+      }
    }
 }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2007-01-24 19:47:29 UTC (rev 59980)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2007-01-24 19:52:57 UTC (rev 59981)
@@ -254,7 +254,7 @@
    public static final String GENERATOR_PREFIX = "generator_";
    private static final String RETURN_VALUE = "ret";
    private static final String THROWABLE = "t";
-   private static final String ARGUMENTS= " arguments";
+   protected static final String ARGUMENTS= "arguments";
    private static final String GET_ARGUMENTS= " getArguments()";
    protected static final CtClass[] EMPTY_CTCLASS_ARRAY = new CtClass[0];
 
@@ -944,10 +944,6 @@
       {
          throw new RuntimeException("JoinPoints should have 2 or 3 constructors, not " + superCtors.length);
       }
-      else if (superCtors.length != 2 && FieldJoinPointGenerator.class.isAssignableFrom(this.getClass()))
-      {
-         throw new RuntimeException("Field JoinPoints should only have 2 and only constructors, not " + superCtors.length);
-      }
       else if (superCtors.length != 4 && superCtors.length != 3 && this.getClass().equals(MethodJoinPointGenerator.class))
       {
          throw new RuntimeException("Method JoinPoints should have 3 or 4 constructors, not " + superCtors.length);

Modified: projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-01-24 19:47:29 UTC (rev 59980)
+++ projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-01-24 19:52:57 UTC (rev 59981)
@@ -7,7 +7,7 @@
 
 	<bind pointcut="field(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->field1)">
 		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
-      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+        <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<before name="before3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<before name="before4" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<before name="before5" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
@@ -20,8 +20,9 @@
    </bind>
 
 	<bind pointcut="field(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->field3)">
+    	<advice name="around3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
-      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+        <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<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"/>
@@ -29,12 +30,13 @@
 
 	<bind pointcut="field(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->field4)">
 		<before name="before1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
-      <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+        <before name="before2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<before name="before3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<before name="before4" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<before name="before5" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+    	<advice name="around3" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<after name="after1" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
-      <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
+        <after name="after2" aspect="org.jboss.test.aop.beforeafterArgs.ArgsAspect"/>
 		<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"/>
@@ -43,6 +45,7 @@
 	<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" />
 	</bind>
 
 	<bind pointcut="execution(* org.jboss.test.aop.beforeafterArgs.ArgsPOJO->method2(..))">

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-01-24 19:47:29 UTC (rev 59980)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsAspect.java	2007-01-24 19:52:57 UTC (rev 59981)
@@ -25,6 +25,7 @@
 
 import org.jboss.aop.advice.annotation.Args;
 import org.jboss.aop.advice.annotation.Thrown;
+import org.jboss.aop.joinpoint.Invocation;
 import org.jboss.aop.joinpoint.MethodCalledByMethodInvocation;
 import org.jboss.aop.joinpoint.MethodInvocation;
 
@@ -204,9 +205,8 @@
    
    public void after8(@Args Object[] arguments)
    {
-      before8 = true;
-      before8Args = arguments;
-      // TODO make after 8 realize changes made during around invocations
+      after8 = true;
+      after8Args = arguments;
    }
    
    public Object around1(MethodInvocation invocation) throws Throwable
@@ -223,7 +223,7 @@
       return invocation.invokeNext();
    }
    
-   public Object around3(MethodInvocation invocation, @Args Object[] arguments) throws Throwable
+   public Object around3(@org.jboss.aop.advice.annotation.Invocation Invocation invocation, @Args Object[] arguments) throws Throwable
    {
       around3 = true;
       around3Args = arguments;
@@ -233,7 +233,6 @@
    public void throwing(@Args Object[] arguments, @Thrown Throwable throwable)
    {
       throwing = true;
-      System.out.println("RECEIVING ARGUMENTS: " + arguments);
       throwingArgs = arguments;
    }
 }
\ No newline at end of file

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-01-24 19:47:29 UTC (rev 59980)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/ArgsTestCase.java	2007-01-24 19:52:57 UTC (rev 59981)
@@ -80,6 +80,7 @@
       assertFalse(ArgsAspect.after8);
       assertFalse(ArgsAspect.around1);
       assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.around3);
       assertFalse(ArgsAspect.throwing);
    }
    
@@ -103,6 +104,7 @@
       assertFalse(ArgsAspect.after8);
       assertFalse(ArgsAspect.around1);
       assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.around3);
       assertFalse(ArgsAspect.throwing);
    }
    
@@ -128,6 +130,7 @@
       assertFalse(ArgsAspect.after8);
       assertFalse(ArgsAspect.around1);
       assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.around3);
       assertFalse(ArgsAspect.throwing);
       
       assertEquals("before6", pojo.field2);
@@ -136,15 +139,18 @@
    public void test4()
    {
       pojo.field3 = 10;
-      
+      assertTrue(ArgsAspect.around3);
       assertTrue(ArgsAspect.after1);
       assertTrue(ArgsAspect.after2);
       assertTrue(ArgsAspect.after3);
-      assertNotNull(ArgsAspect.after2Args);
+      assertNotNull(ArgsAspect.around3Args);
+      assertEquals(1, ArgsAspect.around3Args.length);
+      assertEquals(10, ArgsAspect.around3Args[0]);
       assertSame(ArgsAspect.after2Args, ArgsAspect.after3Args);
       assertEquals(1, ArgsAspect.after2Args.length);
       assertEquals(10, ArgsAspect.after2Args[0]);
       
+      
       assertFalse(ArgsAspect.after6);
       assertFalse(ArgsAspect.after7);
       assertFalse(ArgsAspect.after8);
@@ -166,6 +172,7 @@
       assertTrue(ArgsAspect.before1);
       assertTrue(ArgsAspect.before2);
       assertTrue(ArgsAspect.before3);
+      assertTrue(ArgsAspect.around3);
       assertTrue(ArgsAspect.after1);
       assertTrue(ArgsAspect.after2);
       assertTrue(ArgsAspect.after3);
@@ -188,6 +195,36 @@
    
    public void test6()
    {
+      ArgsPOJO.field4 = false;
+      
+      assertTrue(ArgsAspect.before1);
+      assertTrue(ArgsAspect.before2);
+      assertTrue(ArgsAspect.before3);
+      assertTrue(ArgsAspect.around3);
+      assertTrue(ArgsAspect.after1);
+      assertTrue(ArgsAspect.after2);
+      assertTrue(ArgsAspect.after3);
+      assertNotNull(ArgsAspect.before2Args);
+      assertSame(ArgsAspect.before2Args, ArgsAspect.before3Args);
+      assertSame(ArgsAspect.before2Args, ArgsAspect.around3Args);
+      assertSame(ArgsAspect.around3Args, ArgsAspect.after2Args);
+      assertSame(ArgsAspect.before2Args, ArgsAspect.after3Args);
+      assertEquals(1, ArgsAspect.before2Args.length);
+      assertEquals(false, ((Boolean) ArgsAspect.before2Args[0]).booleanValue());
+      
+      assertFalse(ArgsAspect.after6);
+      assertFalse(ArgsAspect.after7);
+      assertFalse(ArgsAspect.after8);
+      assertFalse(ArgsAspect.before6);
+      assertFalse(ArgsAspect.before7);
+      assertFalse(ArgsAspect.before8);
+      assertFalse(ArgsAspect.around1);
+      assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.throwing);
+   }
+   
+   public void test7()
+   {
       pojo.method1("test6", 6, true, null);
       
       assertTrue(ArgsAspect.before3);
@@ -212,10 +249,11 @@
       assertFalse(ArgsAspect.after8);
       assertFalse(ArgsAspect.around1);
       assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.around3);
       assertFalse(ArgsAspect.throwing);
    }
    
-   public void test7()
+   public void test8()
    {
       pojo.method2("test7", 0, false, null);
       assertTrue(ArgsAspect.before7);
@@ -245,17 +283,23 @@
       assertFalse(ArgsAspect.after6);
       assertFalse(ArgsAspect.after8);
       assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.around3);
       assertFalse(ArgsAspect.throwing);
    }
    
-   public void test8()
+   public void test9()
    {
+      boolean exceptionThrown = false;
       try
       {
          pojo.method3((short) 0, 100);
       }
       catch(POJOException e)
-      {}
+      {
+         exceptionThrown = true;
+      }
+      assertTrue(exceptionThrown);
+      
       assertTrue(ArgsAspect.throwing);
       assertNotNull(ArgsAspect.throwingArgs);
       assertEquals(2, ArgsAspect.throwingArgs.length);
@@ -276,14 +320,46 @@
       assertFalse(ArgsAspect.after8);
       assertFalse(ArgsAspect.around1);
       assertFalse(ArgsAspect.around2);
+      assertFalse(ArgsAspect.around3);
    }
    
-   public void test9()
+   public void test10()
    {
+      boolean exceptionThrown = false;
       try
       {
          pojo.method4();
       } catch (POJOException e)
-      {}
+      {
+         exceptionThrown = true;
+      }
+      assertTrue(exceptionThrown);
+
+      assertTrue(ArgsAspect.before8);
+      assertTrue(ArgsAspect.around2);
+      assertTrue(ArgsAspect.throwing);
+      
+      assertNotNull(ArgsAspect.before8Args);
+      assertSame(ArgsAspect.before8Args, ArgsAspect.around2Args);
+      assertSame(ArgsAspect.around2Args, ArgsAspect.throwingArgs);
+      
+      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 exceptio thrown
+      assertFalse(ArgsAspect.after8);
+      assertFalse(ArgsAspect.around1);
+      assertFalse(ArgsAspect.around3);
    }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list