[jboss-cvs] JBossAS SVN: r99006 - in projects/aop/branches/vfs3-int: asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5 and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 4 16:27:20 EST 2010


Author: johnbailey
Date: 2010-01-04 16:27:19 -0500 (Mon, 04 Jan 2010)
New Revision: 99006

Modified:
   projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AspectDeployer.java
   projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/ToClassInvoker.java
   projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java
   projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithHierarchicalParentLoaderSanityTestCase.java
   projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithHierarchicalParentLoaderTestCase.java
   projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java
   projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java
   projects/aop/branches/vfs3-int/deployers/src/main/java/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java
   projects/aop/branches/vfs3-int/pom.xml
Log:
[JBAS-7358/JBAS-7359] - Basic VFS3 integration.

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AspectDeployer.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AspectDeployer.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/AspectDeployer.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -26,6 +26,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import javassist.bytecode.ClassFile;
@@ -38,12 +39,11 @@
 import org.jboss.deployers.spi.deployer.DeploymentStages;
 import org.jboss.deployers.vfs.spi.deployer.AbstractVFSRealDeployer;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VirtualFileFilter;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
-import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
-import org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.VirtualFileFilter;
+import org.jboss.vfs.VisitorAttributes;
+import org.jboss.vfs.util.FilterVirtualFileVisitor;
+import org.jboss.vfs.util.SuffixesExcludeFilter;
 import org.w3c.dom.Document;
 
 /**
@@ -309,7 +309,7 @@
       VisitorAttributes va = new VisitorAttributes();
       va.setLeavesOnly(true);
       ClassFileFilter filter = new ClassFileFilter();
-      SuffixesExcludeFilter noJars = new SuffixesExcludeFilter(JarUtils.getSuffixes());
+      SuffixesExcludeFilter noJars = new SuffixesExcludeFilter(Arrays.asList(".zip", ".ear", ".jar", ".rar", ".war", ".sar",".har", ".aop")); // TODO:  Where should these come from??
       va.setRecurseFilter(noJars);
       FilterVirtualFileVisitor visitor = new FilterVirtualFileVisitor(filter, va);
 
@@ -364,14 +364,7 @@
    {
       public boolean accepts(VirtualFile file)
       {
-         try
-         {
-            return file.isLeaf() && file.getName().endsWith(".class");
-         }
-         catch (IOException e)
-         {
-            throw new RuntimeException("Error visiting file: " + file.getName(), e);
-         }
+         return file.isFile() && file.getName().endsWith(".class");
       }
    }
 

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/ToClassInvoker.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/ToClassInvoker.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/main/java/org/jboss/aop/asintegration/jboss5/ToClassInvoker.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -31,7 +31,9 @@
 
 import org.jboss.classloading.spi.RealClassLoader;
 import org.jboss.logging.Logger;
-import org.jboss.virtual.plugins.context.memory.MemoryContextFactory;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VFSUtils;
+import org.jboss.vfs.VirtualFile;
 
 /**
  * @author  <a href="kabir.khan at jboss.com">Kabir Khan</a>
@@ -77,8 +79,8 @@
             out.close();
             
             byte[] classBytes = byteout.toByteArray();
-            MemoryContextFactory factory = MemoryContextFactory.getInstance();
-            factory.putFile(outputURL, classBytes);
+            VirtualFile classFile = VFS.getChild(outputURL);
+            VFSUtils.writeFile(classFile, classBytes);
 
             if (myloader instanceof RealClassLoader)
             {

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -21,13 +21,17 @@
 */ 
 package org.jboss.test.aop.classpool.jbosscl.support;
 
+import java.io.Closeable;
 import java.net.URL;
+import java.util.concurrent.Executors;
 
 import org.jboss.classloading.spi.vfs.dependency.VFSClassLoaderPolicyModule;
 import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
 import org.jboss.util.id.GUID;
-import org.jboss.virtual.MemoryFileFactory;
-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;
 
 /**
  * 
@@ -41,6 +45,7 @@
    /** In AS we need a URL to create the temporary files */
    URL dynamicClassRoot;
    VirtualFile classes;
+   Closeable tempDirectoryHandle;
 
    public TestVFSClassLoaderPolicyModule(VFSClassLoaderFactory classLoadingMetaData, String contextName)
    {
@@ -79,8 +84,9 @@
       {
          try
          {
-            dynamicClassRoot = new URL("vfsmemory", GUID.asString(), "");
-            classes = MemoryFileFactory.createRoot(dynamicClassRoot).getRoot();
+            classes = VFS.getChild("/" + GUID.asString());
+            tempDirectoryHandle = VFS.mountTemp(classes, TempFileProvider.create("classes", Executors.newScheduledThreadPool(2)));
+            dynamicClassRoot = classes.toURL();
          }
          catch (Exception e)
          {
@@ -89,4 +95,13 @@
          }
       }
    }
+
+   @Override
+   public void reset()
+   {
+      super.reset();
+      VFSUtils.safeClose(tempDirectoryHandle);
+   }
+   
+   
 }

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithHierarchicalParentLoaderSanityTestCase.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithHierarchicalParentLoaderSanityTestCase.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithHierarchicalParentLoaderSanityTestCase.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -23,9 +23,9 @@
 
 import java.net.URL;
 
