[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