[jboss-cvs] JBossAS SVN: r102287 - projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 11 08:10:43 EST 2010
Author: alesj
Date: 2010-03-11 08:10:42 -0500 (Thu, 11 Mar 2010)
New Revision: 102287
Modified:
projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/SARArchiveFilter.java
Log:
[JBDEPLOY-250]; allow for regexp in sar classpath.
Modified: projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/SARArchiveFilter.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/SARArchiveFilter.java 2010-03-11 12:49:00 UTC (rev 102286)
+++ projects/jboss-deployers/trunk/deployers-jmx/src/main/java/org/jboss/system/deployers/SARArchiveFilter.java 2010-03-11 13:10:42 UTC (rev 102287)
@@ -24,6 +24,7 @@
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
+import java.util.regex.Pattern;
import org.jboss.vfs.VirtualFile;
import org.jboss.vfs.VirtualFileFilter;
@@ -32,15 +33,22 @@
* SARArchiveFilter.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
* @version $Revision$
*/
public class SARArchiveFilter implements VirtualFileFilter
{
+ /** The regexp= marker const */
+ private static final String REGEXP = "regexp=";
+
+ /** The regexp pattern */
+ private Pattern regexp;
+
/** The patterns */
- private final Set<String> patterns;
+ private Set<String> patterns;
/** Whether there is the accept all wildcard */
- private final boolean allowAll;
+ private boolean allowAll = false;
/**
* Create a new SARArchiveFilter.
@@ -53,20 +61,32 @@
if (patternsString == null)
throw new IllegalArgumentException("Null patternsString");
- StringTokenizer tokens = new StringTokenizer (patternsString, ",");
- patterns = new HashSet<String>(tokens.countTokens());
- for (int i=0; tokens.hasMoreTokens (); ++i)
+ if (patternsString.startsWith(REGEXP))
{
- String token = tokens.nextToken();
- patterns.add(token.trim());
+ regexp = Pattern.compile(patternsString.substring(REGEXP.length()));
}
- allowAll = patterns.contains("*");
+ else
+ {
+ StringTokenizer tokens = new StringTokenizer (patternsString, ",");
+ patterns = new HashSet<String>(tokens.countTokens());
+ while (tokens.hasMoreTokens ())
+ {
+ String token = tokens.nextToken();
+ patterns.add(token.trim());
+ }
+ allowAll = patterns.contains("*");
+ }
}
public boolean accepts(VirtualFile file)
{
if (allowAll)
return true;
- return patterns.contains(file.getName());
+
+ String fileName = file.getName();
+ if (regexp != null)
+ return regexp.matcher(fileName).matches();
+ else
+ return patterns.contains(file.getName());
}
}
More information about the jboss-cvs-commits
mailing list