[jboss-cvs] JBossAS SVN: r101738 - in projects/jboss-classpool/trunk: classpool and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Mar 2 16:13:44 EST 2010


Author: flavia.rainone at jboss.com
Date: 2010-03-02 16:13:43 -0500 (Tue, 02 Mar 2010)
New Revision: 101738

Modified:
   projects/jboss-classpool/trunk/
   projects/jboss-classpool/trunk/classpool/
   projects/jboss-classpool/trunk/classpool/pom.xml
   projects/jboss-classpool/trunk/jbosscl/
   projects/jboss-classpool/trunk/jbosscl/pom.xml
   projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/ToClassInvoker.java
   projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/SupportArchives.java
   projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java
   projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
   projects/jboss-classpool/trunk/pom.xml
   projects/jboss-classpool/trunk/scopedpool/
   projects/jboss-classpool/trunk/ucl/
Log:
[JBREFLECT-98] Integrated VFS3


Property changes on: projects/jboss-classpool/trunk
___________________________________________________________________
Name: svn:ignore
   - target
.classpath
.project
.settings
bin

   + target
.classpath
.project
.settings
bin
PROFILE



Property changes on: projects/jboss-classpool/trunk/classpool
___________________________________________________________________
Name: svn:ignore
   + target


Modified: projects/jboss-classpool/trunk/classpool/pom.xml
===================================================================
--- projects/jboss-classpool/trunk/classpool/pom.xml	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/classpool/pom.xml	2010-03-02 21:13:43 UTC (rev 101738)
@@ -77,7 +77,7 @@
       <artifactId>jboss-common-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>jboss</groupId>
+      <groupId>org.jboss.test</groupId>
       <artifactId>jboss-test</artifactId>
     </dependency>
     <dependency>


Property changes on: projects/jboss-classpool/trunk/jbosscl
___________________________________________________________________
Name: svn:ignore
   + target


Modified: projects/jboss-classpool/trunk/jbosscl/pom.xml
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/pom.xml	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/jbosscl/pom.xml	2010-03-02 21:13:43 UTC (rev 101738)
@@ -75,7 +75,7 @@
       <artifactId>jboss-kernel</artifactId>
     </dependency>
     <dependency>
-      <groupId>jboss</groupId>
+      <groupId>org.jboss.test</groupId>
       <artifactId>jboss-test</artifactId>
     </dependency>
     <dependency>

Modified: projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/ToClassInvoker.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/ToClassInvoker.java	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/ToClassInvoker.java	2010-03-02 21:13:43 UTC (rev 101738)
@@ -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;
 
 /**
  * 
@@ -79,8 +81,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/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/SupportArchives.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/SupportArchives.java	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/SupportArchives.java	2010-03-02 21:13:43 UTC (rev 101738)
@@ -114,6 +114,18 @@
    public final static URL PARENT_JAR_URL = getURL(PARENT_JAR);
    public final static URL CHILD_JAR_URL = getURL(CHILD_JAR);
    
+   private static final URL[] ALL_ARCHIVES = new URL[]{JAR_A_URL, JAR_B_URL, JAR_C_URL,
+      JAR_D_URL, SIMPLE_JAR_URL, SIMPLE_SAR_URL, EJB_JAR_URL, getURL(SIMPLE_WAR),
+      getURL(SIMPLE_EAR), SIMPLE_EAR_WAR1_URL, SIMPLE_EAR_WAR2_URL, getURL(TOP_EAR),
+      getURL(WAR_IN_EAR), WAR_IN_EAR_WAR_URL, getURL(JAR_IN_EAR),
+      SERVLET_JAR_URL, getURL(PTD_EAR), PTD_JSF_WAR_URL, PTD_WS_WAR_URL,
+      PARENT_JAR_URL, CHILD_JAR_URL};
+   
+   public static URL[] getAllArchives()
+   {
+      return ALL_ARCHIVES;
+   }
+   
    /** Returns the relative URL to the project root */
    private static URL getURL(String relativePath)
    {

Modified: projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java	2010-03-02 21:13:43 UTC (rev 101738)
@@ -21,7 +21,7 @@
  */ 
 package org.jboss.test.classpool.jbosscl.support;
 
-import java.io.IOException;
+import java.io.Closeable;
 import java.net.URI;
 import java.net.URL;
 import java.util.HashMap;
@@ -29,13 +29,16 @@
 import java.util.ListIterator;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.concurrent.Executors;
 
 import org.jboss.classloading.spi.vfs.dependency.VFSClassLoaderPolicyModule;
 import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
 import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
 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;
 
 /**
  * VFSClassLoaderPolicyModule used by tests.
@@ -52,6 +55,7 @@
    /** In AS we need a URL to create the temporary files */
    URL dynamicClassRoot;
    VirtualFile classes;
+   Closeable tempDirectoryHandle;
    private List<String> excludedRoots;
    
    public TestVFSClassLoaderPolicyModule(VFSClassLoaderFactory classLoadingMetaData, String contextName)
@@ -60,6 +64,14 @@
       super(classLoadingMetaData, contextName);
    }
    
