[jboss-cvs] JBossAS SVN: r59014 - in branches/Branch_4_0/testsuite: imports/sections src/main/org/jboss/test/scoped/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 13 12:52:05 EST 2006


Author: tom.elrod at jboss.com
Date: 2006-12-13 12:52:02 -0500 (Wed, 13 Dec 2006)
New Revision: 59014

Modified:
   branches/Branch_4_0/testsuite/imports/sections/scoped.xml
   branches/Branch_4_0/testsuite/src/main/org/jboss/test/scoped/test/ScopedUnitTestCase.java
Log:
JBAS-3198 - fix for pooled invoker scoped deployments class caching.

Modified: branches/Branch_4_0/testsuite/imports/sections/scoped.xml
===================================================================
--- branches/Branch_4_0/testsuite/imports/sections/scoped.xml	2006-12-13 14:14:17 UTC (rev 59013)
+++ branches/Branch_4_0/testsuite/imports/sections/scoped.xml	2006-12-13 17:52:02 UTC (rev 59014)
@@ -3,49 +3,89 @@
    <target name="_jars-scoped">
       <mkdir dir="${build.lib}"/>
 
-      <!-- build scopedA.jar -->
-      <jar destfile="${build.lib}/scopedA.jar">
+      <mkdir dir="${build.lib}/scopedA.ear"/>
+      <mkdir dir="${build.lib}/scopedA.ear/scopedA.jar"/>
+      <copy todir="${build.lib}/scopedA.ear/scopedA.jar">
          <fileset dir="${build.classes}">
             <include name="org/jboss/test/scoped/ejb/a/**"/>
             <include name="org/jboss/test/scoped/interfaces/**"/>
             <include name="org/jboss/test/util/Debug.class"/>
+            <exclude name="**/SimpleResponseDTO*"/>
          </fileset>
          <fileset dir="${build.resources}/scoped/a/ejb">
             <include name="META-INF/*.xml"/>
          </fileset>
-      </jar>
+      </copy>
 
-      <!-- build scopedB.jar -->
-      <jar destfile="${build.lib}/scopedB.jar">
+      <copy todir="${build.lib}/scopedA.ear">
+         <fileset dir="${build.resources}/scoped/a/ear">
+            <include name="META-INF/*.xml"/>
+         </fileset>
+      </copy>
+
+      <mkdir dir="${build.lib}/scopedB.ear"/>
+      <mkdir dir="${build.lib}/scopedB.ear/scopedB.jar"/>
+      <copy todir="${build.lib}/scopedB.ear/scopedB.jar">
          <fileset dir="${build.classes}">
             <include name="org/jboss/test/scoped/ejb/b/**"/>
             <include name="org/jboss/test/scoped/interfaces/**"/>
             <include name="org/jboss/test/util/Debug.class"/>
+            <exclude name="**/SimpleResponseDTO*"/>
          </fileset>
          <fileset dir="${build.resources}/scoped/b/ejb">
             <include name="META-INF/*.xml"/>
          </fileset>
-      </jar>
+      </copy>
 
-      <!-- build scopedA.ear -->
-      <jar destfile="${build.lib}/scopedA.ear">
-         <fileset dir="${build.lib}">
-            <include name="scopedA.jar"/>
-         </fileset>
-         <fileset dir="${build.resources}/scoped/a/ear">
+      <copy todir="${build.lib}/scopedB.ear">
+         <fileset dir="${build.resources}/scoped/b/ear">
             <include name="META-INF/*.xml"/>
          </fileset>
-      </jar>
+      </copy>
 
+      <!-- build scopedA.jar -->
+      <!--<jar destfile="${build.lib}/scopedA.jar">-->
+         <!--<fileset dir="${build.classes}">-->
+            <!--<include name="org/jboss/test/scoped/ejb/a/**"/>-->
+            <!--<include name="org/jboss/test/scoped/interfaces/**"/>-->
+            <!--<include name="org/jboss/test/util/Debug.class"/>-->
+         <!--</fileset>-->
+         <!--<fileset dir="${build.resources}/scoped/a/ejb">-->
+            <!--<include name="META-INF/*.xml"/>-->
+         <!--</fileset>-->
+      <!--</jar>-->
+
+      <!-- build scopedB.jar -->
+      <!--<jar destfile="${build.lib}/scopedB.jar">-->
+         <!--<fileset dir="${build.classes}">-->
+            <!--<include name="org/jboss/test/scoped/ejb/b/**"/>-->
+            <!--<include name="org/jboss/test/scoped/interfaces/**"/>-->
+            <!--<include name="org/jboss/test/util/Debug.class"/>-->
+         <!--</fileset>-->
+         <!--<fileset dir="${build.resources}/scoped/b/ejb">-->
+            <!--<include name="META-INF/*.xml"/>-->
+         <!--</fileset>-->
+      <!--</jar>-->
+
+      <!-- build scopedA.ear -->
+      <!--<jar destfile="${build.lib}/scopedA.ear">-->
+         <!--<fileset dir="${build.lib}">-->
+            <!--<include name="scopedA.jar"/>-->
+         <!--</fileset>-->
+         <!--<fileset dir="${build.resources}/scoped/a/ear">-->
+            <!--<include name="META-INF/*.xml"/>-->
+         <!--</fileset>-->
+      <!--</jar>-->
+
       <!-- build scopedB.ear -->
