[jboss-cvs] JBossAS SVN: r69854 - in projects/microcontainer/trunk/classloader/src: tests/org/jboss/test/classloader/filter/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 15 09:00:50 EST 2008
Author: adrian at jboss.org
Date: 2008-02-15 09:00:50 -0500 (Fri, 15 Feb 2008)
New Revision: 69854
Modified:
projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/PackageClassFilter.java
projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/filter/test/PackageFilterUnitTestCase.java
Log:
Add the ability to parse a package filter from a comma seperated string
Modified: projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/PackageClassFilter.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/PackageClassFilter.java 2008-02-15 13:59:13 UTC (rev 69853)
+++ projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/PackageClassFilter.java 2008-02-15 14:00:50 UTC (rev 69854)
@@ -21,7 +21,10 @@
*/
package org.jboss.classloader.spi.filter;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
+import java.util.StringTokenizer;
import org.jboss.classloader.plugins.filter.PatternClassFilter;
@@ -89,6 +92,23 @@
}
return patterns;
}
+
+ /**
+ * Create a package class filter<p>
+ *
+ * Creates the filter from a comma seperated list
+ *
+ * @param string the string
+ * @return the filter
+ */
+ public static PackageClassFilter createPackageClassFilterFromString(String string)
+ {
+ StringTokenizer tokenizer = new StringTokenizer(string, ",");
+ List<String> packages = new ArrayList<String>();
+ while (tokenizer.hasMoreTokens())
+ packages.add(tokenizer.nextToken());
+ return createPackageClassFilter(packages);
+ }
/**
* Create a new package class filter
@@ -103,6 +123,23 @@
}
/**
+ * Create a new package class filter
+ *
+ * @param packageNames the package names
+ * @return the filter
+ * @throws IllegalArgumentException for null packageNames
+ */
+ public static PackageClassFilter createPackageClassFilter(List<String> packageNames)
+ {
+ String[] packages;
+ if (packageNames == null)
+ packages = new String[0];
+ else
+ packages = packageNames.toArray(new String[packageNames.size()]);
+ return new PackageClassFilter(packages);
+ }
+
+ /**
* Create a new PackageClassFilter.
*
* @param packageNames the packageNames
Modified: projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/filter/test/PackageFilterUnitTestCase.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/filter/test/PackageFilterUnitTestCase.java 2008-02-15 13:59:13 UTC (rev 69853)
+++ projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/filter/test/PackageFilterUnitTestCase.java 2008-02-15 14:00:50 UTC (rev 69854)
@@ -103,6 +103,32 @@
assertFilterNoMatchPackageName(null, filter);
}
+ public void testFromString() throws Exception
+ {
+ ClassFilter filter = PackageClassFilter.createPackageClassFilterFromString("java.lang,java.lang.reflect");
+ assertFilterMatchesClassName("java.lang.Object", filter);
+ assertFilterMatchesClassName("java.lang.X", filter);
+ assertFilterMatchesClassName("java.lang.reflect.Method", filter);
+ assertFilterMatchesClassName("java.lang.reflect.X", filter);
+ assertFilterMatchesClassName("java.lang.reflect", filter);
+ assertFilterNoMatchClassName("java.lang", filter);
+ assertFilterNoMatchClassName("java.lang.", filter);
+ assertFilterNoMatchClassName("java.lang.reflect.", filter);
+ assertFilterNoMatchClassName("java.lang.reflect.subpackage.Something", filter);
+ assertFilterNoMatchClassName("gibberish", filter);
+ assertFilterNoMatchClassName("", filter);
+ assertFilterNoMatchClassName(null, filter);
+ assertFilterMatchesPackageName("java.lang", filter);
+ assertFilterNoMatchPackageName("java.langx", filter);
+ assertFilterNoMatchPackageName("java.lang.X.", filter);
+ assertFilterMatchesPackageName("java.lang.reflect", filter);
+ assertFilterNoMatchPackageName("java.lang.reflectx", filter);
+ assertFilterNoMatchPackageName("java.lang.reflect.X", filter);
+ assertFilterNoMatchPackageName("gibberish", filter);
+ assertFilterNoMatchPackageName("", filter);
+ assertFilterNoMatchPackageName(null, filter);
+ }
+
public void testDefaultPackage() throws Exception
{
ClassFilter filter = PackageClassFilter.createPackageClassFilter("");
More information about the jboss-cvs-commits
mailing list