Repository: maven
Updated Branches:
  refs/heads/master 425c66358 -> fddade227


MNG-5638: Whitespaces matter in <mirrorOf> configuration can cause the 
incorrect repo to be selected


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/fddade22
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/fddade22
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/fddade22

Branch: refs/heads/master
Commit: fddade227d17f2cb9fe7e71c14cf5591cfa96851
Parents: 425c663
Author: Jason van Zyl <[email protected]>
Authored: Wed Jun 11 22:26:18 2014 -0400
Committer: Jason van Zyl <[email protected]>
Committed: Wed Jun 11 22:26:18 2014 -0400

----------------------------------------------------------------------
 .../maven/repository/DefaultMirrorSelector.java     |  1 +
 .../maven/repository/DefaultMirrorSelectorTest.java | 16 ++++++++++++++++
 2 files changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/fddade22/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
----------------------------------------------------------------------
diff --git 
a/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
 
b/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
index 37fe3ab..53e7bd4 100644
--- 
a/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
+++ 
b/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
@@ -89,6 +89,7 @@ public class DefaultMirrorSelector
             String[] repos = pattern.split( "," );
             for ( String repo : repos )
             {
+                repo = repo.trim();
                 // see if this is a negative match
                 if ( repo.length() > 1 && repo.startsWith( "!" ) )
                 {

http://git-wip-us.apache.org/repos/asf/maven/blob/fddade22/maven-compat/src/test/java/org/apache/maven/repository/DefaultMirrorSelectorTest.java
----------------------------------------------------------------------
diff --git 
a/maven-compat/src/test/java/org/apache/maven/repository/DefaultMirrorSelectorTest.java
 
b/maven-compat/src/test/java/org/apache/maven/repository/DefaultMirrorSelectorTest.java
new file mode 100644
index 0000000..52a871d
--- /dev/null
+++ 
b/maven-compat/src/test/java/org/apache/maven/repository/DefaultMirrorSelectorTest.java
@@ -0,0 +1,16 @@
+package org.apache.maven.repository;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.codehaus.plexus.PlexusTestCase;
+
+public class DefaultMirrorSelectorTest extends PlexusTestCase {
+
+  public void testMirrorWithMirroOfPatternContainingANegationIsNotSelected() {
+    ArtifactRepository repository = new 
DefaultArtifactRepository("snapshots.repo", "http://whatever";, null);
+    String pattern = "external:*, !snapshots.repo";
+    boolean matches = DefaultMirrorSelector.matchPattern(repository, pattern);
+    System.out.println(matches);
+    assertFalse(matches);
+  }
+}

Reply via email to