[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