[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