-      <jar destfile="${build.lib}/scopedB.ear">
-         <fileset dir="${build.lib}">
-            <include name="scopedB.jar"/>
-         </fileset>
-         <fileset dir="${build.resources}/scoped/b/ear">
-            <include name="META-INF/*.xml"/>
-         </fileset>
-      </jar>
+      <!--<jar destfile="${build.lib}/scopedB.ear">-->
+         <!--<fileset dir="${build.lib}">-->
+            <!--<include name="scopedB.jar"/>-->
+         <!--</fileset>-->
+         <!--<fileset dir="${build.resources}/scoped/b/ear">-->
+            <!--<include name="META-INF/*.xml"/>-->
+         <!--</fileset>-->
+      <!--</jar>-->
 
    </target>
 </project>

Modified: branches/Branch_4_0/testsuite/src/main/org/jboss/test/scoped/test/ScopedUnitTestCase.java
===================================================================
--- branches/Branch_4_0/testsuite/src/main/org/jboss/test/scoped/test/ScopedUnitTestCase.java	2006-12-13 14:14:17 UTC (rev 59013)
+++ branches/Branch_4_0/testsuite/src/main/org/jboss/test/scoped/test/ScopedUnitTestCase.java	2006-12-13 17:52:02 UTC (rev 59014)
@@ -31,7 +31,26 @@
 import org.jboss.test.scoped.interfaces.b.SessionB;
 
 import javax.management.Attribute;
+import java.io.File;
 
+import java.net.URL;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.framework.Test;
+
+import org.jboss.mx.loading.UnifiedLoaderRepository3;
+import org.jboss.mx.loading.RepositoryClassLoader;
+import org.jboss.test.util.ClassMover;
+import org.apache.log4j.Logger;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtField;
+import javassist.Modifier;
+
+
 /**
  * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
  */
@@ -45,6 +64,55 @@
    public void testScoped() throws Exception
    {
       isolateDeployments(Boolean.TRUE);
+
+      // have to create response classes with different serialVersionUID for each deployment
+      String jbosstestDeployDir = System.getProperty("jbosstest.deploy.dir");
+      System.out.println("jbosstestDeployDir = " + jbosstestDeployDir);
+      String deployADir = "/scopedA.ear/scopedA.jar";
+      File libDir = new File(jbosstestDeployDir, deployADir);
+      System.out.println("libDir = " + libDir.getAbsolutePath());
+      // Create a SimpleResponseDTO class with a static serialVersionUID of 1L
+      //ClassPool defaultPool = ClassPool.getDefault();
+      ClassPool classes1Pool = ClassPool.getDefault();
+      //ClassPool classes1Pool = new ClassPool(defaultPool);
+      CtClass info = classes1Pool.makeClass("org.jboss.test.scoped.interfaces.dto.SimpleResponseDTO");
+      CtClass s = classes1Pool.get("java.lang.String");
+      CtField firstName = new CtField(s, "firstName", info);
+      firstName.setModifiers(Modifier.PUBLIC);
+      CtClass s2 = classes1Pool.get("java.lang.String");
+      CtField lastName = new CtField(s2, "lastName", info);
+      lastName.setModifiers(Modifier.PUBLIC);
+      CtClass s3 = classes1Pool.get("java.lang.Long");
+      CtField serialVersion = new CtField(s3, "serialVersionUID", info);
+      serialVersion.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
+      long serialVerionUID = 1L;
+      info.addField(serialVersion, CtField.Initializer.constant(serialVerionUID));
+
+      info.writeFile(libDir.getAbsolutePath());
+
+      String deployADirB = "/scopedB.ear/scopedB.jar";
+      File libDirB = new File(jbosstestDeployDir, deployADirB);
+      System.out.println("libDirB = " + libDirB.getAbsolutePath());
+      // Create a SimpleResponseDTO class with a static serialVersionUID of 1L
+      //ClassPool defaultPool = ClassPool.getDefault();
+      ClassPool classes1PoolB = ClassPool.getDefault();
+      //ClassPool classes1Pool = new ClassPool(defaultPool);
+      CtClass infoB = classes1PoolB.makeClass("org.jboss.test.scoped.interfaces.dto.SimpleResponseDTO");
+      CtClass sB = classes1PoolB.get("java.lang.String");
+      CtField firstNameB = new CtField(sB, "firstName", infoB);
+      firstNameB.setModifiers(Modifier.PUBLIC);
+      CtClass s2B = classes1PoolB.get("java.lang.String");
+      CtField lastNameB = new CtField(s2B, "lastName", infoB);
+      lastNameB.setModifiers(Modifier.PUBLIC);
+      CtClass s3B = classes1PoolB.get("java.lang.Long");
+      CtField serialVersionB = new CtField(s3B, "serialVersionUID", infoB);
+      serialVersionB.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
+      long serialVerionUIDB = 2L;
+      infoB.addField(serialVersionB, CtField.Initializer.constant(serialVerionUIDB));
+
+      infoB.writeFile(libDirB.getAbsolutePath());
+
+
       try
       {
          deploy("scopedA.ear");
@@ -58,12 +126,12 @@
             }
             finally
             {
-               undeploy("scopedB.ear");
+               //undeploy("scopedB.ear");
             }
 
             // Run the test after a redeployment
 //            deploy("scopedB.ear");
-//            try
+//            try                     x
 //            {
 //               doTest();
 //            }
@@ -74,7 +142,7 @@
          }
          finally
          {
-            undeploy("scopedA.ear");
+            //undeploy("scopedA.ear");
          }
       }
       finally




More information about the jboss-cvs-commits mailing list