[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