Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 72291 invoked from network); 9 Jan 2009 15:35:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Jan 2009 15:35:04 -0000 Received: (qmail 39350 invoked by uid 500); 9 Jan 2009 15:35:03 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 39292 invoked by uid 500); 9 Jan 2009 15:35:03 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 39283 invoked by uid 99); 9 Jan 2009 15:35:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Jan 2009 07:35:03 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Jan 2009 15:35:02 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id DC11623889B7; Fri, 9 Jan 2009 07:34:42 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r733063 - in /maven/components/trunk/maven-compat/src: main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Date: Fri, 09 Jan 2009 15:34:42 -0000 To: commits@maven.apache.org From: brianf@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090109153442.DC11623889B7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: brianf Date: Fri Jan 9 07:34:41 2009 New Revision: 733063 URL: http://svn.apache.org/viewvc?rev=733063&view=rev Log: MNG-3974 - stop on first mirror pattern match Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=733063&r1=733062&r2=733063&view=diff ============================================================================== --- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original) +++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Fri Jan 9 07:34:41 2009 @@ -897,9 +897,12 @@ Set keySet = mirrors.keySet(); if ( keySet != null ) { - for (String pattern : keySet) { - if (matchPattern(originalRepository, pattern)) { + for (String pattern : keySet) + { + if (matchPattern(originalRepository, pattern)) + { selectedMirror = mirrors.get(pattern); + break; } } } Modified: maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=733063&r1=733062&r2=733063&view=diff ============================================================================== --- maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java (original) +++ maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Fri Jan 9 07:34:41 2009 @@ -578,6 +578,44 @@ } /** + * 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() ); + + } + + + /** * Check that patterns are processed correctly Valid patterns: * = everything external:* = everything not on the * localhost and not file based. repo,repo1 = repo or repo1 *,!repo1 = everything except repo1 */