[jboss-cvs] JBossAS SVN: r96176 - in projects/jboss-cl/branches/Branch_2_0: classloading/src/test/java/org/jboss/test/classloading/metadata/test and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 9 09:29:37 EST 2009


Author: adrian at jboss.org
Date: 2009-11-09 09:29:36 -0500 (Mon, 09 Nov 2009)
New Revision: 96176

Added:
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml
Modified:
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
Log:
[JBCL-125] - Make subdeployment top level classloader construction explicit configuration

Modified: projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2009-11-09 14:27:41 UTC (rev 96175)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2009-11-09 14:29:36 UTC (rev 96176)
@@ -51,6 +51,9 @@
    /** The parent domain */
    private String parentDomain;
    
+   /** Whether to make a subdeployment classloader a top-level classloader */
+   private boolean topLevelClassLoader = false;
+   
    /** Whether to enforce j2se classloading compliance */
    private boolean j2seClassLoadingCompliance = true;
    
@@ -135,6 +138,28 @@
    }
 
    /**
+    * Get the topLevelClassLoader.
+    * 
+    * @return the topLevelClassLoader.
+    */
+   public boolean isTopLevelClassLoader()
+   {
+      return topLevelClassLoader;
+   }
+
+   /**
+    * Set the topLevelClassLoader.
+    * 
+    * @param topLevelClassLoader the topLevelClassLoader.
+    */
+   @ManagementProperty
+   @XmlAttribute(name="top-level-classloader")
+   public void setTopLevelClassLoader(boolean topLevelClassLoader)
+   {
+      this.topLevelClassLoader = topLevelClassLoader;
+   }
+
+   /**
     * Get the exportAll.
     * 
     * @return the exportAll.

Modified: projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2009-11-09 14:27:41 UTC (rev 96175)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2009-11-09 14:29:36 UTC (rev 96176)
@@ -68,7 +68,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements");
+      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -110,6 +110,7 @@
       assertManagedProperty(mo, "version", Version.class, Version.DEFAULT_VERSION);
       assertManagedProperty(mo, "domain", String.class, null);
       assertManagedProperty(mo, "parentDomain", String.class, null);
+      assertManagedProperty(mo, "topLevelClassLoader", boolean.class, false);
       assertManagedProperty(mo, "exportAll", ExportAll.class, null);
       assertManagedProperty(mo, "included", String.class, null);
       assertManagedProperty(mo, "excluded", String.class, null);
@@ -152,6 +153,14 @@
       assertManagedProperty(mo, "parentDomain", String.class, "parentDomain");
    }
 
+   public void testSetTopLevelClassLoader() throws Exception
+   {
+      ClassLoadingMetaData test = new ClassLoadingMetaData();
+      test.setTopLevelClassLoader(true);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "topLevelClassLoader", boolean.class, true);
+   }
+
    public void testSetExportAll() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();

Modified: projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2009-11-09 14:27:41 UTC (rev 96175)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2009-11-09 14:29:36 UTC (rev 96176)
@@ -63,6 +63,7 @@
       assertEquals(Version.DEFAULT_VERSION, result.getVersion());
       assertNull(result.getDomain());
       assertNull(result.getParentDomain());
+      assertFalse(result.isTopLevelClassLoader());
       assertNull(result.getExportAll());
       assertNull(result.getIncludedPackages());
       assertNull(result.getExcludedPackages());
@@ -93,6 +94,12 @@
       assertEquals("testParentDomain", result.getParentDomain());
    }
 
+   public void testModuleTopLevelClassLoader() throws Exception
+   {
+      ClassLoadingMetaData result = unmarshal();
+      assertTrue(result.isTopLevelClassLoader());
+   }
+
    public void testModuleExportAll() throws Exception
    {
       ClassLoadingMetaData result = unmarshal();

Added: projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml	2009-11-09 14:29:36 UTC (rev 96176)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloading xmlns="urn:jboss:classloading:1.0"
+              name="test"
+              top-level-classloader="true">
+</classloading>

Modified: projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd	2009-11-09 14:27:41 UTC (rev 96175)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd	2009-11-09 14:29:36 UTC (rev 96176)
@@ -91,6 +91,17 @@
             </xsd:documentation>
          </xsd:annotation>
       </xsd:attribute>
+      <xsd:attribute name="top-level-classloader" type="xsd:boolean" use="optional">
+         <xsd:annotation>
+            <xsd:documentation>
+               <![CDATA[
+               Whether a subdeployment classloader should be a top level classloader,
+               the default is false. This value is ignored when not specified against
+               a subdeployment.
+               ]]>
+            </xsd:documentation>
+         </xsd:annotation>
+      </xsd:attribute>
       <xsd:attribute name="parent-first" type="xsd:boolean" use="optional">
          <xsd:annotation>
             <xsd:documentation>

Modified: projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2009-11-09 14:27:41 UTC (rev 96175)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2009-11-09 14:29:36 UTC (rev 96176)
@@ -70,7 +70,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
+      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -117,6 +117,7 @@
       assertManagedProperty(mo, "version", Version.class, Version.DEFAULT_VERSION);
       assertManagedProperty(mo, "domain", String.class, null);
       assertManagedProperty(mo, "parentDomain", String.class, null);
+      assertManagedProperty(mo, "topLevelClassLoader", boolean.class, false);
       assertManagedProperty(mo, "exportAll", ExportAll.class, null);
       assertManagedProperty(mo, "included", String.class, null);
       assertManagedProperty(mo, "excluded", String.class, null);
@@ -167,6 +168,14 @@
       assertManagedProperty(mo, "parentDomain", String.class, "parentDomain");
    }
 
+   public void testSetTopLevelClassLoader() throws Exception
+   {
+      VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+      test.setTopLevelClassLoader(true);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "topLevelClassLoader", boolean.class, true);
+   }
+
    public void testSetExportAll() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();




More information about the jboss-cvs-commits mailing list