[jboss-cvs] JBossAS SVN: r101030 - in projects/jboss-cl/trunk: classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Feb 16 13:52:33 EST 2010
Author: johnbailey
Date: 2010-02-16 13:52:32 -0500 (Tue, 16 Feb 2010)
New Revision: 101030
Modified:
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/PackageVisitor.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceContext.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceVisitor.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/GeneratedClassesUnitTestCase.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ExportAllUnitTestCase.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/PackageInfoUnitTestCase.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java
projects/jboss-cl/trunk/pom.xml
Log:
[JBCL-151] - Merged VFS3 branch changes into trunk -r 94957:101022
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/PackageVisitor.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/PackageVisitor.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/PackageVisitor.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -21,17 +21,16 @@
*/
package org.jboss.classloading.plugins.vfs;
-import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.jboss.classloader.spi.filter.ClassFilter;
import org.jboss.classloading.spi.metadata.ExportAll;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VirtualFileVisitor;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.vfs.helpers.AbstractVirtualFileFilterWithAttributes;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.VirtualFileVisitor;
+import org.jboss.vfs.VisitorAttributes;
+import org.jboss.vfs.util.AbstractVirtualFileFilterWithAttributes;
/**
* Visits a virtual file system recursively
@@ -185,58 +184,51 @@
public void visit(VirtualFile file)
{
- try
+ // We only want only directories
+ if (file.isDirectory() && accepts(file))
{
- // We only want only directories
- if (file.isLeaf() == false && accepts(file))
+ boolean empty = true;
+ // Include empty directories?
+ if (exportAll == ExportAll.ALL)
+ empty = false;
+ else
{
- boolean empty = true;
- // Include empty directories?
- if (exportAll == ExportAll.ALL)
- empty = false;
- else
+ // Determine whether there is anything there
+ List<VirtualFile> children = file.getChildren();
+ if (children != null && children.isEmpty() == false)
{
- // Determine whether there is anything there
- List<VirtualFile> children = file.getChildren();
- if (children != null && children.isEmpty() == false)
+ for (VirtualFile child : children)
{
- for (VirtualFile child : children)
+ // We must have a leaf to be non-empty
+ if (child.isFile())
{
- // We must have a leaf to be non-empty
- if (child.isLeaf())
- {
- empty = false;
- break;
- }
+ empty = false;
+ break;
}
}
}
- // This looks interesting
- if (empty == false)
- {
- String path = file.getPathName();
- if (path.equals(rootPath))
- path = "";
- else if (path.startsWith(rootPathWithSlash))
- path = path.substring(rootPathWithSlash.length());
- String pkg = path.replace('/', '.');
-
- // Check for inclusions/exclusions
- if (included != null && included.matchesPackageName(pkg) == false)
- return;
- if (excluded != null && excluded.matchesPackageName(pkg))
- return;
- if (excludedExport != null && excludedExport.matchesPackageName(pkg))
- return;
-
- // Ok this is a package for export
- packages.add(pkg);
- }
}
+ // This looks interesting
+ if (empty == false)
+ {
+ String path = file.getPathName();
+ if (path.equals(rootPath))
+ path = "";
+ else if (path.startsWith(rootPathWithSlash))
+ path = path.substring(rootPathWithSlash.length());
+ String pkg = path.replace('/', '.');
+
+ // Check for inclusions/exclusions
+ if (included != null && included.matchesPackageName(pkg) == false)
+ return;
+ if (excluded != null && excluded.matchesPackageName(pkg))
+ return;
+ if (excludedExport != null && excludedExport.matchesPackageName(pkg))
+ return;
+
+ // Ok this is a package for export
+ packages.add(pkg);
+ }
}
- catch (IOException e)
- {
- throw new Error("Error visiting " + file, e);
- }
}
}
\ No newline at end of file
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceContext.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceContext.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceContext.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -26,7 +26,7 @@
import java.io.IOException;
import org.jboss.classloading.plugins.visitor.AbstractResourceContext;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.VirtualFile;
/**
* VFS resource context.
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceVisitor.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceVisitor.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/plugins/vfs/VFSResourceVisitor.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -28,10 +28,10 @@
import org.jboss.classloading.spi.visitor.ResourceContext;
import org.jboss.classloading.spi.visitor.ResourceFilter;
import org.jboss.classloading.spi.visitor.ResourceVisitor;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VirtualFileVisitor;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.vfs.helpers.AbstractVirtualFileFilterWithAttributes;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.VirtualFileVisitor;
+import org.jboss.vfs.VisitorAttributes;
+import org.jboss.vfs.util.AbstractVirtualFileFilterWithAttributes;
/**
* Visits a virtual file system recursively
@@ -244,7 +244,7 @@
try
{
// We don't want directories
- if (file.isLeaf() == false)
+ if (file.isDirectory())
return;
// Determine the resource name
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -21,8 +21,10 @@
*/
package org.jboss.classloading.spi.vfs.dependency;
+import java.io.IOException;
import java.net.URI;
import java.net.URL;
+import java.net.URISyntaxException;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -40,8 +42,9 @@
import org.jboss.classloading.spi.visitor.ResourceVisitor;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.automount.Automounter;
/**
* VFSClassLoaderPolicyModule.
@@ -60,6 +63,8 @@
/** Our cached vfs roots */
private VirtualFile[] vfsRoots;
+ private static final VirtualFile[] NO_VIRTUAL_FILES = new VirtualFile[0];
+
/**
* Create a new VFSClassLoaderPolicyModule.
*
@@ -156,7 +161,7 @@
if (roots == null)
{
- vfsRoots = new VirtualFile[0];
+ vfsRoots = NO_VIRTUAL_FILES;
}
else
{
@@ -167,14 +172,10 @@
try
{
URI uri = new URI(root);
- vfsRoots[i] = getVirtualFile(uri);
+ vfsRoots[i] = VFS.getChild(uri);
}
- catch (RuntimeException e)
+ catch (URISyntaxException e)
{
- throw e;
- }
- catch (Exception e)
- {
throw new RuntimeException("Error creating VFS file for " + root, e);
}
}
@@ -183,21 +184,6 @@
return vfsRoots;
}
- /**
- * Get virtual file for uri.
- *
- * @param uri the uri
- * @return virtual file for uri
- * @throws Exception for any error
- */
- protected VirtualFile getVirtualFile(URI uri) throws Exception
- {
- if (isCacheable())
- return VFS.getRoot(uri);
- else
- return VFS.createNewRoot(uri);
- }
-
@Override
public VFSClassLoaderPolicy getPolicy()
{
@@ -231,6 +217,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/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -28,7 +28,7 @@
import java.security.PermissionCollection;
import java.security.Policy;
import java.security.ProtectionDomain;
-import java.security.cert.Certificate;
+import java.security.CodeSigner;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -48,8 +48,8 @@
import org.jboss.classloading.spi.metadata.ExportAll;
import org.jboss.logging.Logger;
import org.jboss.util.collection.SoftValueHashMap;
-import org.jboss.virtual.VFSUtils;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.VFSUtils;
+import org.jboss.vfs.VirtualFile;
/**
* VFSClassLoaderPolicy.
@@ -113,9 +113,6 @@
@SuppressWarnings({ "unchecked", "rawtypes" })
private Map<String, VirtualFileInfo> vfsCache = Collections.synchronizedMap(new SoftValueHashMap());
- /** JBCL-64, JBVFS-77: CodeSource should use real url **/
- private boolean useRealURL = true;
-
/**
* Determine a name from the roots
*
@@ -495,26 +492,6 @@
return null;
}
- /**
- * Do we use real url.
- *
- * @return true if real url should be used
- */
- public boolean isUseRealURL()
- {
- return useRealURL;
- }
-
- /**
- * Set use real url flag.
- *
- * @param useRealURL the real url flag
- */
- public void setUseRealURL(boolean useRealURL)
- {
- this.useRealURL = useRealURL;
- }
-
@Override
// FindBugs: The Set doesn't use equals/hashCode
public void getResources(String name, Set<URL> urls) throws IOException
@@ -527,7 +504,7 @@
try
{
VirtualFile child = root.getChild(name);
- if (child != null)
+ if (child.exists())
urls.add(child.toURL());
}
catch (Exception e)
@@ -582,7 +559,7 @@
try
{
VirtualFile file = root.getChild(path);
- if (file != null)
+ if (file.exists())
{
result = new VirtualFileInfo(file, root);
vfsCache.put(path, result);
@@ -655,14 +632,14 @@
try
{
VirtualFile root = findRoot(path);
- URL codeSourceURL = isUseRealURL() ? VFSUtils.getRealURL(root) : root.toURL();
+ URL codeSourceURL = root.toURL();
if (log.isTraceEnabled())
log.trace("getProtectionDomain:className="+ className + " path="+ path + " codeSourceURL=" + codeSourceURL);
- Certificate[] certs = clazz.getCertificates();
- CodeSource cs = new CodeSource(codeSourceURL, certs);
- PermissionCollection permissions = Policy.getPolicy().getPermissions(cs);
+ final CodeSigner[] signers = clazz.getCodeSigners();
+ final CodeSource cs = new CodeSource(codeSourceURL, signers);
+ final PermissionCollection permissions = Policy.getPolicy().getPermissions(cs);
return new ProtectionDomain(cs, permissions);
}
catch (Exception e)
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VirtualFileInfo.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -1,6 +1,6 @@
package org.jboss.classloading.spi.vfs.policy;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.VirtualFile;
/**
* A cache entry in the policy that combines the entry with its associated root.
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/GeneratedClassesUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/GeneratedClassesUnitTestCase.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/GeneratedClassesUnitTestCase.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -22,9 +22,10 @@
package org.jboss.test.classloading.vfs.metadata.test;
import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
+import java.util.concurrent.Executors;
import junit.framework.Test;
@@ -38,9 +39,10 @@
import org.jboss.test.classloading.vfs.metadata.support.a.A;
import org.jboss.test.classloading.vfs.metadata.support.b.B;
import org.jboss.util.id.GUID;
-import org.jboss.virtual.MemoryFileFactory;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.plugins.context.memory.MemoryContextFactory;
+import org.jboss.vfs.TempFileProvider;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VFSUtils;
+import org.jboss.vfs.VirtualFile;
/**
* DomainUnitTestCase.
@@ -53,11 +55,11 @@
final static GeneratedClassInfo NEW_PACKAGE = new GeneratedClassInfo("newpackage.GeneratedClass");
final static GeneratedClassInfo OTHER_PACKAGE = new GeneratedClassInfo("otherpackage.GeneratedClass");
final static GeneratedClassInfo EXISTING_PACKAGE = new GeneratedClassInfo("org.jboss.test.classloading.vfs.metadata.support.a.GeneratedClass");
- static
- {
- VFS.init();
- }
+ private Closeable tempDirectoryHandle;
+ private VirtualFile tempDirectory;
+ private TempFileProvider tempFileProvider;
+
public static Test suite()
{
return suite(GeneratedClassesUnitTestCase.class);
@@ -67,7 +69,19 @@
{
super(name);
}
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ tempFileProvider = TempFileProvider.create("test", Executors.newScheduledThreadPool(2));
+ }
+ protected void tearDown() throws Exception
+ {
+ VFSUtils.safeClose(tempDirectoryHandle, tempFileProvider);
+ }
+
public void testImportAllGenerateClassInExistingPackage() throws Exception
{
runImportAllGenerateClass(EXISTING_PACKAGE, true);
@@ -86,11 +100,11 @@
private void runImportAllGenerateClass(GeneratedClassInfo info, boolean expectSuccess) throws Exception
{
ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();
- String dynamicClassRoot = getDynamicClassRoot();
+ VirtualFile dynamicClassRoot = getDynamicClassRoot();
VFSClassLoaderFactory a = new VFSClassLoaderFactory("a");
a.setImportAll(true);
a.getRoots().add(getRoot(A.class));
- a.getRoots().add(dynamicClassRoot);
+ a.getRoots().add(dynamicClassRoot.toURL().toString());
a.getCapabilities().addCapability(factory.createPackage(A.class.getPackage().getName()));
KernelDeployment depA = install(a);
@@ -138,12 +152,12 @@
}
}
- private Class<?> generateClass(ClassLoader loader, String dynamicClassRoot, GeneratedClassInfo info) throws Exception
+ private Class<?> generateClass(ClassLoader loader, VirtualFile dynamicClassRoot, GeneratedClassInfo info) throws Exception
{
- URL outputURL = new URL(dynamicClassRoot + "/" + info.getResourceName());
- MemoryContextFactory factory = MemoryContextFactory.getInstance();
- factory.putFile(outputURL, info.getClassBytes());
+ VirtualFile output = dynamicClassRoot.getChild(info.getResourceName());
+ VFSUtils.writeFile(output, info.getClassBytes());
+
if (loader instanceof RealClassLoader)
{
((RealClassLoader)loader).clearBlackList(info.getResourceName());
@@ -151,11 +165,14 @@
return loader.loadClass(info.getClassname());
}
- private String getDynamicClassRoot() throws Exception
+ private VirtualFile getDynamicClassRoot() throws Exception
{
- URL dynamicClassRoot = new URL("vfsmemory", GUID.asString(), "");
- MemoryFileFactory.createRoot(dynamicClassRoot).getRoot();
- return dynamicClassRoot.toString();
+ if(tempDirectory == null)
+ {
+ tempDirectory = VFS.getChild("/" + GUID.asString());
+ tempDirectoryHandle = VFS.mountTemp(tempDirectory, tempFileProvider);
+ }
+ return tempDirectory;
}
private static class GeneratedClassInfo
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSResourceVisitorUnitTestCase.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -48,6 +48,7 @@
import org.jboss.test.classloading.vfs.metadata.support.a.A;
import org.jboss.test.classloading.vfs.metadata.support.b.B;
import org.jboss.test.classloading.vfs.metadata.support.c.C;
+import org.jboss.vfs.VFS;
/**
* VFSResourceVisitorUnitTestCase.
@@ -309,7 +310,7 @@
}
};
- URL aURL = new URL("vfs" + System.getProperty("test.dir") + "/support/a/");
+ URL aURL = new URL(System.getProperty("test.dir") + "/support/a/");
Module module = assertModule("test:0.0.0");
module.visit(visitor, visitor.getFilter(), null, aURL);
@@ -344,8 +345,8 @@
}
};
- URL aURL = new URL("vfs" + System.getProperty("test.dir") + "/support/a/");
- URL bURL = new URL("vfs" + System.getProperty("test.dir") + "/support/b/");
+ URL aURL = new URL(System.getProperty("test.dir") + "/support/a/");
+ URL bURL = new URL(System.getProperty("test.dir") + "/support/b/");
Module module = assertModule("test:0.0.0");
module.visit(visitor, visitor.getFilter(), null, aURL, bURL);
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/JBossXBTestDelegate.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -22,9 +22,7 @@
package org.jboss.test.classloading.vfs.metadata.xml;
import java.lang.reflect.Method;
-import java.net.URL;
-import org.jboss.net.protocol.URLStreamHandlerFactory;
import org.jboss.test.AbstractTestDelegate;
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
@@ -42,9 +40,6 @@
*/
public class JBossXBTestDelegate extends AbstractTestDelegate
{
- /** Whether initialization has been done */
- private static boolean done = false;
-
/** The unmarshaller factory */
protected UnmarshallerFactory unmarshallerFactory;
@@ -52,24 +47,6 @@
protected SchemaBindingResolver defaultResolver;
/**
- * Initialize
- */
- public synchronized static void init()
- {
- if (done)
- return;
- done = true;
- URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory());
- URLStreamHandlerFactory.preload();
- String handlerPkgs = System.getProperty("java.protocol.handler.pkgs");
- if (handlerPkgs != null)
- handlerPkgs += "|org.jboss.net.protocol";
- else
- handlerPkgs = "org.jboss.net.protocol";
- System.setProperty("java.protocol.handler.pkgs", handlerPkgs);
- }
-
- /**
* Create a new JBossXBTestDelegate.
*
* @param clazz the test class
@@ -83,7 +60,6 @@
public void setUp() throws Exception
{
super.setUp();
- init();
unmarshallerFactory = UnmarshallerFactory.newInstance();
initResolver();
}
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ExportAllUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ExportAllUnitTestCase.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ExportAllUnitTestCase.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -21,7 +21,6 @@
*/
package org.jboss.test.classloading.vfs.policy.test;
-import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
@@ -39,8 +38,8 @@
import org.jboss.classloading.spi.metadata.ExportAll;
import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
import org.jboss.test.BaseTestCase;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
/**
* ExportAllUnitTestCase.
@@ -103,28 +102,16 @@
{
URL baseURL = getResource("/classloader");
assertNotNull(baseURL);
- VirtualFile base = VFS.getRoot(baseURL);
+ VirtualFile base = VFS.getChild(baseURL);
VirtualFile[] files = new VirtualFile[urls.length];
for (int i = 0; i < urls.length; ++i)
{
- try
+ files[i] = base.getChild(urls[i]);
+ if (files[i].exists() == false && i > 0)
{
- files[i] = base.getChild(urls[i]);
+ files[i] = files[0].getChild(urls[i]);
}
- catch (IOException ignored)
- {
- }
- if (files[i] == null && i > 0)
- {
- try
- {
- files[i] = files[0].getChild(urls[i]);
- }
- catch (IOException ignored)
- {
- }
- }
- if (files[i] == null)
+ if (files[i].exists() == false)
fail("Can't find " + urls[i]);
}
@@ -134,24 +121,12 @@
excludedFiles = new VirtualFile[excluded.length];
for (int i = 0; i < excluded.length; ++i)
{
- try
+ excludedFiles[i] = base.getChild(excluded[i]);
+ if (excludedFiles[i].exists() == false)
{
- excludedFiles[i] = base.getChild(excluded[i]);
+ excludedFiles[i] = files[0].getChild(excluded[i]);
}
- catch (IOException ignored)
- {
- }
- if (excludedFiles[i] == null)
- {
- try
- {
- excludedFiles[i] = files[0].getChild(excluded[i]);
- }
- catch (IOException ignored)
- {
- }
- }
- if (excludedFiles[i] == null)
+ if (excludedFiles[i].exists() == false)
fail("Can't find " + excluded[i]);
}
}
@@ -168,7 +143,7 @@
URL url = getResource(urlString);
if (url != null)
{
- files[i]= VFS.getRoot(url);
+ files[i]= VFS.getChild(url);
}
else
{
@@ -189,7 +164,7 @@
URL url = getResource(urlString);
if (url != null)
{
- excludedFiles[i]= VFS.getRoot(url);
+ excludedFiles[i]= VFS.getChild(url);
}
else
{
@@ -220,7 +195,7 @@
throws Exception
{
URL testjar1URL = getResource("/classloader/testjar1");
- VirtualFile testjar1 = VFS.getRoot(testjar1URL);
+ VirtualFile testjar1 = VFS.getChild(testjar1URL);
VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(testjar1);
policy.setExportAll(ExportAll.ALL);
@@ -233,7 +208,7 @@
throws Exception
{
URL testwar1URL = getResource("/classloader/testwar1.war");
- VirtualFile testwar1 = VFS.getRoot(testwar1URL);
+ VirtualFile testwar1 = VFS.getChild(testwar1URL);
VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(testwar1);
policy.setExportAll(ExportAll.NON_EMPTY);
policy.setImportAll(true);
@@ -381,7 +356,7 @@
throws Exception
{
URL testjar3URL = getResource("/classloader/testjar3");
- VirtualFile testjar3 = VFS.getRoot(testjar3URL);
+ VirtualFile testjar3 = VFS.getChild(testjar3URL);
VirtualFile testjar3subjar = testjar3.getChild("subjar1.jar");
assertNotNull(testjar3subjar);
VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(testjar3, testjar3subjar);
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/PackageInfoUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/PackageInfoUnitTestCase.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/PackageInfoUnitTestCase.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -21,7 +21,12 @@
*/
package org.jboss.test.classloading.vfs.policy.test;
+import java.io.Closeable;
+import java.io.IOException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -30,8 +35,10 @@
import org.jboss.classloading.spi.metadata.ExportAll;
import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
import org.jboss.test.BaseTestCase;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.TempFileProvider;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VFSUtils;
+import org.jboss.vfs.VirtualFile;
/**
* Package related tests of VFSClassLoaderPolicy
@@ -41,38 +48,67 @@
public class PackageInfoUnitTestCase extends BaseTestCase
{
+ private TempFileProvider provider;
+
public PackageInfoUnitTestCase(String name)
{
super(name);
}
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ provider = TempFileProvider.create("test", new ScheduledThreadPoolExecutor(2));
+ }
+ @Override
+ protected void tearDown() throws Exception
+ {
+ VFSUtils.safeClose(provider);
+ super.tearDown();
+ }
+
public void testCorrectPackage()
throws Exception
{
URL testear1xURL = getResource("/classloader/testear1x.ear");
- VirtualFile testear1x = VFS.getRoot(testear1xURL);
- VirtualFile jar1 = testear1x.getChild("lib/jar1.jar");
- assertNotNull(jar1);
- VirtualFile jar2 = testear1x.getChild("lib/jar2.jar");
- assertNotNull(jar2);
- VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy("testCorrectPackage", testear1x, jar2, jar1);
- policy.setExportAll(ExportAll.NON_EMPTY);
- policy.setImportAll(true);
-
- PackageInformation utilInfo = policy.getClassPackageInformation("util.Shared", "util");
- /*
- Specification-Title: testear1x.ear/lib/jar1.jar
- Specification-Version: 1.0.1.GA
- Specification-Vendor: JBoss
- Implementation-Title: JBoss [division of RedHat]
- Implementation-URL: http://www.jboss.org/
- Implementation-Version: 1.0.1.GA
- Implementation-Vendor: JBoss.org
- Implementation-Vendor-Id: http://www.jboss.org/
- */
- assertEquals("testear1x.ear/lib/jar1.jar", utilInfo.specTitle);
- assertEquals("1.0.1.GA", utilInfo.specVersion);
+ List<Closeable> mounts = new ArrayList<Closeable>();
+ try {
+ VirtualFile testear1x = mount(VFS.getChild(testear1xURL), mounts);
+
+ VirtualFile jar1 = mount(testear1x.getChild("lib/jar1.jar"), mounts);
+ assertNotNull(jar1);
+ VirtualFile jar2 = mount(testear1x.getChild("lib/jar2.jar"), mounts);
+ assertNotNull(jar2);
+ VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy("testCorrectPackage", testear1x, jar2, jar1);
+ policy.setExportAll(ExportAll.NON_EMPTY);
+ policy.setImportAll(true);
+
+ PackageInformation utilInfo = policy.getClassPackageInformation("util.Shared", "util");
+ /*
+ Specification-Title: testear1x.ear/lib/jar1.jar
+ Specification-Version: 1.0.1.GA
+ Specification-Vendor: JBoss
+ Implementation-Title: JBoss [division of RedHat]
+ Implementation-URL: http://www.jboss.org/
+ Implementation-Version: 1.0.1.GA
+ Implementation-Vendor: JBoss.org
+ Implementation-Vendor-Id: http://www.jboss.org/
+ */
+ assertEquals("testear1x.ear/lib/jar1.jar", utilInfo.specTitle);
+ assertEquals("1.0.1.GA", utilInfo.specVersion);
+ }
+ finally
+ {
+ VFSUtils.safeClose(mounts);
+ }
}
+
+ public VirtualFile mount(VirtualFile file, List<Closeable> mounts) throws IOException
+ {
+ mounts.add(VFS.mountZip(file, file, provider));
+ return file;
+ }
public static Test suite()
{
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/ShutdownUnitTestCase.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -35,8 +35,9 @@
import org.jboss.classloader.test.support.MockClassLoaderPolicy;
import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
import org.jboss.test.BaseTestCase;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.automount.Automounter;
/**
* ShutdownUnitTestCase.
@@ -46,6 +47,26 @@
*/
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();;
@@ -68,9 +89,6 @@
protected VFSClassLoaderPolicy getClassLoaderPolicy() throws Exception
{
- URL signedJarURL = getResource("/classloader/signedjar");
- VirtualFile signedJarRoot = VFS.getRoot(signedJarURL);
- VirtualFile signedJar = signedJarRoot.getChild("wstx.jar");
VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(signedJar);
return policy;
}
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/policy/test/VFSCLPolicySignedCertsUnitTestCase.java 2010-02-16 18:52:32 UTC (rev 101030)
@@ -21,9 +21,11 @@
*/
package org.jboss.test.classloading.vfs.policy.test;
+import java.io.Closeable;
import java.net.URL;
import java.security.ProtectionDomain;
import java.security.cert.Certificate;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
import junit.framework.Test;
import org.jboss.classloader.plugins.system.DefaultClassLoaderSystem;
@@ -31,8 +33,10 @@
import org.jboss.classloading.spi.metadata.ExportAll;
import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
import org.jboss.test.BaseTestCase;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.vfs.TempFileProvider;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VFSUtils;
+import org.jboss.vfs.VirtualFile;
/**
* Unit test JBCL-67
@@ -43,6 +47,8 @@
*/
public class VFSCLPolicySignedCertsUnitTestCase extends BaseTestCase
{
+ private TempFileProvider provider;
+
public VFSCLPolicySignedCertsUnitTestCase(String name)
{
super(name);
@@ -52,7 +58,20 @@
{
return suite(VFSCLPolicySignedCertsUnitTestCase.class);
}
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ provider = TempFileProvider.create("test", new ScheduledThreadPoolExecutor(2));
+ }
+ @Override
+ protected void tearDown() throws Exception
+ {
+ VFSUtils.safeClose(provider);
+ super.tearDown();
+ }
+
/**
* Ensure that wstx.jar that is loaded by the base class loader
* is able to inject the certs into the protection domain held
@@ -63,22 +82,31 @@
public void testCertificates() throws Exception
{
URL signedJarURL = getResource("/classloader/signedjar");
- VirtualFile signedJarRoot = VFS.getRoot(signedJarURL);
+ 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);
+ Closeable handle = null;
+ try
+ {
+ handle = VFS.mountZip(signedJar, signedJar, provider);
+ 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
+ {
+ VFSUtils.safeClose(handle);
+ }
}
}
\ No newline at end of file
Modified: projects/jboss-cl/trunk/pom.xml
===================================================================
--- projects/jboss-cl/trunk/pom.xml 2010-02-16 18:28:37 UTC (rev 101029)
+++ projects/jboss-cl/trunk/pom.xml 2010-02-16 18:52:32 UTC (rev 101030)
@@ -30,7 +30,7 @@
</modules>
<properties>
- <version.jboss.vfs>2.2.0.Alpha2</version.jboss.vfs>
+ <version.jboss.vfs>3.0.0.CR1</version.jboss.vfs>
<version.jboss.man>2.1.1.SP1</version.jboss.man>
<version.jboss.mdr>2.2.0.Alpha1</version.jboss.mdr>
<version.jboss.kernel>2.2.0.Alpha3</version.jboss.kernel>
More information about the jboss-cvs-commits
mailing list