+
+   @Override
+   public void reset()
+   {
+      super.reset();
+      VFSUtils.safeClose(tempDirectoryHandle);
+   }
+   
    public void setExcludedRoots(List<String> excludedRoots)
    {
       this.excludedRoots = excludedRoots;
@@ -141,7 +153,7 @@
          try
          {
             URI uri = new URI(root);
-            vfsRoots[i] = getVirtualFile(uri);
+            vfsRoots[i] = VFS.getChild(uri);
          }
          catch (RuntimeException e)
          {
@@ -161,8 +173,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)
          {
@@ -225,21 +238,15 @@
          {
             int archiveIndex = path.indexOf('.');
             int lastSlash = archiveIndex > 0? path.indexOf('/', archiveIndex): -1;
-            try
+            if (lastSlash > 0)
             {
-               if (lastSlash > 0)
-               {
-                  file = file.getChild(path.substring(0, lastSlash));
-                  path = path.substring(lastSlash + 1);
-               }
-               else
-               {
-                  file = file.getChild(path);
-                  path = null;
-               }
-            } catch (IOException e)
+               file = file.getChild(path.substring(0, lastSlash));
+               path = path.substring(lastSlash + 1);
+            }
+            else
             {
-               throw new RuntimeException("Can't find path " + path + " on root " + file, e);
+               file = file.getChild(path);
+               path = null;
             }
          } while(path != null);
          paths[pathIndex] = file;

Modified: projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/jbosscl/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java	2010-03-02 21:13:43 UTC (rev 101738)
@@ -21,7 +21,15 @@
  */ 
 package org.jboss.test.classpool.jbosscl.test;
 
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Set;
+import java.util.concurrent.Executors;
 
 import junit.framework.Test;
 
@@ -34,10 +42,14 @@
 import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
 import org.jboss.test.classpool.jbosscl.support.JBossCLFactory;
 import org.jboss.test.classpool.jbosscl.support.MicrocontainerFacade;
+import org.jboss.test.classpool.jbosscl.support.SupportArchives;
 import org.jboss.test.classpool.support.ClassLoaderFactory;
 import org.jboss.test.classpool.support.TestScenario;
 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 JBossClDelegatingClassPools.
@@ -85,21 +97,43 @@
    
    protected abstract TestScenario<C, L, CLDeploymentBuilder> getTestScenario();
    
+   private final List<Closeable> mountHandles = new LinkedList<Closeable>();
+   
    @Override
    protected void setUp() throws Exception
    {
       super.setUp();
-      VFS.init();
+      mountJars(SupportArchives.getAllArchives());
+      mountDirs(SupportArchives.EXCLUDED_CLASSPATH_URL);
       // excluding class that knows how to load from system classloader
       Set<Class<?>> excluded = AbstractJDKChecker.getExcluded();
       excluded.add(TestScenario.class);
       system = (ClassLoaderSystem) getBean("ClassLoaderSystem");
       this.testScenario = getTestScenario();
    }
+   
+   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));
+      }
+   }
+   protected void mountDirs(URL... dirUrls) throws IOException, URISyntaxException
+   {
+      for(URL dirUrl : dirUrls) 
+      {
+         VirtualFile dirFile = VFS.getChild(dirUrl);
+         mountHandles.add(VFS.mountReal(new File(dirUrl.toURI()), dirFile));
+      }
+   }
 
    @Override
    protected void tearDown() throws Exception
    {
+      VFSUtils.safeClose(mountHandles);
       try
       {
          this.testScenario.destroyLoaders();

Modified: projects/jboss-classpool/trunk/pom.xml
===================================================================
--- projects/jboss-classpool/trunk/pom.xml	2010-03-02 21:07:29 UTC (rev 101737)
+++ projects/jboss-classpool/trunk/pom.xml	2010-03-02 21:13:43 UTC (rev 101738)
@@ -28,15 +28,15 @@
   <properties>
     <version.javassist>3.11.0.GA</version.javassist>
     <version.org.jboss.common>2.2.17.GA</version.org.jboss.common>
-    <version.org.jboss.logging>2.1.1.GA</version.org.jboss.logging>
-    <version.org.jboss.mdr>2.0.2.GA</version.org.jboss.mdr>
+    <version.org.jboss.logging>2.2.0.CR1</version.org.jboss.logging>
+    <version.org.jboss.mdr>2.2.0.Alpha1</version.org.jboss.mdr>
     <version.org.jboss.jmx>6.0.0.M1</version.org.jboss.jmx>
-    <version.org.jboss.vfs>2.2.0.Alpha2</version.org.jboss.vfs>
+    <version.org.jboss.vfs>3.0.0.CR1</version.org.jboss.vfs>
     <version.org.jboss.man>2.1.1.SP1</version.org.jboss.man>
-    <version.org.jboss.cl>2.0.8.GA</version.org.jboss.cl>
-    <version.org.jboss.kernel>2.2.0.Alpha5</version.org.jboss.kernel>
-    <version.org.jboss.deployers>2.0.9.GA</version.org.jboss.deployers>
-    <version.org.jboss.test>1.0.5.GA</version.org.jboss.test>
+    <version.org.jboss.cl>2.2.0.Alpha3</version.org.jboss.cl>
+    <version.org.jboss.kernel>2.2.0.Alpha7</version.org.jboss.kernel>
+    <version.org.jboss.deployers>2.2.0.Alpha3</version.org.jboss.deployers>
+    <version.org.jboss.test>1.1.1.GA</version.org.jboss.test>
     <version.junit>3.8</version.junit>
     <version.jaxb>2.1.9</version.jaxb>
   </properties>
@@ -281,7 +281,7 @@
       <scope>test</scope>    
     </dependency>
     <dependency>
-      <groupId>jboss</groupId>
+      <groupId>org.jboss.test</groupId>
       <artifactId>jboss-test</artifactId>
       <version>${version.org.jboss.test}</version>
       <scope>test</scope>    


Property changes on: projects/jboss-classpool/trunk/scopedpool
___________________________________________________________________
Name: svn:ignore
   + target



Property changes on: projects/jboss-classpool/trunk/ucl
___________________________________________________________________
Name: svn:ignore
   + target





More information about the jboss-cvs-commits mailing list