[jboss-cvs] JBossAS SVN: r99124 - in projects/jboss-cl/branches/vfs3-int/classloading-vfs/src: main/java/org/jboss/classloading/spi/vfs/policy and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jan 7 12:18:30 EST 2010
Author: johnbailey
Date: 2010-01-07 12:18:30 -0500 (Thu, 07 Jan 2010)
New Revision: 99124
Modified:
projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java
Log:
[JBAS-7360] - Update VFS3 classloading integration that properly manages archive mounting
Modified: projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-01-07 16:55:02 UTC (rev 99123)
+++ projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-01-07 17:18:30 UTC (rev 99124)
@@ -21,6 +21,7 @@
*/
package org.jboss.classloading.spi.vfs.dependency;
+import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.net.URISyntaxException;
@@ -43,6 +44,7 @@
import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
import org.jboss.vfs.VFS;
import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.automount.Automounter;
/**
* VFSClassLoaderPolicyModule.
@@ -214,6 +216,33 @@
vfsRoots = null;
}
+ /**
+ * Mounts all VFS roots when the module is created.
+ */
+ public void create()
+ {
+ final VirtualFile[] vfsRoots = determineVFSRoots();
+ for (VirtualFile root : vfsRoots)
+ {
+ try
+ {
+ Automounter.mount(this, root);
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException("Failed to mount root " + root, e);
+ }
+ }
+ }
+
+ /**
+ * Cleanup all mounts.
+ */
+ public void destroy()
+ {
+ Automounter.cleanup(this);
+ }
+
@Override
public void visit(ResourceVisitor visitor, ResourceFilter filter, ResourceFilter recurseFilter, URL... urls)
{
Modified: projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-01-07 16:55:02 UTC (rev 99123)
+++ projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-01-07 17:18:30 UTC (rev 99124)
@@ -50,7 +50,6 @@
import org.jboss.util.collection.SoftValueHashMap;
import org.jboss.vfs.VFSUtils;
import org.jboss.vfs.VirtualFile;
-import org.jboss.vfs.util.Automounter;
/**
* VFSClassLoaderPolicy.
@@ -524,7 +523,6 @@
{
try
{
- ensureMounted(root);
VirtualFile child = root.getChild(name);
if (child != null)
urls.add(child.toURL());
@@ -580,7 +578,6 @@
{
try
{
- ensureMounted(root);
VirtualFile file = root.getChild(path);
if (file.exists())
{
@@ -693,17 +690,6 @@
}
return false;
}
-
- /**
- * Temporary hack to ensure the requested root is mounted. This should be moved to any clients creating this class directly.
- *
- * @param root
- * @throws IOException
- */
- private void ensureMounted(VirtualFile root) throws IOException
- {
- Automounter.mount(root);
- }
/**
* VirtualFileInfo. */
Modified: projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java 2010-01-07 16:55:02 UTC (rev 99123)
+++ projects/jboss-cl/branches/vfs3-int/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java 2010-01-07 17:18:30 UTC (rev 99124)
@@ -33,6 +33,7 @@
import org.jboss.test.BaseTestCase;
import org.jboss.vfs.VFS;
import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.automount.Automounter;
/**
* Unit test JBCL-67
@@ -65,20 +66,28 @@
URL signedJarURL = getResource("/classloader/signedjar");
VirtualFile signedJarRoot = VFS.getChild(signedJarURL);
VirtualFile signedJar = signedJarRoot.getChild("wstx.jar");
- VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(signedJar);
- policy.setExportAll(ExportAll.ALL);
-
- ClassLoaderSystem system = new DefaultClassLoaderSystem();
- ClassLoader classLoader = system.registerClassLoaderPolicy(policy);
-
- Class<?> clazz = classLoader.loadClass("org.codehaus.stax2.validation.XMLValidator");
- assertNotNull(clazz);
- ProtectionDomain pd = clazz.getProtectionDomain();
- assertNotNull("Protection Domain is null: " + clazz , pd);
- Certificate[] certs = pd.getCodeSource().getCertificates();
- assertNotNull("Certs are null: " + pd, certs);
- assertTrue("Certs are empty.", certs.length > 0);
- //RH, thawte, thawte root CA
- assertEquals("Should be 3 certs.", 3, certs.length);
+ Automounter.mount(signedJar);
+ try
+ {
+ VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(signedJar);
+ policy.setExportAll(ExportAll.ALL);
+
+ ClassLoaderSystem system = new DefaultClassLoaderSystem();
+ ClassLoader classLoader = system.registerClassLoaderPolicy(policy);
+
+ Class<?> clazz = classLoader.loadClass("org.codehaus.stax2.validation.XMLValidator");
+ assertNotNull(clazz);
+ ProtectionDomain pd = clazz.getProtectionDomain();
+ assertNotNull("Protection Domain is null: " + clazz , pd);
+ Certificate[] certs = pd.getCodeSource().getCertificates();
+ assertNotNull("Certs are null: " + pd, certs);
+ assertTrue("Certs are empty.", certs.length > 0);
+ //RH, thawte, thawte root CA
+ assertEquals("Should be 3 certs.", 3, certs.length);
+ }
+ finally
+ {
+ Automounter.cleanup(signedJar);
+ }
}
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list