You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2011/05/24 05:22:03 UTC
svn commit: r1126842 -
/maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
Author: jdcasey
Date: Tue May 24 03:22:03 2011
New Revision: 1126842
URL: http://svn.apache.org/viewvc?rev=1126842&view=rev
Log:
Adding new router-based mirror selection to the old legacy maven mirror selector.
Modified:
maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
Modified: maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java?rev=1126842&r1=1126841&r2=1126842&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java Tue May 24 03:22:03 2011
@@ -25,8 +25,13 @@ import java.util.List;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.repository.automirror.MirrorRoute;
+import org.apache.maven.repository.automirror.MirrorRoutingTable;
import org.apache.maven.settings.Mirror;
import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.StringUtils;
@Component( role = MirrorSelector.class )
@@ -37,8 +42,65 @@ public class DefaultMirrorSelector
private static final String WILDCARD = "*";
private static final String EXTERNAL_WILDCARD = "external:*";
+
+ @Requirement
+ private Logger logger;
+
+ @Requirement
+ private LegacySupport legacySupport;
- public Mirror getMirror( ArtifactRepository repository, List<Mirror> mirrors )
+ public Mirror getMirror( final ArtifactRepository repository, final List<Mirror> mirrors )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "MAVEN-SELECT: " + repository.getUrl() );
+ }
+
+ Mirror mirror = getSettingsMirror( repository, mirrors );
+
+ if ( mirror != null )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "MAVEN-SELECT using mirror from settings.xml." );
+ }
+
+ return mirror;
+ }
+
+ if ( mirror == null )
+ {
+ final String repoUrl = repository.getUrl();
+
+ MirrorRoutingTable routingTable = legacySupport.getSession().getMirrorRoutingTable();
+ final MirrorRoute rMirror = routingTable.getWeightedRandomSuggestion( repoUrl );
+
+ if ( rMirror != null )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "\t==> " + rMirror );
+ }
+
+ mirror = new Mirror();
+ mirror.setMirrorOf( repository.getId() );
+ mirror.setLayout( "default" );
+ mirror.setId( rMirror.getId() );
+ mirror.setUrl( rMirror.getMirrorUrl() );
+ }
+ else
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "MAVEN-SELECT: no auto-mirror found." );
+ }
+ }
+ }
+
+ return mirror;
+ }
+
+ private Mirror getSettingsMirror( ArtifactRepository repository, List<Mirror> mirrors )
{
String repoId = repository.getId();