Extracted a method and a few variables to improve readability

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1639983 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
index 4307f1d..ad2377a 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
@@ -169,10 +169,10 @@
 
     private boolean matchAgainst( final String value, final List<String> patterns, final boolean regionMatch )
     {
+        final String[] tokens = value.split( ":" );
         for ( String pattern : patterns )
         {
             final String[] patternTokens = pattern.split( ":" );
-            final String[] tokens = value.split( ":" );
 
             // fail immediately if pattern tokens outnumber tokens to match
             boolean matched = ( patternTokens.length <= tokens.length );
@@ -182,14 +182,15 @@
                 matched = matches( tokens[i], patternTokens[i] );
             }
 
-            // // case of starting '*' like '*:jar:*'
-            if ( !matched && patternTokens.length < tokens.length && patternTokens.length > 0
-                && "*".equals( patternTokens[0] ) )
+            // case of starting '*' like '*:jar:*'
+            // This really only matches from the end instead.....
+            if ( !matched && patternTokens.length < tokens.length && isFirstPatternWildcard( patternTokens ) )
             {
                 matched = true;
+                int tokenOffset = tokens.length - patternTokens.length;
                 for ( int i = 0; matched && i < patternTokens.length; i++ )
                 {
-                    matched = matches( tokens[i + ( tokens.length - patternTokens.length )], patternTokens[i] );
+                    matched = matches( tokens[i + tokenOffset], patternTokens[i] );
                 }
             }
 
@@ -210,6 +211,11 @@
 
     }
 
+    private boolean isFirstPatternWildcard( String[] patternTokens )
+    {
+        return patternTokens.length > 0 && "*".equals( patternTokens[0] );
+    }
+
     /**
      * Gets whether the specified token matches the specified pattern segment.
      *