You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2013/08/23 17:28:04 UTC

svn commit: r1516883 - in /maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io: MatchPattern.java SelectorUtils.java

Author: krosenvold
Date: Fri Aug 23 15:28:03 2013
New Revision: 1516883

URL: http://svn.apache.org/r1516883
Log:
Used compiled regexes

Modified:
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java
    maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java?rev=1516883&r1=1516882&r2=1516883&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/MatchPattern.java Fri Aug 23 15:28:03 2013
@@ -23,6 +23,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
+import java.util.regex.Pattern;
 
 import javax.annotation.Nonnull;
 
@@ -39,6 +40,8 @@ public class MatchPattern
 
     private final String regexPattern;
 
+    private final Pattern regexPatternRegex;
+
     private final String separator;
 
     private final String[] tokenized;
@@ -48,6 +51,7 @@ public class MatchPattern
         regexPattern = SelectorUtils.isRegexPrefixedPattern( source ) ? source.substring(
             SelectorUtils.REGEX_HANDLER_PREFIX.length(),
             source.length() - SelectorUtils.PATTERN_HANDLER_SUFFIX.length() ) : null;
+        regexPatternRegex = regexPattern != null ? Pattern.compile(  regexPattern ) : null;
         this.source =
             SelectorUtils.isAntPrefixedPattern( source ) ? source.substring( SelectorUtils.ANT_HANDLER_PREFIX.length(),
                                                                              source.length()
@@ -62,7 +66,7 @@ public class MatchPattern
     {
         if ( regexPattern != null )
         {
-            return str.matches( regexPattern );
+            return regexPatternRegex.matcher( str).matches();
         }
         else
         {
@@ -74,7 +78,7 @@ public class MatchPattern
     {
         if ( regexPattern != null )
         {
-            return str.matches( regexPattern );
+            return regexPatternRegex.matcher( str).matches();
         }
         else
         {

Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java?rev=1516883&r1=1516882&r2=1516883&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/io/SelectorUtils.java Fri Aug 23 15:28:03 2013
@@ -606,11 +606,18 @@ public final class SelectorUtils
                                                      boolean isCaseSensitive )
     {
         String[] strDirs = tokenizePathToString( str, separator );
+        return matchAntPathPatternStart( patDirs, strDirs, isCaseSensitive );
+    }
+
+    private static boolean matchAntPathPatternStart( @Nonnull String[] patDirs,
+                                                     @Nonnull String[] tokenizedFileName,
+                                                     boolean isCaseSensitive )
+    {
 
         int patIdxStart = 0;
         int patIdxEnd = patDirs.length - 1;
         int strIdxStart = 0;
-        int strIdxEnd = strDirs.length - 1;
+        int strIdxEnd = tokenizedFileName.length - 1;
 
         // up to first '**'
         while ( patIdxStart <= patIdxEnd && strIdxStart <= strIdxEnd )
@@ -620,7 +627,7 @@ public final class SelectorUtils
             {
                 break;
             }
-            if ( !match( patDir, strDirs[strIdxStart], isCaseSensitive ) )
+            if ( !match( patDir, tokenizedFileName[strIdxStart], isCaseSensitive ) )
             {
                 return false;
             }