[jboss-cvs] JBossAS SVN: r96663 - in projects/jboss-deployers/trunk/deployers-vfs/src/test: java/org/jboss/test/deployers/vfs/reflect/test and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 20 15:40:55 EST 2009
Author: flavia.rainone at jboss.com
Date: 2009-11-20 15:40:55 -0500 (Fri, 20 Nov 2009)
New Revision: 96663
Modified:
projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/support/PoolFactoryInitializer.java
projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTest.java
projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.java
projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTestCase.xml
projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.xml
Log:
[JBDEPLOY-216] Filled in the tests and adapted them to work with the new spi of jboss-classpool.
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/support/PoolFactoryInitializer.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/support/PoolFactoryInitializer.java 2009-11-20 20:34:51 UTC (rev 96662)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/support/PoolFactoryInitializer.java 2009-11-20 20:40:55 UTC (rev 96663)
@@ -21,30 +21,31 @@
*/
package org.jboss.test.deployers.vfs.reflect.support;
-import javassist.scopedpool.ScopedClassPoolFactory;
-import org.jboss.classpool.spi.ClassPoolRepository;
+import javassist.scopedpool.ScopedClassPoolRepository;
+
+import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
import org.jboss.reflect.plugins.javassist.classpool.ClassPoolFactory;
+import org.jboss.reflect.plugins.javassist.classpool.DefaultClassPoolFactory;
import org.jboss.reflect.plugins.javassist.classpool.RepositoryClassPoolFactory;
-import org.jboss.reflect.plugins.javassist.classpool.DefaultClassPoolFactory;
-import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
/**
+ * Initializes the pool factory.
+ *
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
*/
public class PoolFactoryInitializer
{
- private ScopedClassPoolFactory poolFactory;
-
- public PoolFactoryInitializer(ScopedClassPoolFactory poolFactory)
+ private ScopedClassPoolRepository poolRepository;
+
+ public PoolFactoryInitializer(ScopedClassPoolRepository repository)
{
- this.poolFactory = poolFactory;
+ this.poolRepository = repository;
}
public void start()
{
- ClassPoolRepository repository = ClassPoolRepository.getInstance();
- repository.setClassPoolFactory(poolFactory);
- ClassPoolFactory classPoolFactory = new RepositoryClassPoolFactory(repository);
+ ClassPoolFactory classPoolFactory = new RepositoryClassPoolFactory(poolRepository);
JavassistTypeInfoFactoryImpl.setPoolFactory(classPoolFactory);
}
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTest.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTest.java 2009-11-20 20:34:51 UTC (rev 96662)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTest.java 2009-11-20 20:40:55 UTC (rev 96663)
@@ -26,13 +26,14 @@
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
-import org.jboss.classpool.spi.ClassPoolRepository;
+import javassist.scopedpool.ScopedClassPoolRepository;
+
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory;
import org.jboss.reflect.spi.TypeInfoFactory;
+import org.jboss.test.deployers.vfs.reflect.support.jar.PlainJavaBean;
+import org.jboss.test.deployers.vfs.reflect.support.web.AnyServlet;
import org.jboss.virtual.VirtualFile;
-import org.jboss.test.deployers.vfs.reflect.support.web.AnyServlet;
-import org.jboss.test.deployers.vfs.reflect.support.jar.PlainJavaBean;
/**
* Abstract test for ClassPool.
@@ -44,11 +45,21 @@
*/
public abstract class ClassPoolTest extends ReflectTest
{
+ protected ScopedClassPoolRepository classPoolRepository = null;
+
protected ClassPoolTest(String name)
{
super(name);
}
+ @Override
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ classPoolRepository = (ScopedClassPoolRepository) this.getBean("ClassPoolRepository");
+ assertNotNull(classPoolRepository);
+ }
+
protected TypeInfoFactory createTypeInfoFactory()
{
return new JavassistTypeInfoFactory();
@@ -67,12 +78,12 @@
String className = clazz.getName();
// sanity check
Class<?> loadedClass = assertLoadClass(className, classLoader);
- ClassPoolRepository repository = ClassPoolRepository.getInstance();
- ClassPool classPool = repository.registerClassLoader(classLoader);
+ ClassPool classPool = classPoolRepository.registerClassLoader(classLoader);
+ assertNotNull("ClassPool for " + classLoader + " is null", classPool);
CtClass ctClass = classPool.getCtClass(className);
assertEquals(className, clazz.getName());
ClassLoader cl = ctClass.getClassPool().getClassLoader();
- assertEquals(loadedClass.getClassLoader(), cl);
+ assertEquals("Class has been loaded by the wrong class loader: " + clazz.getName(), loadedClass.getClassLoader(), cl);
}
}
finally
@@ -83,35 +94,75 @@
protected void assertSimpleHierarchy(ClassLoader topCL, ClassLoader childCL) throws Exception
{
- ClassPoolRepository repository = ClassPoolRepository.getInstance();
- ClassPool classPool = repository.registerClassLoader(childCL);
+ ClassPool classPool = classPoolRepository.registerClassLoader(childCL);
CtClass ctClass = classPool.getCtClass(AnyServlet.class.getName());
CtMethod ctMethod = ctClass.getDeclaredMethod("getBean");
assertNotNull("No such 'getBean' method on " + ctClass, ctMethod);
CtClass returnCtClass = ctMethod.getReturnType();
- classPool = repository.registerClassLoader(topCL);
+ classPool = classPoolRepository.registerClassLoader(topCL);
CtClass returnCtClass2 = classPool.getCtClass(PlainJavaBean.class.getName());
assertSame(returnCtClass, returnCtClass2);
}
protected void assertNonDeploymentModule(ClassLoader cl, Class<?> anysClass) throws Exception
{
- // TODO
+ ClassPool classPool = classPoolRepository.registerClassLoader(cl);
+ CtClass asClass = classPool.getCtClass(anysClass.getName());
+ CtClass pjbClass = classPool.getCtClass(PlainJavaBean.class.getName());
+ CtClass rtClass = asClass.getDeclaredMethod("getBean").getReturnType();
+ assertEquals(pjbClass, rtClass);
}
protected void assertNonDeploymentModule(ClassLoader cl, Class<?> anysClass, Class<?> tifClass) throws Exception
{
- // TODO
+ ClassPool classPool = classPoolRepository.registerClassLoader(cl);
+ ClassPool tifClassPool = classPoolRepository.registerClassLoader(tifClass.getClassLoader());
+ ClassPool anysClassPool = classPoolRepository.registerClassLoader(anysClass.getClassLoader());
+
+ CtClass tifCtClass = tifClassPool.getCtClass(tifClass.getName());
+ CtClass tifRT = tifCtClass.getDeclaredMethod("getAnys").getReturnType();
+ CtClass asCtClass = anysClassPool.getCtClass(anysClass.getName());
+ assertEquals(tifRT, asCtClass);
+
+ CtClass pjbCtClass = classPool.getCtClass(PlainJavaBean.class.getName());
+ CtClass rtL = asCtClass.getDeclaredMethod("getBean").getReturnType();
+ assertEquals(pjbCtClass, rtL);
}
protected void assertIsolated(ClassLoader cl1, ClassLoader cl2, Class<?> clazz1, Class<?> clazz2) throws Exception
{
- // TODO
+ ClassPool classPool1 = classPoolRepository.registerClassLoader(cl1);
+ ClassPool classPool2 = classPoolRepository.registerClassLoader(cl2);
+
+ CtClass class1 = classPool1.getCtClass(PlainJavaBean.class.getName());
+ CtClass class2 = classPool2.getCtClass(PlainJavaBean.class.getName());
+ assertNotSame(class1, class2);
+
+ ClassPool classPool3 = classPoolRepository.registerClassLoader(clazz1.getClassLoader());
+ CtClass class3 = classPool3.getCtClass(clazz1.getName());
+ assertEquals(class1, class3);
+
+ ClassPool classPool4 = classPoolRepository.registerClassLoader(clazz2.getClassLoader());
+ CtClass class4 = classPool4.getCtClass(clazz2.getName());
+ assertEquals(class2, class4);
+
+ assertNotSame(class3, class4);
}
protected void assertDomainHierarchy(ClassLoader topCL, ClassLoader leftCL, ClassLoader rightCL) throws Exception
{
- // TODO
+ ClassPool topClassPool = classPoolRepository.registerClassLoader(topCL);
+ ClassPool leftClassPool = classPoolRepository.registerClassLoader(leftCL);
+ ClassPool rightClassPool = classPoolRepository.registerClassLoader(rightCL);
+ CtClass pjbClass = topClassPool.getCtClass(PlainJavaBean.class.getName());
+ CtClass asClassL = leftClassPool.getCtClass(AnyServlet.class.getName());
+ CtClass asClassR = rightClassPool.getCtClass(AnyServlet.class.getName());
+
+ CtClass rtClassL = asClassL.getDeclaredMethod("getBean").getReturnType();
+ assertEquals(pjbClass, rtClassL);
+
+ CtClass rtClassR = asClassR.getDeclaredMethod("getBean").getReturnType();
+ assertEquals(pjbClass, rtClassR);
}
}
\ No newline at end of file
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.java 2009-11-20 20:34:51 UTC (rev 96662)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.java 2009-11-20 20:40:55 UTC (rev 96663)
@@ -22,9 +22,9 @@
package org.jboss.test.deployers.vfs.reflect.test;
import junit.framework.Test;
+
import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory;
import org.jboss.reflect.spi.TypeInfoFactory;
-import org.jboss.reflect.spi.TypeInfo;
/**
* Javassist test case for TypeInfo.
@@ -49,16 +49,4 @@
{
return new JavassistTypeInfoFactory();
}
-
- // FIXME - fix isolated Classpool behavior
- // TODO - remove this once this is fixed
- protected void assertEquals(TypeInfo ti1, TypeInfo ti2)
- {
- }
- protected void assertNotEquals(TypeInfo ti1, TypeInfo ti2)
- {
- }
- protected void assertNonDeploymentModule(ClassLoader cl, Class<?> anysClass, Class<?> tifClass) throws Exception
- {
- }
}
\ No newline at end of file
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTestCase.xml
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTestCase.xml 2009-11-20 20:34:51 UTC (rev 96662)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/ClassPoolTestCase.xml 2009-11-20 20:40:55 UTC (rev 96663)
@@ -4,7 +4,9 @@
<bean name="WarStructure" class="org.jboss.test.deployers.vfs.structure.war.support.MockWarStructureDeployer"/>
<bean name="WarClassLoader" class="org.jboss.test.deployers.vfs.reflect.support.MockWarClassLoaderDeployer"/>
- <bean name="ClassLoaderScopingPolicy" class="org.jboss.classpool.plugins.as5.VFSClassLoaderDomainRegistry"/>
+ <bean name="ClassLoaderScopingPolicy" class="org.jboss.classpool.plugins.as5.VFSClassLoaderDomainRegistry">
+ <constructor factoryMethod="getInstance"/>
+ </bean>
<bean name="RegisterModuleCallback" class="org.jboss.classpool.plugins.as5.RegisterModuleCallback">
<constructor>
@@ -25,10 +27,15 @@
</constructor>
</bean>
+ <bean name="ClassPoolRepository" class="org.jboss.classpool.plugins.as5.jbosscl.JBossClDelegatingClassPoolRepository">
+ <constructor factoryMethod="getInstance"/>
+ <property name="classPoolFactory"><inject bean="ClassPoolFactory"/></property>
+ </bean>
+
<bean name="PoolFactoryInitializer" class="org.jboss.test.deployers.vfs.reflect.support.PoolFactoryInitializer">
<constructor>
- <parameter><inject bean="ClassPoolFactory"/></parameter>
+ <parameter><inject bean="ClassPoolRepository"/></parameter>
</constructor>
</bean>
-
+
</deployment>
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.xml
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.xml 2009-11-20 20:34:51 UTC (rev 96662)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/test/resources/org/jboss/test/deployers/vfs/reflect/test/JavassistTypeInfoTestCase.xml 2009-11-20 20:40:55 UTC (rev 96663)
@@ -4,7 +4,9 @@
<bean name="WarStructure" class="org.jboss.test.deployers.vfs.structure.war.support.MockWarStructureDeployer"/>
<bean name="WarClassLoader" class="org.jboss.test.deployers.vfs.reflect.support.MockWarClassLoaderDeployer"/>
- <bean name="ClassLoaderScopingPolicy" class="org.jboss.classpool.plugins.as5.VFSClassLoaderDomainRegistry"/>
+ <bean name="ClassLoaderScopingPolicy" class="org.jboss.classpool.plugins.as5.VFSClassLoaderDomainRegistry">
+ <constructor factoryMethod="getInstance"/>
+ </bean>
<bean name="RegisterModuleCallback" class="org.jboss.classpool.plugins.as5.RegisterModuleCallback">
<constructor>
@@ -25,10 +27,15 @@
</constructor>
</bean>
+ <bean name="ClassPoolRepository" class="org.jboss.classpool.plugins.as5.jbosscl.JBossClDelegatingClassPoolRepository">
+ <constructor factoryMethod="getInstance"/>
+ <property name="classPoolFactory"><inject bean="ClassPoolFactory"/></property>
+ </bean>
+
<bean name="PoolFactoryInitializer" class="org.jboss.test.deployers.vfs.reflect.support.PoolFactoryInitializer">
<constructor>
- <parameter><inject bean="ClassPoolFactory"/></parameter>
+ <parameter><inject bean="ClassPoolRepository"/></parameter>
</constructor>
</bean>
-
-</deployment>
+
+</deployment>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list