[jboss-cvs] JBossAS SVN: r99450 - in projects/jboss-cl/trunk: classloading/src/main/java/org/jboss/classloading/spi/metadata and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 15 03:54:05 EST 2010


Author: thomas.diesler at jboss.com
Date: 2010-01-15 03:54:05 -0500 (Fri, 15 Jan 2010)
New Revision: 99450

Modified:
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java
   projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
Log:
[JBCL-137] Add support for OSGi fragments

Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java	2010-01-15 08:44:25 UTC (rev 99449)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java	2010-01-15 08:54:05 UTC (rev 99450)
@@ -59,6 +59,8 @@
 
 /**
  * BaseClassLoader.
+ * 
+ * [TODO] Add meaningful javadoc
  *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2010-01-15 08:44:25 UTC (rev 99449)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2010-01-15 08:54:05 UTC (rev 99450)
@@ -36,6 +36,8 @@
 /**
  * ClassLoadingMetaData.
  * 
+ * [TODO] Add meaningful javadoc
+ * 
  * @author <a href="adrian at jboss.org">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */

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-01-15 08:44:25 UTC (rev 99449)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java	2010-01-15 08:54:05 UTC (rev 99450)
@@ -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()
    {




More information about the jboss-cvs-commits mailing list