Author: nicolas Date: Mon Feb 25 02:18:23 2008 New Revision: 630789 URL: http://svn.apache.org/viewvc?rev=630789&view=rev Log: MNG-3407 : improve mirrorOf to support pattern based repository URL
Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=630789&r1=630788&r2=630789&view=diff ============================================================================== --- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original) +++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Mon Feb 25 02:18:23 2008 @@ -52,6 +52,7 @@ import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; import java.io.File; @@ -62,6 +63,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.text.MessageFormat; /** @plexus.component */ public class DefaultWagonManager @@ -754,6 +756,17 @@ if ( repository == null ) { repository = (ArtifactRepository) mirrors.get( WILDCARD ); + if ( repository != null ) + { + String url = repository.getUrl(); + if ( url.indexOf( "${mirrorOf}" ) >= 0 ) + { + url = StringUtils.replace( url, "${mirrorOf}", "{0}" ); + url = MessageFormat.format( url, new Object[] { mirrorOf } ); + repository = new DefaultArtifactRepository( mirrorOf, url, null ); + mirrors.put( mirrorOf, repository ); + } + } } return repository; Modified: maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=630789&r1=630788&r2=630789&view=diff ============================================================================== --- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java (original) +++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Mon Feb 25 02:18:23 2008 @@ -56,6 +56,15 @@ wagonManager = (WagonManager) lookup( WagonManager.ROLE ); } + public void testMappedMirror() + throws Exception + { + DefaultWagonManager manager = (DefaultWagonManager) wagonManager; + manager.addMirror( "wildcar", "*", "http://archiva/repository/${mirrorOf}" ); + assertEquals( "http://archiva/repository/central", manager.getMirror( "central" ).getUrl() ); + assertEquals( "http://archiva/repository/apache.snapshots", manager.getMirror( "apache.snapshots" ).getUrl() ); + } + public void testDefaultWagonManager() throws Exception {