[jboss-cvs] JBossAS SVN: r85917 - in projects/jboss-reflect/trunk: src/main/java/org/jboss/reflect/plugins/javassist and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 16 07:40:26 EDT 2009
Author: stalep
Date: 2009-03-16 07:40:26 -0400 (Mon, 16 Mar 2009)
New Revision: 85917
Added:
projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistConstructorInfoTestCase.java
projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/PojoConstructor.java
Modified:
projects/jboss-reflect/trunk/.classpath
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/JavassistUtil.java
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/spi/MutableTypeInfoFactory.java
projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistBodyTestCase.java
projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistFieldInfoTestCase.java
Log:
[JBREFLECT-49]
added a few tests and cleanups
Modified: projects/jboss-reflect/trunk/.classpath
===================================================================
--- projects/jboss-reflect/trunk/.classpath 2009-03-16 11:40:09 UTC (rev 85916)
+++ projects/jboss-reflect/trunk/.classpath 2009-03-16 11:40:26 UTC (rev 85917)
@@ -1,19 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.8.1.GA/javassist-3.8.1.GA.jar" sourcepath="/HOME/jboss/cvs/javassist/src/main"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.8.GA/jboss-common-core-2.2.8.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.8.GA/jboss-common-core-2.2.8.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/profiler/jvmti/jboss-profiler-jvmti/1.0.0.CR5/jboss-profiler-jvmti-1.0.0.CR5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/jbossas/jboss-server-manager/0.1.1.GA/jboss-server-manager-0.1.1.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/test/jboss-test/1.1.1.GA/jboss-test-1.1.1.GA.jar" sourcepath="/SVN/jboss-test/src/main/java"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.8.1.GA/javassist-3.8.1.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.8.GA/jboss-common-core-2.2.8.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.8.GA/jboss-common-core-2.2.8.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/profiler/jvmti/jboss-profiler-jvmti/1.0.0.CR5/jboss-profiler-jvmti-1.0.0.CR5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/jbossas/jboss-server-manager/0.1.1.GA/jboss-server-manager-0.1.1.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/test/jboss-test/1.1.1.GA/jboss-test-1.1.1.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
+</classpath>
\ No newline at end of file
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 2009-03-16 11:40:09 UTC (rev 85916)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -756,12 +756,16 @@
{
if(constructorArray != null)
constructorArray = null;
+ if(constructors.size() > 0)
+ constructors.clear();
}
protected void clearFieldCache()
{
if(fieldArray != null)
fieldArray = null;
+ if(fields.size() > 0)
+ fields.clear();
}
public void addConstructor(MutableConstructorInfo mci)
@@ -1014,7 +1018,9 @@
if(mfi instanceof JavassistFieldInfo)
try
{
+ System.out.println("Number of fields before remove: "+ctClass.getDeclaredFields().length);
ctClass.removeField(((JavassistFieldInfo) mfi).getCtField());
+ System.out.println("Number of fields after remove: "+ctClass.getDeclaredFields().length);
clearFieldCache();
}
catch (NotFoundException e)
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java 2009-03-16 11:40:09 UTC (rev 85916)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -128,6 +128,8 @@
public static CtClass[] toCtClass(String[] names)
{
+ if(names == null)
+ return new CtClass[0];
CtClass[] classes = new CtClass[names.length];
for(int i=0; i < names.length; i++)
{
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/spi/MutableTypeInfoFactory.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/spi/MutableTypeInfoFactory.java 2009-03-16 11:40:09 UTC (rev 85916)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/spi/MutableTypeInfoFactory.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -69,7 +69,7 @@
* Note that this will not put the MutableClass in any cache
*
* @param name
- * @param cl
+ * @param cl - if cl is null, the default ClassLoader will be used.
* @return
*/
MutableClassInfo getMutable(String name, ClassLoader cl);
Modified: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistBodyTestCase.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistBodyTestCase.java 2009-03-16 11:40:09 UTC (rev 85916)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistBodyTestCase.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -23,7 +23,7 @@
import java.lang.reflect.Method;
-import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
+import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory;
import org.jboss.reflect.spi.InsertAfterJavassistBody;
import org.jboss.reflect.spi.InsertBeforeJavassistBody;
import org.jboss.reflect.spi.MutableClassInfo;
@@ -53,10 +53,10 @@
@SuppressWarnings("deprecation")
public void testBody()
{
- MutableClassInfo mci = new JavassistTypeInfoFactoryImpl().getMutable("org.jboss.test.plugins.javassist.PojoBody", null);
+ MutableClassInfo mci = new JavassistTypeInfoFactory().getMutable("org.jboss.test.plugins.javassist.PojoBody", null);
try
{
- MutableMethodInfo mmi = mci.getDeclaredMethod("foo", new TypeInfo[] {(TypeInfo) new JavassistTypeInfoFactoryImpl().get("int", Thread.currentThread().getContextClassLoader()) });
+ MutableMethodInfo mmi = mci.getDeclaredMethod("foo", new TypeInfo[] {(TypeInfo) new JavassistTypeInfoFactory().getMutable("int", null) });
System.out.println("got method: "+mmi.getName());
mmi.setBody(new InsertBeforeJavassistBody("i = 42;"));
Added: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistConstructorInfoTestCase.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistConstructorInfoTestCase.java (rev 0)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistConstructorInfoTestCase.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -0,0 +1,54 @@
+package org.jboss.test.plugins.javassist;
+
+import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
+import org.jboss.reflect.spi.ModifierInfo;
+import org.jboss.reflect.spi.MutableClassInfo;
+import org.jboss.reflect.spi.MutableConstructorInfo;
+import org.jboss.reflect.spi.MutableFieldInfo;
+import org.jboss.test.ContainerTest;
+
+public class JavassistConstructorInfoTestCase extends ContainerTest
+{
+
+ public JavassistConstructorInfoTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testAddConstructor()
+ {
+ MutableClassInfo mci = new JavassistTypeInfoFactoryImpl().getMutable("org.jboss.test.plugins.javassist.PojoConstructor", null);
+ try
+ {
+ MutableConstructorInfo intConstructor = mci.getDeclaredConstructor(new String[] {"int"});
+ assertNotNull(intConstructor);
+ }
+ catch (ClassNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+
+ MutableConstructorInfo mci1 = mci.createMutableConstructor(ModifierInfo.PUBLIC, new String[] {"java.lang.String"}, new String[0]);
+ mci.addConstructor(mci1);
+ assertEquals(3, mci.getDeclaredConstructors().length);
+ }
+
+ public void testRemoveConstructor()
+ {
+ MutableClassInfo mci = new JavassistTypeInfoFactoryImpl().getMutable("org.jboss.test.plugins.javassist.PojoConstructor", null);
+ MutableConstructorInfo constructor;
+ try
+ {
+ constructor = mci.getDeclaredConstructor(new String[] {"int"});
+ mci.removeConstructor(constructor);
+ assertEquals(2, mci.getDeclaredConstructors().length);
+
+ }
+ catch (ClassNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+
+}
Modified: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistFieldInfoTestCase.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistFieldInfoTestCase.java 2009-03-16 11:40:09 UTC (rev 85916)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/JavassistFieldInfoTestCase.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -17,8 +17,20 @@
public void testAddField()
{
MutableClassInfo mci = new JavassistTypeInfoFactoryImpl().getMutable("org.jboss.test.plugins.javassist.PojoField", null);
-
+ MutableFieldInfo foo = mci.getDeclaredField("foo");
+ assertEquals("java.lang.String", foo.getType().getName());
+ assertEquals(ModifierInfo.PUBLIC, foo.getModifiers());
MutableFieldInfo mfi1 = mci.createMutableField(ModifierInfo.PUBLIC, "java.lang.String", "test1");
+ mci.addField(mfi1);
+ assertEquals(2, mci.getDeclaredFields().length);
+ }
+
+ public void testRemoveField()
+ {
+ MutableClassInfo mci = new JavassistTypeInfoFactoryImpl().getMutable("org.jboss.test.plugins.javassist.PojoField", null);
+ MutableFieldInfo foo = mci.getDeclaredField("foo");
+ mci.removeField(foo);
+ assertEquals(1, mci.getDeclaredFields().length);
}
Added: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/PojoConstructor.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/PojoConstructor.java (rev 0)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/plugins/javassist/PojoConstructor.java 2009-03-16 11:40:26 UTC (rev 85917)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.plugins.javassist;
+
+/**
+ * A Pojo.
+ *
+ * @author <a href="mailto:stale.pedersen at jboss.org">Stale W. Pedersen</a>
+ * @version $Revision: 1.1 $
+ */
+public class PojoConstructor
+{
+
+ public String foo;
+
+ public PojoConstructor()
+ {
+ }
+
+ public PojoConstructor(int i)
+ {
+ }
+
+}
More information about the jboss-cvs-commits
mailing list