[Jboss-cvs] JBossAS SVN: r56418 - in branches/MC_VDF_WORK/system-jmx: . src/tests/org/jboss/test/classloading src/tests-support/org/jboss/test/support src/tests-support/org/jboss/test/support/jar1 src/tests-support/org/jboss/test/support/jar1/simple1

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Aug 29 17:30:37 EDT 2006


Author: scott.stark at jboss.org
Date: 2006-08-29 17:30:31 -0400 (Tue, 29 Aug 2006)
New Revision: 56418

Added:
   branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/
   branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/
Removed:
   branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/simple1/
Modified:
   branches/MC_VDF_WORK/system-jmx/build-support-jars.xml
   branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/Bean1.java
   branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/ISimpleBean.java
   branches/MC_VDF_WORK/system-jmx/src/tests/org/jboss/test/classloading/UCLDomainClassLoaderTest.java
Log:
Segment the support classes into packages that match their jar

Modified: branches/MC_VDF_WORK/system-jmx/build-support-jars.xml
===================================================================
--- branches/MC_VDF_WORK/system-jmx/build-support-jars.xml	2006-08-29 21:29:13 UTC (rev 56417)
+++ branches/MC_VDF_WORK/system-jmx/build-support-jars.xml	2006-08-29 21:30:31 UTC (rev 56418)
@@ -4,7 +4,7 @@
    <property name="build.test.lib" value="output/test-lib" />
 
     <target name="jars" description="Build the tests-support tree jars"
-        depends="simple1.jar" />
+        depends="jar1.jar" />
 
     <macrodef name="build-test-jar" description="build a jar from a name patter">
         <attribute name="name" description="Basename for jar/package" />
@@ -18,7 +18,7 @@
         </sequential>
     </macrodef>
 
-    <target name="simple1.jar">
-        <build-test-jar name="simple1" />
+    <target name="jar1.jar">
+        <build-test-jar name="jar1" />
     </target>
 </project>
\ No newline at end of file

Modified: branches/MC_VDF_WORK/system-jmx/src/tests/org/jboss/test/classloading/UCLDomainClassLoaderTest.java
===================================================================
--- branches/MC_VDF_WORK/system-jmx/src/tests/org/jboss/test/classloading/UCLDomainClassLoaderTest.java	2006-08-29 21:29:13 UTC (rev 56417)
+++ branches/MC_VDF_WORK/system-jmx/src/tests/org/jboss/test/classloading/UCLDomainClassLoaderTest.java	2006-08-29 21:30:31 UTC (rev 56418)
@@ -22,6 +22,8 @@
 package org.jboss.test.classloading;
 
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
 
 import org.jboss.test.AbstractSystemTest;
 import org.jboss.mx.loading.DomainClassLoaderUCLImpl;
@@ -42,13 +44,13 @@
    }
 
    /**
-    * Test that classes in 
+    * Basic test of loading classes from /simple1.jar
     * @throws Exception
     */
    public void testSimple1Jar()
       throws Exception
    {
-      String beanClassName = "org.jboss.test.support.simple1.Bean1";
+      String beanClassName = "org.jboss.test.support.jar1.simple1.Bean1";
       // Assert that Bean1 is not visible to this test class loader
       ClassLoader tcl = Thread.currentThread().getContextClassLoader();
       try
@@ -60,14 +62,58 @@
       {
       }
 
-      URL simple1Jar = super.getResource("/simple1.jar");
-      assertNotNull("simple1.jar", simple1Jar);
-      getLog().info("Using simple1.jar: "+simple1Jar);
-      DomainClassLoaderUCLImpl loader = new DomainClassLoaderUCLImpl(simple1Jar);
       UnifiedLoaderRepositoryDCL repository = new UnifiedLoaderRepositoryDCL();
-      repository.addClassLoader(loader);
+      URL[] cp = buildClasspath("/jar1.jar");
+      getLog().info("Using classpath: "+Arrays.asList(cp));
+      DomainClassLoaderUCLImpl loader = new DomainClassLoaderUCLImpl(cp, repository);
       Class beanClass = repository.loadClass(beanClassName);
       assertNotNull(beanClass);
       getLog().info(beanClass+", PD: "+beanClass.getProtectionDomain());
    }
+
+   /**
+    * Basic test of loading classes in /simple2.jar which has a Class-Path
+    * manifest entry pointing to /simple1.jar
+    *  
+    * @throws Exception
+    */
+   public void testSimple2JarWithManifestCP()
+      throws Exception
+   {
+      String beanClassName = "org.jboss.test.support.jar1.simple1.Bean1";
+      // Assert that Bean1 is not visible to this test class loader
+      ClassLoader tcl = Thread.currentThread().getContextClassLoader();
+      try
+      {
+         Class beanClass = tcl.loadClass(beanClassName);
+         fail("Was able to find "+beanClassName+", "+beanClass.getProtectionDomain());
+      }
+      catch(ClassNotFoundException e)
+      {
+      }
+
+      UnifiedLoaderRepositoryDCL repository = new UnifiedLoaderRepositoryDCL();
+      URL[] cp = buildClasspath("/jar1.jar");
+      getLog().info("Using classpath: "+Arrays.asList(cp));
+      DomainClassLoaderUCLImpl loader = new DomainClassLoaderUCLImpl(cp, repository);
+      Class beanClass = repository.loadClass(beanClassName);
+      assertNotNull(beanClass);
+      getLog().info(beanClass+", PD: "+beanClass.getProtectionDomain());
+   }
+
+   private URL[] buildClasspath(String... jars)
+   {
+      ArrayList<URL> cp = new ArrayList<URL>();
+      for(String jar : jars)
+      {
+         // This needs to use the fully pathname syntax
+         URL jarURL = super.getResource(jar);
+         if( jarURL == null )
+            fail("Failed to find resource for jar: "+jar);
+         cp.add(jarURL);
+      }
+      URL[] tmp = new URL[cp.size()];
+      cp.toArray(tmp);
+      return tmp;
+   }
 }

Copied: branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1 (from rev 56414, branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/simple1)

Modified: branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/Bean1.java
===================================================================
--- branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/simple1/Bean1.java	2006-08-29 20:09:43 UTC (rev 56414)
+++ branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/Bean1.java	2006-08-29 21:30:31 UTC (rev 56418)
@@ -19,7 +19,7 @@
   * 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.support.simple1;
+package org.jboss.test.support.jar1.simple1;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;

Modified: branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/ISimpleBean.java
===================================================================
--- branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/simple1/ISimpleBean.java	2006-08-29 20:09:43 UTC (rev 56414)
+++ branches/MC_VDF_WORK/system-jmx/src/tests-support/org/jboss/test/support/jar1/simple1/ISimpleBean.java	2006-08-29 21:30:31 UTC (rev 56418)
@@ -1,5 +1,5 @@
 
-package org.jboss.test.support.simple1;
+package org.jboss.test.support.jar1.simple1;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;




More information about the jboss-cvs-commits mailing list