[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