+import org.jboss.classloader.plugins.filter.NothingClassFilter;
 import org.jboss.classloader.spi.ClassLoaderDomain;
 import org.jboss.classloader.spi.ParentPolicy;
-import org.jboss.classloader.spi.filter.ClassFilter;
 import org.jboss.test.aop.classpool.jbosscl.support.NoMatchClassFilter;
 
 import junit.framework.Test;
@@ -74,7 +74,7 @@
    public void testHierarchyFiltered() throws Exception
    {
       NoMatchClassFilter filter = new NoMatchClassFilter(CLASS_A);
-      runTest(ParentPolicy.BEFORE_BUT_JAVA_ONLY, new ParentPolicy(filter, ClassFilter.NOTHING), false);
+      runTest(ParentPolicy.BEFORE_BUT_JAVA_ONLY, new ParentPolicy(filter, NothingClassFilter.INSTANCE), false);
 
       assertTrue("Should have been filtered", filter.filtered);
    }

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithHierarchicalParentLoaderTestCase.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithHierarchicalParentLoaderTestCase.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithHierarchicalParentLoaderTestCase.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -25,9 +25,9 @@
 
 import javassist.ClassPool;
 
+import org.jboss.classloader.plugins.filter.NothingClassFilter;
 import org.jboss.classloader.spi.ClassLoaderDomain;
 import org.jboss.classloader.spi.ParentPolicy;
-import org.jboss.classloader.spi.filter.ClassFilter;
 import org.jboss.test.aop.classpool.jbosscl.support.NoMatchClassFilter;
 
 import junit.framework.Test;
@@ -76,7 +76,7 @@
    public void testHierarchyFiltered() throws Exception
    {
       NoMatchClassFilter filter = new NoMatchClassFilter(CLASS_A);
-      runTest(ParentPolicy.BEFORE_BUT_JAVA_ONLY, new ParentPolicy(filter, ClassFilter.NOTHING), false);
+      runTest(ParentPolicy.BEFORE_BUT_JAVA_ONLY, new ParentPolicy(filter, NothingClassFilter.INSTANCE), false);
 
       assertTrue("Should have been filtered", filter.filtered);
    }

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -21,15 +21,21 @@
 */ 
 package org.jboss.test.aop.classpool.jbosscl.test;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.net.MalformedURLException;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.WeakHashMap;
+import java.util.concurrent.Executors;
 
 import javassist.ClassPool;
 import javassist.CtClass;
@@ -43,6 +49,7 @@
 import org.jboss.aop.classpool.jbosscl.JBossClDelegatingClassPoolFactory;
 import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
 import org.jboss.classloader.plugins.filter.CombiningClassFilter;
+import org.jboss.classloader.plugins.filter.NothingClassFilter;
 import org.jboss.classloader.plugins.filter.PatternClassFilter;
 import org.jboss.classloader.spi.ClassLoaderDomain;
 import org.jboss.classloader.spi.ClassLoaderSystem;
@@ -61,7 +68,10 @@
 import org.jboss.test.aop.classpool.jbosscl.support.TestVFSClassLoaderFactory;
 import org.jboss.test.aop.classpool.jbosscl.support.TestVFSClassLoaderFactoryFactory;
 import org.jboss.test.kernel.junit.MicrocontainerTest;
-import org.jboss.virtual.VFS;
+import org.jboss.vfs.TempFileProvider;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VFSUtils;
+import org.jboss.vfs.VirtualFile;
 
 /**
  * Base class for testing the new JBoss classloaders
@@ -94,6 +104,8 @@
    
    private LoaderNameDeploymentRegistry loaderNameDeploymentRegistry = new LoaderNameDeploymentRegistry();
    
+   private final List<Closeable> mountHandles = new LinkedList<Closeable>();
+   
    /** The classloader helper */
    protected static final ClassLoaderSystem system = ClassLoaderSystem.getInstance();
    private static boolean initialisedDefaultDomain;
@@ -126,7 +138,6 @@
       domainRegistry = new VFSClassLoaderDomainRegistry();
       
       AspectManager.setClassPoolFactory(new JBossClDelegatingClassPoolFactory(domainRegistry, new RegisterModuleCallback()));
-      VFS.init();
    }
 
 
@@ -141,7 +152,7 @@
          PackageClassFilter filter = new PackageClassFilter(parentPkgs);
          filter.setIncludeJava(true);
          CombiningClassFilter beforeFilter = CombiningClassFilter.create(filter, aopFilter);
-         ParentPolicy parentPolicy = new ParentPolicy(beforeFilter, ClassFilter.NOTHING);
+         ParentPolicy parentPolicy = new ParentPolicy(beforeFilter, NothingClassFilter.INSTANCE);
          
          defaultDomain.setParentPolicy(parentPolicy);
       }
@@ -196,12 +207,24 @@
       //enableTrace("org.jboss.aop.classpool");
       //enableTrace("org.jboss.aop.classpool.jbosscl");
       deploy("/org/jboss/test/aop/classpool/jbosscl/Common.xml");
