Author: brianf
Date: Fri Jan  9 07:39:27 2009
New Revision: 733066

URL: http://svn.apache.org/viewvc?rev=733066&view=rev
Log:
MNG-3974 - stop on first mirror pattern match

Modified:
    
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
    
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java

Modified: 
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=733066&r1=733065&r2=733066&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
 (original)
+++ 
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
 Fri Jan  9 07:39:27 2009
@@ -802,6 +802,7 @@
                     if ( matchPattern( originalRepository, pattern ) )
                     {
                         selectedMirror = (ArtifactRepository) mirrors.get( 
pattern );
+                        break;
                     }
                 }
             }

Modified: 
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=733066&r1=733065&r2=733066&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
 (original)
+++ 
maven/components/branches/maven-2.1.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
 Fri Jan  9 07:39:27 2009
@@ -253,6 +253,43 @@
     }
 
     /**
+     * Check that first match wins
+     */
+    public void testMirrorStopOnFirstMatch()
+    {
+        //exact matches win first
+        wagonManager.addMirror( "a2", "a,b", "http://a2"; );
+        wagonManager.addMirror( "a", "a", "http://a"; );
+        
+        wagonManager.addMirror( "b", "b", "http://b"; );
+        wagonManager.addMirror( "c", "d,e", "http://de"; );
+        wagonManager.addMirror( "c", "*", "http://wildcard"; );
+        wagonManager.addMirror( "c", "e,f", "http://ef"; );
+        
+    
+
+        ArtifactRepository repo = null;
+        repo = wagonManager.getMirrorRepository( getRepo( "a", "http://a.a"; ) 
);
+        assertEquals( "http://a";, repo.getUrl() );
+
+        repo = wagonManager.getMirrorRepository( getRepo( "b", "http://a.a"; ) 
);
+        assertEquals( "http://b";, repo.getUrl() );
+
+        repo = wagonManager.getMirrorRepository( getRepo( "c", "http://c.c"; ) 
);
+        assertEquals( "http://wildcard";, repo.getUrl() );
+        
+        repo = wagonManager.getMirrorRepository( getRepo( "d", "http://d"; ) );
+        assertEquals( "http://de";, repo.getUrl() );
+        
+        repo = wagonManager.getMirrorRepository( getRepo( "e", "http://e"; ) );
+        assertEquals( "http://de";, repo.getUrl() );
+        
+        repo = wagonManager.getMirrorRepository( getRepo( "f", "http://f"; ) );
+        assertEquals( "http://wildcard";, repo.getUrl() );
+
+    }
+    
+    /**
      * Build an ArtifactRepository object.
      * 
      * @param id


Reply via email to