[jboss-cvs] JBossAS SVN: r100351 - in projects/jboss-cl/branches/classloading-vfs-vfs3-int/src: main/java/org/jboss/classloading/spi/vfs/policy and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 3 10:59:07 EST 2010
Author: johnbailey
Date: 2010-02-03 10:59:05 -0500 (Wed, 03 Feb 2010)
New Revision: 100351
Added:
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleShutdown.xml
Modified:
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloader-1.0.xsd
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloading-1.0.xsd
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/ClassLoadingVFSTestSuite.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java
projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java
Log:
Merged changes from trunk -r 99556:100350
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -203,6 +203,7 @@
policy.setExcludedExport(getExcludedExport());
policy.setExportAll(getExportAll());
policy.setImportAll(isImportAll());
+ policy.setShutdownPolicy(getShutdownPolicy());
policy.setCacheable(isCacheable());
policy.setBlackListable(isBlackListable());
policy.setDelegates(getDelegates());
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -35,7 +35,6 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
import java.util.jar.Manifest;
import org.jboss.classloader.plugins.ClassLoaderUtils;
@@ -80,9 +79,6 @@
/** The roots */
private VirtualFile[] roots;
- /** The fragment roots */
- private List<VirtualFile> fragments;
-
/** The excluded roots */
private VirtualFile[] excludedRoots;
@@ -114,7 +110,7 @@
private Map<String, Manifest> manifestCache = new ConcurrentHashMap<String, Manifest>();
/** Cache of virtual file information by path */
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({ "unchecked", "rawtypes" })
private Map<String, VirtualFileInfo> vfsCache = Collections.synchronizedMap(new SoftValueHashMap());
/** JBCL-64, JBVFS-77: CodeSource should use real url **/
@@ -269,51 +265,6 @@
return name;
}
- /**
- * Attach a new fragment root to the policy.
- * @param fragRoot The fragment root file
- */
- public void attachFragment(VirtualFile fragRoot)
- {
- if (fragRoot == null)
- throw new IllegalArgumentException("Null fragment file");
-
- if (fragments == null)
- fragments = new CopyOnWriteArrayList<VirtualFile>();
-
- fragments.add(fragRoot);
- }
-
- /**
- * Detach a fragment root from the policy.
- * @param fragRoot The fragment root file
- * @return true if the fragment could be detached
- */
- public boolean detachFragment(VirtualFile fragRoot)
- {
- if (fragRoot == null)
- throw new IllegalArgumentException("Null fragment file");
-
- if (fragments == null)
- return false;
-
- return fragments.remove(fragRoot);
- }
-
- /**
- * Get the array of attached fragment root files.
- * @return The array of attached fragment root files or null.
- */
- public VirtualFile[] getFragmentRoots()
- {
- if (fragments == null)
- return null;
-
- VirtualFile[] retarr = new VirtualFile[fragments.size()];
- fragments.toArray(retarr);
- return retarr;
- }
-
@Override
public List<? extends DelegateLoader> getDelegates()
{
@@ -643,26 +594,6 @@
}
}
- if (fragments != null)
- {
- for (VirtualFile root : fragments)
- {
- try
- {
- VirtualFile file = root.getChild(path);
- if (file != null)
- {
- result = new VirtualFileInfo(file, root);
- vfsCache.put(path, result);
- return result;
- }
- }
- catch (Exception ignored)
- {
- }
- }
- }
-
return null;
}
@@ -763,41 +694,4 @@
}
return false;
}
-
- /**
- * VirtualFileInfo. */
- private static class VirtualFileInfo
- {
- /** The file */
- private VirtualFile file;
-
- /** The root */
- private VirtualFile root;
-
- public VirtualFileInfo(VirtualFile file, VirtualFile root)
- {
- this.file = file;
- this.root = root;
- }
-
- /**
- * Get the file.
- *
- * @return the file.
- */
- public VirtualFile getFile()
- {
- return file;
- }
-
- /**
- * Get the root.
- *
- * @return the root.
- */
- public VirtualFile getRoot()
- {
- return root;
- }
- }
}
Copied: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java (from rev 100350, projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java)
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java (rev 0)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -0,0 +1,45 @@
+package org.jboss.classloading.spi.vfs.policy;
+
+import org.jboss.vfs.VirtualFile;
+
+/**
+ * A cache entry in the policy that combines the entry with its associated root.
+ *
+ * @author <a href="adrian at jboss.org">Adrian Brock</a>
+ * @author Thomas.Diesler at jboss.com
+ * @version $Revision: 1.1 $
+ */
+public class VirtualFileInfo
+{
+ /** The file */
+ private VirtualFile file;
+
+ /** The root */
+ private VirtualFile root;
+
+ public VirtualFileInfo(VirtualFile file, VirtualFile root)
+ {
+ this.file = file;
+ this.root = root;
+ }
+
+ /**
+ * Get the file.
+ *
+ * @return the file.
+ */
+ public VirtualFile getFile()
+ {
+ return file;
+ }
+
+ /**
+ * Get the root.
+ *
+ * @return the root.
+ */
+ public VirtualFile getRoot()
+ {
+ return root;
+ }
+}
\ No newline at end of file
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloader-1.0.xsd
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloader-1.0.xsd 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloader-1.0.xsd 2010-02-03 15:59:05 UTC (rev 100351)
@@ -145,6 +145,15 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
+ <xsd:attribute name="shutdown" type="shutdown-policy" use="optional">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ The shutdown policy for the classloader.
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
<xsd:attribute name="included" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>
@@ -383,4 +392,17 @@
</xsd:annotation>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
+
+ <xsd:simpleType name="shutdown-policy">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ When to shutdown the classloader
+ UNREGISTER - shutdown when the classloader is unregistered (the default)
+ GARBAGE_COLLECTION - shutdown at garbage collection
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
</xsd:schema>
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloading-1.0.xsd
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloading-1.0.xsd 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/resources/schema/jboss-classloading-1.0.xsd 2010-02-03 15:59:05 UTC (rev 100351)
@@ -133,6 +133,15 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
+ <xsd:attribute name="shutdown" type="shutdown-policy" use="optional">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ The shutdown policy for the classloader.
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
<xsd:attribute name="included" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>
@@ -361,4 +370,17 @@
</xsd:annotation>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
+
+ <xsd:simpleType name="shutdown-policy">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+ When to shutdown the classloader
+ UNREGISTER - shutdown when the classloader is unregistered (the default)
+ GARBAGE_COLLECTION - shutdown at garbage collection
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
</xsd:schema>
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/ClassLoadingVFSTestSuite.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/ClassLoadingVFSTestSuite.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/ClassLoadingVFSTestSuite.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -41,6 +41,7 @@
import org.jboss.test.classloading.vfs.metadata.xml.test.NoopClassLoaderFactoryXMLUnitTestCase;
import org.jboss.test.classloading.vfs.policy.test.ExportAllUnitTestCase;
import org.jboss.test.classloading.vfs.policy.test.PackageInfoUnitTestCase;
+import org.jboss.test.classloading.vfs.policy.test.ShutdownUnitTestCase;
import org.jboss.test.classloading.vfs.policy.test.VFSCLPolicySignedCertsUnitTestCase;
/**
@@ -87,6 +88,7 @@
suite.addTest(PackageInfoUnitTestCase.suite());
suite.addTest(GeneratedClassesUnitTestCase.suite());
suite.addTest(VFSCLPolicySignedCertsUnitTestCase.suite());
+ suite.addTest(ShutdownUnitTestCase.suite());
return suite;
}
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/client/support/launcher/ClientLauncher.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -100,7 +100,7 @@
*/
public void setDefaultMode(ControllerMode defaultMode)
{
- this.defaultMode = defaultMode;
+ ClientLauncher.defaultMode = defaultMode;
}
/**
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -29,6 +29,7 @@
import junit.framework.Test;
+import org.jboss.classloader.spi.ShutdownPolicy;
import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
import org.jboss.classloading.spi.metadata.ExportAll;
@@ -70,7 +71,7 @@
{
ManagedObject result = moFactory.initManagedObject(test, null, null);
assertNotNull(result);
- List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
+ List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
Set<String> actualProperties = result.getPropertyNames();
for (String expected : expectedProperties)
{
@@ -119,6 +120,7 @@
assertManagedProperty(mo, "parentDomain", String.class, null);
assertManagedProperty(mo, "topLevelClassLoader", boolean.class, false);
assertManagedProperty(mo, "exportAll", ExportAll.class, null);
+ assertManagedProperty(mo, "shutdown", ShutdownPolicy.class, null);
assertManagedProperty(mo, "included", String.class, null);
assertManagedProperty(mo, "excluded", String.class, null);
assertManagedProperty(mo, "excludedExport", String.class, null);
@@ -184,6 +186,14 @@
assertManagedProperty(mo, "exportAll", ExportAll.class, ExportAll.ALL);
}
+ public void testSetShutdownPolicy() throws Exception
+ {
+ VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+ test.setShutdownPolicy(ShutdownPolicy.GARBAGE_COLLECTION);
+ ManagedObject mo = assertManagedObject(test);
+ assertManagedProperty(mo, "shutdown", ShutdownPolicy.class, ShutdownPolicy.GARBAGE_COLLECTION);
+ }
+
public void testSetIncludedPackages() throws Exception
{
VFSClassLoaderFactory test = new VFSClassLoaderFactory();
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -64,6 +64,7 @@
initResolver();
}
+ @SuppressWarnings("unchecked")
protected void initResolver() throws Exception
{
try
Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java 2010-02-03 15:28:44 UTC (rev 100350)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -27,6 +27,7 @@
import junit.framework.Test;
+import org.jboss.classloader.spi.ShutdownPolicy;
import org.jboss.classloading.spi.metadata.Capability;
import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
import org.jboss.classloading.spi.metadata.ExportAll;
@@ -66,6 +67,7 @@
assertNull(result.getDomain());
assertNull(result.getParentDomain());
assertNull(result.getExportAll());
+ assertNull(result.getShutdownPolicy());
assertNull(result.getIncludedPackages());
assertNull(result.getExcludedPackages());
assertNull(result.getExcludedExportPackages());
@@ -109,6 +111,12 @@
assertEquals(ExportAll.ALL, result.getExportAll());
}
+ public void testModuleShutdown() throws Exception
+ {
+ VFSClassLoaderFactory result = unmarshal();
+ assertEquals(ShutdownPolicy.GARBAGE_COLLECTION, result.getShutdownPolicy());
+ }
+
public void testModuleIncluded() throws Exception
{
VFSClassLoaderFactory result = unmarshal();
Copied: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java (from rev 100350, projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java)
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java (rev 0)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java 2010-02-03 15:59:05 UTC (rev 100351)
@@ -0,0 +1,133 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2010, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* 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.classloading.vfs.policy.test;
+
+import java.net.URL;
+import java.util.Collections;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.jboss.classloader.plugins.ClassLoaderUtils;
+import org.jboss.classloader.plugins.system.DefaultClassLoaderSystem;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+import org.jboss.classloader.spi.DelegateLoader;
+import org.jboss.classloader.spi.ShutdownPolicy;
+import org.jboss.classloader.test.support.MockClassLoaderPolicy;
+import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
+import org.jboss.test.BaseTestCase;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.automount.Automounter;
+
+/**
+ * ShutdownUnitTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class ShutdownUnitTestCase extends BaseTestCase
+{
+
+ private VirtualFile signedJar;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ URL signedJarURL = getResource("/classloader/signedjar");
+ VirtualFile signedJarRoot = VFS.getChild(signedJarURL);
+ signedJar = signedJarRoot.getChild("wstx.jar");
+ Automounter.mount(signedJar);
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ Automounter.cleanup(signedJar);
+ super.tearDown();
+ }
+
+ public void testShutdownUnregisterDefault() throws Exception
+ {
+ VFSClassLoaderPolicy policy = getClassLoaderPolicy();;
+ testShutdown(policy, true);
+ }
+
+ public void testShutdownUnregister() throws Exception
+ {
+ VFSClassLoaderPolicy policy = getClassLoaderPolicy();;
+ policy.setShutdownPolicy(ShutdownPolicy.UNREGISTER);
+ testShutdown(policy, true);
+ }
+
+ public void testShutdownGC() throws Exception
+ {
+ VFSClassLoaderPolicy policy = getClassLoaderPolicy();;
+ policy.setShutdownPolicy(ShutdownPolicy.GARBAGE_COLLECTION);
+ testShutdown(policy, false);
+ }
+
+ protected VFSClassLoaderPolicy getClassLoaderPolicy() throws Exception
+ {
+ VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(signedJar);
+ return policy;
+ }
+
+ protected void testShutdown(VFSClassLoaderPolicy policy, boolean shutdownAtUnregister) throws Exception
+ {
+ ClassLoaderSystem system = new DefaultClassLoaderSystem();
+ ClassLoader classLoader = system.registerClassLoaderPolicy(policy);
+
+ Class<?> clazz = classLoader.loadClass("org.codehaus.stax2.validation.XMLValidator");
+ assertEquals(classLoader, clazz.getClassLoader());
+
+ MockClassLoaderPolicy mock = new MockClassLoaderPolicy();
+ mock.setDelegates(Collections.singletonList(new DelegateLoader(policy)));
+ ClassLoader mockCl = system.registerClassLoaderPolicy(mock);
+
+ clazz = mockCl.loadClass("org.codehaus.stax2.validation.XMLValidator");
+ assertEquals(classLoader, clazz.getClassLoader());
+
+ system.unregisterClassLoader(classLoader);
+ try
+ {
+ clazz = mockCl.loadClass("org.codehaus.stax2.validation.XMLValidator");
+ if (shutdownAtUnregister)
+ fail("Should not be here: " + ClassLoaderUtils.classToString(clazz));
+ }
+ catch (ClassNotFoundException e)
+ {
+ assertTrue("Didn't expect: " + e, shutdownAtUnregister);
+ }
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(ShutdownUnitTestCase.class);
+ }
+
+ public ShutdownUnitTestCase(String name) throws Throwable
+ {
+ super(name);
+ }
+}
Copied: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleShutdown.xml (from rev 100350, projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleShutdown.xml)
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleShutdown.xml (rev 0)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleShutdown.xml 2010-02-03 15:59:05 UTC (rev 100351)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloader xmlns="urn:jboss:classloader:1.0"
+ name="test"
+ shutdown="GARBAGE_COLLECTION">
+</classloader>
More information about the jboss-cvs-commits
mailing list