[jboss-cvs] JBossAS SVN: r103331 - in projects/jboss-reflect/trunk/src: test/java/org/jboss/test/classinfo/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 31 09:46:47 EDT 2010


Author: kabir.khan at jboss.com
Date: 2010-03-31 09:46:46 -0400 (Wed, 31 Mar 2010)
New Revision: 103331

Modified:
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
   projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/AbstractClassInfoTest.java
   projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/JavassistArrayUnitTestCase.java
Log:
[JBREFLECT-1] Implement getModifiers() and get(Generic)Interfaces() for arrays in Javassist

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2010-03-31 13:45:15 UTC (rev 103330)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2010-03-31 13:46:46 UTC (rev 103331)
@@ -282,6 +282,11 @@
 
    public InterfaceInfo[] getGenericInterfaces()
    {
+      InterfaceInfo[] interfaces = getInterfaces();
+      if (interfaces == null || interfaces.length == 0)
+      {
+         genericInterfaces = null;
+      }
       if (genericInterfaces == ClassInfoImpl.UNKNOWN_INTERFACES)
       {
          InterfaceInfo[] infos = new InterfaceInfo[getInterfaces().length];

Modified: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/AbstractClassInfoTest.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/AbstractClassInfoTest.java	2010-03-31 13:45:15 UTC (rev 103330)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/AbstractClassInfoTest.java	2010-03-31 13:46:46 UTC (rev 103331)
@@ -50,6 +50,8 @@
 import org.jboss.reflect.spi.Value;
 import org.jboss.test.ContainerTest;
 
+import com.sun.mirror.declaration.Modifier;
+
 /**
  * AbstractClassInfoTest.
  * 
@@ -92,7 +94,7 @@
        
       assertTrue("Not the same object: " + info + " != " + deserialized, info == deserialized);
 
-      //Extra check load up the lazily loaded fields before serializing again
+      //Extra check, load up the lazily loaded fields before serializing again
       if (info instanceof ClassInfo)
       {
          ClassInfo cinfo = (ClassInfo)info;
@@ -102,13 +104,8 @@
          cinfo.getDeclaredFields();
          cinfo.getSuperclass();
          cinfo.getInterfaces();
-         
-         if (!isJavassistTestCase() && cinfo.isArray())
-         {
-            //TODO JBREFLECT-1 full array support in javassist
-            cinfo.getGenericInterfaces();
-            cinfo.getGenericSuperclass();
-         }
+         cinfo.getGenericInterfaces();
+         cinfo.getGenericSuperclass();
       }
 
       bytes = serialize(info);
@@ -170,9 +167,10 @@
       int expected = clazz.getModifiers();
       int actual = classInfo.getModifiers();
       getLog().debug(clazz + " modifier expected=" + expected + " actual=" + actual);
+      
       assertEquals(expected, actual);
    }
-
+   
    protected void assertPackage(Class<?> clazz, ClassInfo classInfo) throws Throwable
    {
       Package pkg = clazz.getPackage();
@@ -236,8 +234,24 @@
          actual.add(intf);
       getLog().debug(clazz + " expected interfaces=" + expected + " actual=" + actual);
       assertEquals(expected, actual);
+      
+      assertInterfacesAgainstRawReflect(clazz, classInfo);
    }
    
+   protected void assertInterfacesAgainstRawReflect(Class<?> clazz, ClassInfo classInfo) throws Throwable
+   {
+      //Check the interfaces against raw reflect
+      Set<String> interfaceNames = new HashSet<String>();
+      for (Class<?> c : clazz.getInterfaces())
+         interfaceNames.add(c.getName());
+      assertEquals(interfaceNames.size(), classInfo.getInterfaces().length);
+      
+      for (InterfaceInfo info : classInfo.getInterfaces())
+      {
+         assertTrue(interfaceNames.contains(info.getName()));
+      }
+   }
+   
    protected void assertDeclaredFields(Class<?> clazz, ClassInfo classInfo) throws Throwable
    {
       TypeInfoFactory factory = getTypeInfoFactory();

Modified: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/JavassistArrayUnitTestCase.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/JavassistArrayUnitTestCase.java	2010-03-31 13:45:15 UTC (rev 103330)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/JavassistArrayUnitTestCase.java	2010-03-31 13:46:46 UTC (rev 103331)
@@ -24,7 +24,6 @@
 import junit.framework.Test;
 
 import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory;
-import org.jboss.reflect.spi.ClassInfo;
 import org.jboss.reflect.spi.PackageInfo;
 import org.jboss.reflect.spi.TypeInfoFactory;
 
@@ -45,20 +44,10 @@
    {
       return suite(JavassistArrayUnitTestCase.class);
    }
-
-   protected void assertInterfaces(Class<?> clazz, ClassInfo classInfo) throws Throwable
-   {
-      // TODO JBREFLECT-1 this is broken for javassist
-   }
-
-   protected void assertModifiers(Class<?> clazz, ClassInfo classInfo) throws Throwable
-   {
-      // TODO JBREFLECT-1 this is broken for javassist
-   }
    
    protected void assertNullPackageInfo(PackageInfo packageInfo)
    {
-      // TODO JBREFLECT-1 this is broken for javassist
+      // TODO JBREFLECT-113 this is broken for javassist
    }
 
    protected TypeInfoFactory getTypeInfoFactory()




More information about the jboss-cvs-commits mailing list