[jboss-cvs] JBossAS SVN: r87846 - in projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving: test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Apr 26 15:20:01 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-04-26 15:20:01 -0400 (Sun, 26 Apr 2009)
New Revision: 87846

Modified:
   projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/FoundInvoker.java
   projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/NotFoundInvoker.java
   projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java
Log:
[JBAOP-707] Test ClassContainers

Modified: projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/FoundInvoker.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/FoundInvoker.java	2009-04-26 18:47:44 UTC (rev 87845)
+++ projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/FoundInvoker.java	2009-04-26 19:20:01 UTC (rev 87846)
@@ -22,16 +22,23 @@
 package org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.target;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
 import java.util.Map;
 
 import junit.framework.Assert;
 
 import org.jboss.aop.Advised;
 import org.jboss.aop.Advisor;
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.ClassContainer;
+import org.jboss.aop.MethodInfo;
+import org.jboss.aop.advice.Interceptor;
 import org.jboss.aop.annotation.AnnotationRepository;
+import org.jboss.aop.joinpoint.MethodInvocation;
 import org.jboss.aop.proxy.container.AOPProxyFactory;
 import org.jboss.aop.proxy.container.AOPProxyFactoryParameters;
 import org.jboss.aop.proxy.container.GeneratedAOPProxyFactory;
+import org.jboss.aop.util.MethodHashing;
 import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.aspects.IntroducedAnnotation;
 import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.aspects.MarkerInterface;
 import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.aspects.MixinImpl;
@@ -222,4 +229,31 @@
       		"{iac}{iacj}{iai}{iaj}{iav}{eac}{eacj}{eai}{eaj}{eav}" +
       		"{iic}{iicj}{iii}{iij}{iiv}{eic}{eicj}{eii}{eij}{eiv}");
    }
+   
+   public static void invokeClassContainer() throws Throwable
+   {
+      POJOForContainerProxy pojo = new POJOForContainerProxy();
+      Assert.assertFalse(pojo instanceof Advised);
+      
+      ClassContainer container = new ClassContainer("Something", AspectManager.instance());
+      container.initializeClassContainer(POJOForContainerProxy.class);
+      
+      Method m = pojo.getClass().getMethod("method", String.class);
+      long hash = MethodHashing.calculateHash(m);
+      MethodInfo info = container.getMethodInfo(hash);
+      Interceptor[] interceptors = info.getInterceptors();
+      
+      MethodInvocation invocation = new MethodInvocation(info, interceptors);
+      invocation.setAdvisor(container);
+      invocation.setArguments(new Object[] {"XXX"});
+      
+      container.dynamicInvoke(pojo, invocation);
+      
+      Interceptions.assertEquals("(eiv)(eicj)(eic)(iiv)(iicj)(iic)" +
+            "(eav)(eacj)(eac)(iav)(iacj)(iac)" +
+            "(efav)(efaj)(efac)(ifav)(ifaj)(ifac)" +
+            "XXX{ifac}{ifaj}{ifav}{efac}{efaj}{efav}" +
+            "{iac}{iacj}{iav}{eac}{eacj}{eav}" +
+            "{iic}{iicj}{iiv}{eic}{eicj}{eiv}");
+   }
 }

Modified: projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/NotFoundInvoker.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/NotFoundInvoker.java	2009-04-26 18:47:44 UTC (rev 87845)
+++ projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/support/excluded/target/NotFoundInvoker.java	2009-04-26 19:20:01 UTC (rev 87846)
@@ -32,9 +32,6 @@
 import org.jboss.aop.proxy.container.AOPProxyFactory;
 import org.jboss.aop.proxy.container.AOPProxyFactoryParameters;
 import org.jboss.aop.proxy.container.GeneratedAOPProxyFactory;
-import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.aspects.MarkerInterface;
-import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.aspects.MixinImpl;
-import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.aspects.MixinInterface;
 import org.jboss.test.aop.classpool.jbosscl.weaving.support.excluded.interceptions.Interceptions;
 
 

Modified: projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java	2009-04-26 18:47:44 UTC (rev 87845)
+++ projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java	2009-04-26 19:20:01 UTC (rev 87846)
@@ -102,6 +102,11 @@
       runTest(CLASS_FOUND_INVOKER, new ImportModuleSetup(), new ContainerProxyInvokerSetup()); 
    }
    
+   public void testImportAllClassContainer() throws Exception
+   {
+      runTest(CLASS_FOUND_INVOKER, new ImportAllSetup(), new ClassContainerInvokerSetup());
+   }
+   
    private void deployAopXml(ClassLoader cl) throws Exception
    {
       URL aopUrl = this.getClass().getClassLoader().getResource(AOP_XML);
@@ -302,4 +307,19 @@
          m.invoke(null);
       }
    }
+
+   class ClassContainerInvokerSetup implements InvokerSetup
+   {
+      public boolean useWeaving()
+      {
+         return false;
+      }
+      
+      public void invoke(ClassPool targetPool, String invokerName) throws Exception
+      {
+         Class<?> invoker = targetPool.getClassLoader().loadClass(invokerName);
+         Method m = invoker.getMethod("invokeClassContainer");
+         m.invoke(null);
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list