[jboss-cvs] JBossAS SVN: r99557 - in projects/jboss-cl/branches/classloading-vfs-vfs3-int: src/main/java/org/jboss/classloading/spi/vfs/policy and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 18 15:38:24 EST 2010


Author: johnbailey
Date: 2010-01-18 15:38:24 -0500 (Mon, 18 Jan 2010)
New Revision: 99557

Modified:
   projects/jboss-cl/branches/classloading-vfs-vfs3-int/.classpath
   projects/jboss-cl/branches/classloading-vfs-vfs3-int/pom.xml
   projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
Log:
[JBAS-7360] - Merged changes from trunk -r 98009:99556

Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/.classpath
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/.classpath	2010-01-18 20:24:16 UTC (rev 99556)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/.classpath	2010-01-18 20:38:24 UTC (rev 99557)
@@ -1,9 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/tests-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/tests-classes" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/tests-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/tests-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/pom.xml
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/pom.xml	2010-01-18 20:24:16 UTC (rev 99556)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/pom.xml	2010-01-18 20:38:24 UTC (rev 99557)
@@ -23,6 +23,7 @@
     <dependency>
       <groupId>org.jboss.logging</groupId>
       <artifactId>jboss-logging-spi</artifactId>
+      <version>2.2.0.CR1</version>
     </dependency>
     
     <dependency>
@@ -38,30 +39,12 @@
           <groupId>org.jboss.cl</groupId>
           <artifactId>jboss-classloader</artifactId>
         </exclusion>
-        <exclusion>
-          <groupId>org.jboss.microcontainer</groupId>
-          <artifactId>jboss-kernel</artifactId>
-        </exclusion>
       </exclusions>
     </dependency>
 
     <dependency>
-      <groupId>org.jboss.microcontainer</groupId>
+      <groupId>org.jboss.kernel</groupId>
       <artifactId>jboss-kernel</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jboss-common-core</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>jboss</groupId>
-          <artifactId>jboss-common-logging-spi</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jboss</groupId>
-          <artifactId>jbossxb</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     
     <dependency>
@@ -103,10 +86,15 @@
         </exclusion>
       </exclusions>
     </dependency>
-    
     <dependency>
       <groupId>org.jboss</groupId>
+      <artifactId>jboss-mdr</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss</groupId>
       <artifactId>jboss-vfs</artifactId>
+      <version>3.0.0.CR1-SNAPSHOT</version>
       <exclusions>
         <exclusion>
           <groupId>org.jboss</groupId>

Modified: projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java	2010-01-18 20:24:16 UTC (rev 99556)
+++ projects/jboss-cl/branches/classloading-vfs-vfs3-int/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java	2010-01-18 20:38:24 UTC (rev 99557)
@@ -35,6 +35,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.jar.Manifest;
 
 import org.jboss.classloader.plugins.ClassLoaderUtils;
@@ -54,9 +55,12 @@
 /**
  * VFSClassLoaderPolicy.
  * 
+ * [TODO] add meaningful javadoc
+ * 
  * @author <a href="adrian at jboss.org">Adrian Brock</a> 
  * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @author <a href="anil.saldhana at jboss.org">Anil Saldhana</a>
+ * @author Thomas.Diesler at jboss.com
  * @version $Revision: 1.1 $
  */
 public class VFSClassLoaderPolicy extends ClassLoaderPolicy
@@ -76,6 +80,9 @@
    /** The roots */
    private VirtualFile[] roots;
    
+   /** The fragment roots */
+   private List<VirtualFile> fragments;
+   
    /** The excluded roots */
    private VirtualFile[] excludedRoots;
 
@@ -262,6 +269,51 @@
       return name;
    }
 
+   /**
+    * Attach a new fragment root to the policy.
+    * @param fragRoot The fragment root file
+    */
+   public void attachFragment(VirtualFile fragRoot)
+   {
+      if (fragRoot == null)
+         throw new IllegalArgumentException("Null fragment file");
+      
+      if (fragments == null)
+         fragments = new CopyOnWriteArrayList<VirtualFile>();
+      
+      fragments.add(fragRoot);
+   }
+   
+   /**
+    * Detach a fragment root from the policy.
+    * @param fragRoot The fragment root file
+    * @return true if the fragment could be detached
+    */
+   public boolean detachFragment(VirtualFile fragRoot)
+   {
+      if (fragRoot == null)
+         throw new IllegalArgumentException("Null fragment file");
+      
+      if (fragments == null)
+         return false;
+      
+      return fragments.remove(fragRoot);
+   }
+   
+   /**
+    * Get the array of attached fragment root files.
+    * @return The array of attached fragment root files or null.
+    */
+   public VirtualFile[] getFragmentRoots()
+   {
+      if (fragments == null)
+         return null;
+      
+      VirtualFile[] retarr = new VirtualFile[fragments.size()];
+      fragments.toArray(retarr);
+      return retarr;
+   }
+
    @Override
    public List<? extends DelegateLoader> getDelegates()
    {
@@ -590,6 +642,27 @@
          {
          }
       }
+      
+      if (fragments != null)
+      {
+         for (VirtualFile root : fragments)
+         {
+            try
+            {
+               VirtualFile file = root.getChild(path);
+               if (file != null)
+               {
+                  result = new VirtualFileInfo(file, root);
+                  vfsCache.put(path, result);
+                  return result;
+               }
+            }
+            catch (Exception ignored)
+            {
+            }
+         }
+      }
+      
       return null;
    }
    




More information about the jboss-cvs-commits mailing list