[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