Author: jdcasey
Date: Tue May 24 03:21:48 2011
New Revision: 1126841
URL: http://svn.apache.org/viewvc?rev=1126841&view=rev
Log:
Re-apply injection of MirrorRouting* classes, to add the ability to load and
select mirrors from a routing table.
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
maven/maven-3/branches/mirror-group-routing/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=1126841&r1=1126840&r2=1126841&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Tue May 24 03:21:48 2011
@@ -58,6 +58,7 @@ import org.apache.maven.project.ProjectB
import org.apache.maven.project.ProjectSorter;
import org.apache.maven.repository.DelegatingLocalArtifactRepository;
import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
+import org.apache.maven.repository.mirror.RoutingMirrorSelector;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -376,7 +377,9 @@ public class DefaultMaven
}
}
- DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
+ final RoutingMirrorSelector mirrorSelector =
+ new RoutingMirrorSelector( request.getMirrorRoutingTable(), logger
);
+
for ( Mirror mirror : request.getMirrors() )
{
mirrorSelector.add( mirror.getId(), mirror.getUrl(),
mirror.getLayout(), false, mirror.getMirrorOf(),
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=1126841&r1=1126840&r2=1126841&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
Tue May 24 03:21:48 2011
@@ -29,6 +29,7 @@ import org.apache.maven.artifact.reposit
import org.apache.maven.model.Profile;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.automirror.MirrorRoutingTable;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -185,6 +186,7 @@ public class DefaultMavenExecutionReques
copy.setWorkspaceReader( original.getWorkspaceReader() );
copy.setNoSnapshotUpdates( original.isNoSnapshotUpdates() );
copy.setExecutionListener( original.getExecutionListener() );
+ copy.setMirrorRoutingTable( original.getMirrorRoutingTable() );
return copy;
}
@@ -1076,4 +1078,22 @@ public class DefaultMavenExecutionReques
return this;
}
+ private MirrorRoutingTable mirrorRoutingTable;
+
+ public synchronized MirrorRoutingTable getMirrorRoutingTable()
+ {
+ if ( mirrorRoutingTable == null )
+ {
+ mirrorRoutingTable = new MirrorRoutingTable();
+ }
+
+ return mirrorRoutingTable;
+ }
+
+ public MavenExecutionRequest setMirrorRoutingTable( final
MirrorRoutingTable mirrorRoutingTable )
+ {
+ this.mirrorRoutingTable = mirrorRoutingTable;
+ return this;
+ }
+
}
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=1126841&r1=1126840&r2=1126841&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
Tue May 24 03:21:48 2011
@@ -28,6 +28,7 @@ import org.apache.maven.artifact.reposit
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.model.Profile;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.automirror.MirrorRoutingTable;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -283,4 +284,21 @@ public interface MavenExecutionRequest
ProjectBuildingRequest getProjectBuildingRequest();
+ /**
+ * List of mirrors, URLs they mirror, weight for each mirror, whether it's
disabled, etc. This is used to select a
+ * mirror for a particular repository URL.
+ *
+ * @return The routing table instance for use in this build. Never {@code
null}.
+ */
+ MirrorRoutingTable getMirrorRoutingTable();
+
+ /**
+ * Set the list of mirrors, urls they mirror, weight for each mirror,
whether it's disabled, etc.
+ *
+ * @param routingTable
+ * The {@link MirrorRoutingTable} to use for the current build.
+ * @return This request, never {@code null}.
+ */
+ MavenExecutionRequest setMirrorRoutingTable( MirrorRoutingTable
routingTable );
+
}
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=1126841&r1=1126840&r2=1126841&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
Tue May 24 03:21:48 2011
@@ -33,6 +33,7 @@ import org.apache.maven.monitor.event.Ev
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.automirror.MirrorRoutingTable;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.PlexusContainer;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -393,4 +394,9 @@ public class MavenSession
return repositorySession;
}
+ public MirrorRoutingTable getMirrorRoutingTable()
+ {
+ return request.getMirrorRoutingTable();
+ }
+
}
Modified:
maven/maven-3/branches/mirror-group-routing/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=1126841&r1=1126840&r2=1126841&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
Tue May 24 03:21:48 2011
@@ -50,6 +50,12 @@ import org.apache.maven.lifecycle.intern
import org.apache.maven.model.building.ModelProcessor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.properties.internal.EnvironmentUtils;
+import org.apache.maven.repository.automirror.MirrorRoutingTable;
+import
org.apache.maven.repository.mirror.configuration.FileMirrorRouterConfigSource;
+import
org.apache.maven.repository.mirror.configuration.MirrorRouterConfigBuilder;
+import
org.apache.maven.repository.mirror.configuration.MirrorRouterConfiguration;
+import
org.apache.maven.repository.mirror.configuration.MirrorRouterConfigurationException;
+import org.apache.maven.repository.mirror.loader.MirrorRoutingTableLoader;
import org.apache.maven.settings.building.DefaultSettingsBuildingRequest;
import org.apache.maven.settings.building.SettingsBuilder;
import org.apache.maven.settings.building.SettingsBuildingRequest;
@@ -95,6 +101,8 @@ public class MavenCli
public static final File DEFAULT_USER_TOOLCHAINS_FILE = new File(
userMavenConfigurationHome, "toolchains.xml" );
+ public static final File DEFAULT_USER_EXT_CONF_DIR = new File(
userMavenConfigurationHome, "conf" );
+
private static final String EXT_CLASS_PATH = "maven.ext.class.path";
private ClassWorld classWorld;
@@ -114,6 +122,10 @@ public class MavenCli
private SettingsBuilder settingsBuilder;
+ private MirrorRouterConfigBuilder routerConfBuilder;
+
+ private MirrorRoutingTableLoader routingTableLoader;
+
private DefaultSecDispatcher dispatcher;
public MavenCli()
@@ -413,6 +425,9 @@ public class MavenCli
settingsBuilder = container.lookup( SettingsBuilder.class );
+ routerConfBuilder = container.lookup( MirrorRouterConfigBuilder.class
);
+ routingTableLoader = container.lookup( MirrorRoutingTableLoader.class
);
+
dispatcher = (DefaultSecDispatcher) container.lookup(
SecDispatcher.class, "maven" );
}
@@ -752,6 +767,7 @@ public class MavenCli
}
private MavenExecutionRequest populateRequest( CliRequest cliRequest )
+ throws Exception
{
MavenExecutionRequest request = cliRequest.request;
CommandLine commandLine = cliRequest.commandLine;
@@ -913,6 +929,11 @@ public class MavenCli
userToolchainsFile = MavenCli.DEFAULT_USER_TOOLCHAINS_FILE;
}
+ final MirrorRouterConfiguration routerConfig =
+ routerConfBuilder.build( new FileMirrorRouterConfigSource(
DEFAULT_USER_EXT_CONF_DIR ) );
+
+ MirrorRoutingTable mirrorRoutingTable = routingTableLoader.load(
routerConfig );
+
request.setBaseDirectory( baseDirectory ).setGoals( goals )
.setSystemProperties( cliRequest.systemProperties )
.setUserProperties( cliRequest.userProperties )
@@ -926,7 +947,8 @@ public class MavenCli
.setUpdateSnapshots( updateSnapshots ) // default: false
.setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
.setGlobalChecksumPolicy( globalChecksumPolicy ) // default: warn
- .setUserToolchainsFile( userToolchainsFile );
+ .setUserToolchainsFile( userToolchainsFile )
+ .setMirrorRoutingTable( mirrorRoutingTable );
if ( alternatePomFile != null )
{