+      
+      mountJars(JAR_A_1, JAR_A_2, JAR_B_1, JAR_B_2, JAR_C_1, JAR_C_2);
    }
 
+   protected void mountJars(URL... jarUrls) throws IOException, URISyntaxException
+   {
+      TempFileProvider tempFileProvider = TempFileProvider.create("test", Executors.newScheduledThreadPool(2));
+      for(URL jarUrl : jarUrls) 
+      {
+         VirtualFile jarFile = VFS.getChild(jarUrl);
+         mountHandles.add(VFS.mountZip(jarFile, jarFile, tempFileProvider));
+      }
+   }
 
    @Override
    protected void tearDown() throws Exception
    {
+      VFSUtils.safeClose(mountHandles);
       undeploy("/org/jboss/test/aop/classpool/jbosscl/Common.xml");
       super.tearDown();
    }

Modified: projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java
===================================================================
--- projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/weaving/test/WeavingTest.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -62,6 +62,13 @@
    
    protected abstract boolean invokeLightWeightAspects();
    
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      mountJars(JAR_TARGET, JAR_ASPECTS, JAR_INTERCEPTIONS);
+   }
+
    public void testImportAllWovenAspects() throws Exception
    {
       runTest(CLASS_FOUND_INVOKER, new ImportAllSetup(), new WovenInvokerSetup());

Modified: projects/aop/branches/vfs3-int/deployers/src/main/java/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java
===================================================================
--- projects/aop/branches/vfs3-int/deployers/src/main/java/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/deployers/src/main/java/org/jboss/aop/asintegration/jboss5/AOPAnnotationMetaDataParserDeployer.java	2010-01-04 21:27:19 UTC (rev 99006)
@@ -26,6 +26,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import javassist.bytecode.ClassFile;
@@ -40,12 +41,11 @@
 import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VirtualFileFilter;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
-import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
-import org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.VirtualFileFilter;
+import org.jboss.vfs.VisitorAttributes;
+import org.jboss.vfs.util.FilterVirtualFileVisitor;
+import org.jboss.vfs.util.SuffixesExcludeFilter;
 
 /**
  * Reads the annotations and converts them into AOP metadata to be deployed properly 
@@ -152,7 +152,7 @@
       VisitorAttributes va = new VisitorAttributes();
       va.setLeavesOnly(true);
       ClassFileFilter filter = new ClassFileFilter();
-      SuffixesExcludeFilter noJars = new SuffixesExcludeFilter(JarUtils.getSuffixes());
+      SuffixesExcludeFilter noJars = new SuffixesExcludeFilter(Arrays.asList(".zip", ".ear", ".jar", ".rar", ".war", ".sar",".har", ".aop")); // TODO:  Where should these come from?
       va.setRecurseFilter(noJars);
       FilterVirtualFileVisitor visitor = new FilterVirtualFileVisitor(filter, va);
 
@@ -175,14 +175,7 @@
    {
       public boolean accepts(VirtualFile file)
       {
-         try
-         {
-            return file.isLeaf() && file.getName().endsWith(".class");
-         }
-         catch (IOException e)
-         {
-            throw new RuntimeException("Error visiting file: " + file.getName(), e);
-         }
+         return file.isFile() && file.getName().endsWith(".class");
       }
    }
 }

Modified: projects/aop/branches/vfs3-int/pom.xml
===================================================================
--- projects/aop/branches/vfs3-int/pom.xml	2010-01-04 19:52:36 UTC (rev 99005)
+++ projects/aop/branches/vfs3-int/pom.xml	2010-01-04 21:27:19 UTC (rev 99006)
@@ -23,11 +23,11 @@
     <version.javassist.javassist>3.10.0.GA</version.javassist.javassist>
     <version.org.jboss.jbossas>5.1.0.GA</version.org.jboss.jbossas>
     <version.org.jboss.jboss-common-core>2.2.15.GA</version.org.jboss.jboss-common-core>
-    <version.org.jboss.cl>2.0.6.SP1</version.org.jboss.cl>
-    <version.org.jboss.deployers>2.0.8.GA</version.org.jboss.deployers>
+    <version.org.jboss.cl>2.2.0-SNAPSHOT</version.org.jboss.cl>
+    <version.org.jboss.deployers>2.2.0-SNAPSHOT</version.org.jboss.deployers>
     <version.org.jboss.integration>5.1.0.SP1</version.org.jboss.integration>
     <version.org.jboss.jboss-reflect>2.0.2.GA</version.org.jboss.jboss-reflect>
-    <version.org.jboss.jboss-vfs>2.1.3.SP1</version.org.jboss.jboss-vfs>
+    <version.org.jboss.jboss-vfs>3.0.0.CR1-SNAPSHOT</version.org.jboss.jboss-vfs>
     <version.org.jboss.microcontainer.jboss-kernel>2.0.9.GA</version.org.jboss.microcontainer.jboss-kernel>
     <version.org.jboss.logging>2.2.0.CR1</version.org.jboss.logging>
     <version.org.jboss.man>2.1.1.GA</version.org.jboss.man>




More information about the jboss-cvs-commits mailing list