[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