[jboss-cvs] JBossAS SVN: r106756 - in projects/jboss-cl/trunk/classloading-vfs/src: test/java/org/jboss/test/classloading/vfs/metadata/test and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 15 11:17:03 EDT 2010
Author: alesj
Date: 2010-07-15 11:17:02 -0400 (Thu, 15 Jul 2010)
New Revision: 106756
Added:
projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Pattern.xml
Removed:
projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Wildcard.xml
Modified:
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSClassLoaderFactoryUnitTestCase.java
Log:
[JBCL-173]; allow for regexp in roots.
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-07-15 14:59:03 UTC (rev 106755)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/dependency/VFSClassLoaderPolicyModule.java 2010-07-15 15:17:02 UTC (rev 106756)
@@ -29,6 +29,7 @@
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.regex.Pattern;
import org.jboss.classloader.spi.filter.ClassFilter;
import org.jboss.classloading.plugins.vfs.PackageVisitor;
@@ -66,8 +67,12 @@
/** Our cached vfs roots */
private VirtualFile[] vfsRoots;
+ /** The empty roots */
private static final VirtualFile[] NO_VIRTUAL_FILES = new VirtualFile[0];
+ /** The root reg-exp pattern key */
+ private static final String RE_KEY = "?root-re-pattern=";
+
/**
* Create a new VFSClassLoaderPolicyModule.
*
@@ -171,14 +176,15 @@
List<VirtualFile> vfsRoots = new ArrayList<VirtualFile>();
for (String root : roots)
{
- int wc = root.lastIndexOf("*"); // is it wildcard?
- if (wc >= 0)
+ int re = root.lastIndexOf(RE_KEY); // is it reg-exp?
+ if (re >= 0)
{
- final String wcString = root.substring(wc + 1);
+ String reString = root.substring(re + RE_KEY.length());
+ final Pattern pattern = Pattern.compile(reString);
VirtualFile start;
- if (wc > 0) // some more path before
+ if (re > 0) // some more path before
{
- start = VFS.getChild(root.substring(0, wc));
+ start = VFS.getChild(root.substring(0, re));
}
else
{
@@ -191,7 +197,7 @@
public boolean accepts(VirtualFile file)
{
String name = file.getName();
- return name.endsWith(wcString);
+ return pattern.matcher(name).matches();
}
});
vfsRoots.addAll(children);
Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSClassLoaderFactoryUnitTestCase.java 2010-07-15 14:59:03 UTC (rev 106755)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/VFSClassLoaderFactoryUnitTestCase.java 2010-07-15 15:17:02 UTC (rev 106756)
@@ -22,6 +22,8 @@
package org.jboss.test.classloading.vfs.metadata.test;
import java.io.Closeable;
+import java.io.File;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@@ -217,7 +219,7 @@
assertNoClassLoader("a", "1.0.0");
}
- public void testWildcard() throws Exception
+ public void testRePattern() throws Exception
{
String testDir = "test";
List<Closeable> closeables = new ArrayList<Closeable>();
@@ -230,16 +232,22 @@
closeables.add(VFS.mountAssembly(new VirtualFileAssembly(), jar1));
VirtualFile jar2 = test.getChild("j2.jar");
closeables.add(VFS.mountAssembly(new VirtualFileAssembly(), jar2));
+ VirtualFile clazz = jar2.getChild("Dummy.txt");
+ URL xml = getResource("Pattern.xml");
+ File file = new File(xml.toURI());
+ closeables.add(VFS.mountReal(file, clazz));
System.setProperty("test.dir", testDir);
try
{
- KernelDeployment wc = deploy("Wildcard.xml");
+ KernelDeployment wc = deploy("Pattern.xml");
try
{
validate();
ClassLoader cl = assertClassLoader("wc", "0.0.0");
- assertLoadClassFail("org.acme.FooBar", cl);
+ URL url = cl.getResource("Dummy.txt");
+ assertNotNull(url);
+ assertNotNull(url.openStream());
}
finally
{
Copied: projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Pattern.xml (from rev 106694, projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Wildcard.xml)
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Pattern.xml (rev 0)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Pattern.xml 2010-07-15 15:17:02 UTC (rev 106756)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0" xmlns:cl="urn:jboss:classloader:1.0">
+
+ <classloader xmlns="urn:jboss:classloader:1.0" name="wc">
+ <root>${test.dir}/?root-re-pattern=[a-z0-9]+\.jar</root>
+ </classloader>
+
+</deployment>
Deleted: projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Wildcard.xml
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Wildcard.xml 2010-07-15 14:59:03 UTC (rev 106755)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/test/Wildcard.xml 2010-07-15 15:17:02 UTC (rev 106756)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns="urn:jboss:bean-deployer:2.0" xmlns:cl="urn:jboss:classloader:1.0">
-
- <classloader xmlns="urn:jboss:classloader:1.0" name="wc">
- <root>${test.dir}/*.jar</root>
- </classloader>
-
-</deployment>
More information about the jboss-cvs-commits
mailing list