[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