[jboss-cvs] JBossAS SVN: r103309 - in projects/jboss-reflect/trunk/src: main/java/org/jboss/reflect/plugins/javassist and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 31 07:17:01 EDT 2010
Author: kabir.khan at jboss.com
Date: 2010-03-31 07:17:00 -0400 (Wed, 31 Mar 2010)
New Revision: 103309
Modified:
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java
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
Log:
[JBREFLECT-16] Fix serialization of ClassInfo
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java 2010-03-31 09:51:34 UTC (rev 103308)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java 2010-03-31 11:17:00 UTC (rev 103309)
@@ -28,6 +28,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.jboss.reflect.plugins.introspection.IntrospectionTypeInfoFactory;
import org.jboss.reflect.spi.ClassInfo;
import org.jboss.reflect.spi.ConstructorInfo;
import org.jboss.reflect.spi.DelegateClassInfo;
@@ -710,7 +711,7 @@
protected Object readResolve()
{
- TypeInfoFactory tif = SerializationHelper.getTypeInfoFactory();
+ TypeInfoFactory tif = new IntrospectionTypeInfoFactory();
return tif.getTypeInfo(type);
}
}
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 09:51:34 UTC (rev 103308)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java 2010-03-31 11:17:00 UTC (rev 103309)
@@ -22,6 +22,7 @@
package org.jboss.reflect.plugins.javassist;
import java.io.IOException;
+import java.io.Serializable;
import java.lang.reflect.Array;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
@@ -1247,4 +1248,27 @@
}
}
+ protected Object writeReplace()
+ {
+ return new MarshalledClassInfo(getType());
+ }
+
+ public static class MarshalledClassInfo implements Serializable
+ {
+ private static final long serialVersionUID = 1L;
+
+ Class<?> type;
+
+ public MarshalledClassInfo(Class<?> type)
+ {
+ this.type = type;
+ }
+
+ protected Object readResolve()
+ {
+ TypeInfoFactory tif = new JavassistTypeInfoFactory();
+ return tif.getTypeInfo(type);
+ }
+ }
+
}
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 09:51:34 UTC (rev 103308)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/AbstractClassInfoTest.java 2010-03-31 11:17:00 UTC (rev 103309)
@@ -87,32 +87,33 @@
getLog().debug("Type: " + info.getType());
assertEquals(clazz, info.getType());
- // TODO JBREFLECT-9 fix the serialization
- if (isJavassistTestCase() == false)
+ byte[] bytes = serialize(info);
+ Object deserialized = deserialize(bytes);
+
+ assertTrue("Not the same object: " + info + " != " + deserialized, info == deserialized);
+
+ //Extra check load up the lazily loaded fields before serializing again
+ if (info instanceof ClassInfo)
{
- byte[] bytes = serialize(info);
- Object deserialized = deserialize(bytes);
-
- assertTrue("Not the same object: " + info + " != " + deserialized, info == deserialized);
-
- //Extra check load up the lazily loaded fields before serializing again
- if (info instanceof ClassInfo)
+ ClassInfo cinfo = (ClassInfo)info;
+ cinfo.getAnnotations();
+ cinfo.getDeclaredConstructors();
+ cinfo.getDeclaredMethods();
+ cinfo.getDeclaredFields();
+ cinfo.getSuperclass();
+ cinfo.getInterfaces();
+
+ if (!isJavassistTestCase() && cinfo.isArray())
{
- ClassInfo cinfo = (ClassInfo)info;
- cinfo.getAnnotations();
- cinfo.getDeclaredConstructors();
- cinfo.getDeclaredMethods();
- cinfo.getDeclaredFields();
- cinfo.getSuperclass();
- cinfo.getInterfaces();
+ //TODO JBREFLECT-1 full array support in javassist
cinfo.getGenericInterfaces();
cinfo.getGenericSuperclass();
}
+ }
- bytes = serialize(info);
- deserialized = deserialize(bytes);
- assertTrue("Not the same object: " + info + " != " + deserialized, info == deserialized);
- }
+ bytes = serialize(info);
+ deserialized = deserialize(bytes);
+ assertTrue("Not the same object: " + info + " != " + deserialized, info == deserialized);
return info;
}
More information about the jboss-cvs-commits
mailing list