[jboss-cvs] JBossAS SVN: r96175 - in projects/jboss-cl/trunk: 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:27:43 EST 2009


Author: adrian at jboss.org
Date: 2009-11-09 09:27:41 -0500 (Mon, 09 Nov 2009)
New Revision: 96175

Added:
   projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml
Modified:
   projects/jboss-cl/trunk/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd
   projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
   projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
   projects/jboss-cl/trunk/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/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2009-11-09 14:12:05 UTC (rev 96174)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2009-11-09 14:27:41 UTC (rev 96175)
@@ -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/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2009-11-09 14:12:05 UTC (rev 96174)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2009-11-09 14:27:41 UTC (rev 96175)
@@ -44,7 +44,7 @@
 
 /**
  * ManagedObjectClassLoadingMetaDataUnitTestCase.
- * 
+ *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
@@ -53,7 +53,7 @@
    private ManagedObjectFactory moFactory = ManagedObjectFactory.getInstance();
    private MetaTypeFactory mtFactory = MetaTypeFactory.getInstance();
    private MetaValueFactory mvFactory = MetaValueFactory.getInstance();
-   
+
    public static Test suite()
    {
       return suite(ManagedObjectClassLoadingMetaDataUnitTestCase.class);
@@ -63,12 +63,12 @@
    {
       super(name);
    }
-   
+
    protected ManagedObject assertManagedObject(ClassLoadingMetaData test)
    {
       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)
       {
@@ -82,7 +82,7 @@
       }
       return result;
    }
-   
+
    protected ManagedProperty assertManagedProperty(ManagedObject mo, String name, MetaType metaType, MetaValue metaValue)
    {
       ManagedProperty property = mo.getProperty(name);
@@ -91,7 +91,7 @@
       assertEquals(metaValue, property.getValue());
       return property;
    }
-   
+
    protected <T> ManagedProperty assertManagedProperty(ManagedObject mo, String name, Class<T> type, T value)
    {
       MetaType metaType = mtFactory.resolve(type);
@@ -101,7 +101,7 @@
          metaValue = mvFactory.create(value);
       return assertManagedProperty(mo, name, metaType, metaValue);
    }
-   
+
    public void testConstructor() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -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);
@@ -119,7 +120,7 @@
       assertManagedProperty(mo, "capabilities", CapabilitiesMetaData.class, new CapabilitiesMetaData());
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, new RequirementsMetaData());
    }
-   
+
    public void testSetName() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -127,7 +128,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "name", String.class, "test");
    }
-   
+
    public void testSetVersion() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -143,7 +144,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "domain", String.class, "domain");
    }
-   
+
    public void testSetParentDomain() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -151,7 +152,15 @@
       ManagedObject mo = assertManagedObject(test);
       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();
@@ -159,7 +168,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "exportAll", ExportAll.class, ExportAll.ALL);
    }
-   
+
    public void testSetIncludedPackages() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -167,7 +176,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "included", String.class, "Included");
    }
-   
+
    public void testSetExcludedPackages() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -175,7 +184,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "excluded", String.class, "Excluded");
    }
-   
+
    public void testSetExcludedExportPackages() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -183,7 +192,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "excludedExport", String.class, "ExcludedExport");
    }
-   
+
    public void testSetImportAll() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -191,7 +200,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "importAll", boolean.class, true);
    }
-   
+
    public void testJ2seClassLoadingComplaince() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -199,7 +208,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "parentFirst", boolean.class, false);
    }
-   
+
    public void testCacheable() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -207,7 +216,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "cache", boolean.class, false);
    }
-   
+
    public void testBlackList() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -215,7 +224,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "blackList", boolean.class, false);
    }
-   
+
    public void testCapabilities() throws Exception
    {
       ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();
@@ -225,7 +234,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, test.getRequirements());
    }
-   
+
    public void testRequirements() throws Exception
    {
       ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();

Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2009-11-09 14:12:05 UTC (rev 96174)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2009-11-09 14:27:41 UTC (rev 96175)
@@ -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/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml	                        (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleTopLevelClassLoader.xml	2009-11-09 14:27:41 UTC (rev 96175)
@@ -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/trunk/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd	2009-11-09 14:12:05 UTC (rev 96174)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/resources/schema/jboss-classloading-1.0.xsd	2009-11-09 14:27:41 UTC (rev 96175)
@@ -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/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2009-11-09 14:12:05 UTC (rev 96174)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2009-11-09 14:27:41 UTC (rev 96175)
@@ -46,7 +46,7 @@
 
 /**
  * ManagedObjectVFSClassLoaderFactoryUnitTestCase.
- * 
+ *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
@@ -55,7 +55,7 @@
    private ManagedObjectFactory moFactory = ManagedObjectFactory.getInstance();
    private MetaTypeFactory mtFactory = MetaTypeFactory.getInstance();
    private MetaValueFactory mvFactory = MetaValueFactory.getInstance();
-   
+
    public static Test suite()
    {
       return suite(ManagedObjectVFSClassLoaderFactoryUnitTestCase.class);
@@ -65,12 +65,12 @@
    {
       super(name);
    }
-   
+
    protected ManagedObject assertManagedObject(VFSClassLoaderFactory test)
    {
       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)
       {
@@ -84,7 +84,7 @@
       }
       return result;
    }
-   
+
    protected ManagedProperty assertManagedProperty(ManagedObject mo, String name, MetaType metaType, MetaValue metaValue)
    {
       ManagedProperty property = mo.getProperty(name);
@@ -93,7 +93,7 @@
       assertEquals(metaValue, property.getValue());
       return property;
    }
-   
+
    protected ManagedProperty assertManagedProperty(ManagedObject mo, String name, Type type, Object value)
    {
       MetaType metaType = mtFactory.resolve(type);
@@ -103,12 +103,12 @@
          metaValue = mvFactory.create(value, type);
       return assertManagedProperty(mo, name, metaType, metaValue);
    }
-   
+
    protected <T> ManagedProperty assertManagedProperty(ManagedObject mo, String name, Class<T> type, T value)
    {
       return assertManagedProperty(mo, name, (Type) type, value);
    }
-   
+
    public void testConstructor() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -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);
@@ -126,7 +127,7 @@
       assertManagedProperty(mo, "capabilities", CapabilitiesMetaData.class, new CapabilitiesMetaData());
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, new RequirementsMetaData());
    }
-   
+
    public void testSetName() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -134,7 +135,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "name", String.class, "test");
    }
-   
+
    public void testSetVersion() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -142,7 +143,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "version", Version.class, Version.parseVersion("1.0.0"));
    }
-   
+
    public void testContext() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -158,7 +159,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "domain", String.class, "domain");
    }
-   
+
    public void testSetParentDomain() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -166,7 +167,15 @@
       ManagedObject mo = assertManagedObject(test);
       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();
@@ -174,7 +183,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "exportAll", ExportAll.class, ExportAll.ALL);
    }
-   
+
    public void testSetIncludedPackages() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -182,7 +191,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "included", String.class, "Included");
    }
-   
+
    public void testSetExcludedPackages() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -190,7 +199,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "excluded", String.class, "Excluded");
    }
-   
+
    public void testSetExcludedExportPackages() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -198,7 +207,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "excludedExport", String.class, "ExcludedExport");
    }
-   
+
    public void testSetImportAll() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -206,7 +215,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "importAll", boolean.class, true);
    }
-   
+
    public void testJ2seClassLoadingComplaince() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -214,7 +223,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "parentFirst", boolean.class, false);
    }
-   
+
    public void testCacheable() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -222,7 +231,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "cache", boolean.class, false);
    }
-   
+
    public void testBlackList() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -230,7 +239,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "blackList", boolean.class, false);
    }
-   
+
    public void testSetSystem() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -238,7 +247,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "system", String.class, "test");
    }
-   
+
    public void testSetRoots() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -248,9 +257,9 @@
       Field field = getClass().getField("rootsSignature");
       assertManagedProperty(mo, "roots", field.getGenericType(), roots);
    }
-   
+
    public static List<String> rootsSignature;
-   
+
    public void testCapabilities() throws Exception
    {
       ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();
@@ -260,7 +269,7 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, test.getRequirements());
    }
-   
+
    public void testRequirements() throws Exception
    {
       ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();




More information about the jboss-cvs-commits mailing list