[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