Author: jdcasey
Date: Tue May 24 03:25:00 2011
New Revision: 1126844
URL: http://svn.apache.org/viewvc?rev=1126844&view=rev
Log:
got the rest of the code changes done (for now), which support 'sticky'
auto-mirror. Next comes licensing clean-up, and testing.
Modified:
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRouteSerializer.java
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRoutingTable.java
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/test/java/org/apache/maven/repository/automirror/RouterMirrorSerializerTest.java
maven/maven-3/branches/mirror-group-routing/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
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-core/src/main/java/org/apache/maven/repository/mirror/MirrorRouter.java
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/RoutingMirrorSelector.java
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/configuration/MirrorRouterConfiguration.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-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRouteSerializer.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRouteSerializer.java?rev=1126844&r1=1126843&r2=1126844&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRouteSerializer.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRouteSerializer.java
Tue May 24 03:25:00 2011
@@ -18,6 +18,58 @@ public class MirrorRouteSerializer
// NOTE: Gson is supposed to be threadsafe, so all this static stuff
should be fine.
private static Gson gson;
+ public static void serializeList( final List<MirrorRoute> mirrors, final
Writer writer )
+ throws MirrorRouterModelException
+ {
+ try
+ {
+ getGson().toJson( mirrors, writer );
+ }
+ catch ( final JsonParseException e )
+ {
+ throw new MirrorRouterModelException( "Cannot read
router-mirrors.", e );
+ }
+ }
+
+ public static String serializeListToString( final List<MirrorRoute>
mirrors )
+ throws MirrorRouterModelException
+ {
+ try
+ {
+ return getGson().toJson( mirrors );
+ }
+ catch ( final JsonParseException e )
+ {
+ throw new MirrorRouterModelException( "Cannot read
router-mirrors.", e );
+ }
+ }
+
+ public static List<MirrorRoute> deserializeList( final Reader reader )
+ throws MirrorRouterModelException
+ {
+ try
+ {
+ return getGson().fromJson( reader,
RepositoryMirrorListCreator.getType() );
+ }
+ catch ( final JsonParseException e )
+ {
+ throw new MirrorRouterModelException( "Cannot read
router-mirrors.", e );
+ }
+ }
+
+ public static List<MirrorRoute> deserializeList( final String source )
+ throws MirrorRouterModelException
+ {
+ try
+ {
+ return getGson().fromJson( source,
RepositoryMirrorListCreator.getType() );
+ }
+ catch ( final JsonParseException e )
+ {
+ throw new MirrorRouterModelException( "Cannot read
router-mirrors.", e );
+ }
+ }
+
public static void serialize( final MirrorRoutingTable mirrors, final
Writer writer )
throws MirrorRouterModelException
{
Modified:
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRoutingTable.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRoutingTable.java?rev=1126844&r1=1126843&r2=1126844&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRoutingTable.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/main/java/org/apache/maven/repository/automirror/MirrorRoutingTable.java
Tue May 24 03:25:00 2011
@@ -15,7 +15,6 @@
package org.apache.maven.repository.automirror;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -31,7 +30,7 @@ public class MirrorRoutingTable
private final transient Random random = new Random();
private transient Map<String, int[]> indexGrabBags = new HashMap<String,
int[]>();
-
+
public synchronized MirrorRoutingTable addMirror( final MirrorRoute mirror
)
{
if ( !mirrors.contains( mirror ) )
@@ -43,31 +42,36 @@ public class MirrorRoutingTable
return this;
}
- public MirrorRoute getHighestPriorityMirror( final String canonicalUrl )
+ public synchronized MirrorRoute getMirror( final String canonicalUrl )
{
- if ( mirrors.isEmpty() )
- {
- return null;
- }
-
- final List<MirrorRoute> available = new ArrayList<MirrorRoute>(
mirrors );
-
- // sort by weight.
- Collections.sort( available );
-
- for ( final MirrorRoute mirror : available )
- {
- // return the highest-priority ENABLED mirror.
- if ( mirror.isEnabled() && canonicalUrl.equals( mirror.getUrl() ) )
- {
- return mirror;
- }
- }
-
- return null;
+ return getWeightedRandomMirror( canonicalUrl );
}
+
+// private MirrorRoute getHighestPriorityMirror( final String canonicalUrl )
+// {
+// if ( mirrors.isEmpty() )
+// {
+// return null;
+// }
+//
+// final List<MirrorRoute> available = new ArrayList<MirrorRoute>(
mirrors );
+//
+// // sort by weight.
+// Collections.sort( available );
+//
+// for ( final MirrorRoute mirror : available )
+// {
+// // return the highest-priority ENABLED mirror.
+// if ( mirror.isEnabled() && canonicalUrl.equals( mirror.getUrl()
) )
+// {
+// return mirror;
+// }
+// }
+//
+// return null;
+// }
- public MirrorRoute getWeightedRandomSuggestion( final String canonicalUrl )
+ private MirrorRoute getWeightedRandomMirror( final String canonicalUrl )
{
if ( mirrors.isEmpty() )
{
Modified:
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/test/java/org/apache/maven/repository/automirror/RouterMirrorSerializerTest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/test/java/org/apache/maven/repository/automirror/RouterMirrorSerializerTest.java?rev=1126844&r1=1126843&r2=1126844&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/test/java/org/apache/maven/repository/automirror/RouterMirrorSerializerTest.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-auto-mirror-model/src/test/java/org/apache/maven/repository/automirror/RouterMirrorSerializerTest.java
Tue May 24 03:25:00 2011
@@ -42,7 +42,7 @@ public class RouterMirrorSerializerTest
final MirrorRoutingTable result = MirrorRouteSerializer.deserialize(
ser );
assertEquals( mirrorMap, result );
- assertTrue( result.getHighestPriorityMirror(
"http://repo1.maven.org/maven2" ).isEnabled() );
+ assertTrue( result.getMirror( "http://repo1.maven.org/maven2"
).isEnabled() );
}
}
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=1126844&r1=1126843&r2=1126844&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:25:00 2011
@@ -27,7 +27,7 @@ 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.repository.mirror.MirrorRouter;
import org.apache.maven.settings.Mirror;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
@@ -72,8 +72,8 @@ public class DefaultMirrorSelector
{
final String repoUrl = repository.getUrl();
- MirrorRoutingTable routingTable =
legacySupport.getSession().getMirrorRoutingTable();
- final MirrorRoute rMirror =
routingTable.getWeightedRandomSuggestion( repoUrl );
+ MirrorRouter routingTable =
legacySupport.getSession().getMirrorRouter();
+ final MirrorRoute rMirror = routingTable.getMirror( repoUrl );
if ( rMirror != null )
{
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=1126844&r1=1126843&r2=1126844&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:25:00 2011
@@ -101,7 +101,6 @@ import org.sonatype.aether.util.graph.tr
import org.sonatype.aether.util.graph.traverser.FatArtifactTraverser;
import org.sonatype.aether.util.repository.ChainedWorkspaceReader;
import org.sonatype.aether.util.repository.DefaultAuthenticationSelector;
-import org.sonatype.aether.util.repository.DefaultMirrorSelector;
import org.sonatype.aether.util.repository.DefaultProxySelector;
/**
@@ -325,7 +324,7 @@ public class DefaultMaven
{
return processResult( result,
session.getResult().getExceptions().get( 0 ) );
}
-
+
return result;
}
@@ -378,7 +377,7 @@ public class DefaultMaven
}
final RoutingMirrorSelector mirrorSelector =
- new RoutingMirrorSelector( request.getMirrorRoutingTable(), logger
);
+ new RoutingMirrorSelector( request.getMirrorRouter(), logger );
for ( Mirror mirror : request.getMirrors() )
{
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=1126844&r1=1126843&r2=1126844&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:25:00 2011
@@ -29,7 +29,8 @@ 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.repository.mirror.MirrorRouter;
+import
org.apache.maven.repository.mirror.configuration.MirrorRouterConfiguration;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -186,7 +187,8 @@ public class DefaultMavenExecutionReques
copy.setWorkspaceReader( original.getWorkspaceReader() );
copy.setNoSnapshotUpdates( original.isNoSnapshotUpdates() );
copy.setExecutionListener( original.getExecutionListener() );
- copy.setMirrorRoutingTable( original.getMirrorRoutingTable() );
+ copy.setMirrorRouter( original.getMirrorRouter() );
+
return copy;
}
@@ -1078,22 +1080,22 @@ public class DefaultMavenExecutionReques
return this;
}
- private MirrorRoutingTable mirrorRoutingTable;
+ private MirrorRouter mirrorRouter;
- public synchronized MirrorRoutingTable getMirrorRoutingTable()
+ public synchronized MirrorRouter getMirrorRouter()
{
- if ( mirrorRoutingTable == null )
+ if ( mirrorRouter == null )
{
- mirrorRoutingTable = new MirrorRoutingTable();
+ mirrorRouter = new MirrorRouter();
}
- return mirrorRoutingTable;
+ return mirrorRouter;
}
- public MavenExecutionRequest setMirrorRoutingTable( final
MirrorRoutingTable mirrorRoutingTable )
+ public MavenExecutionRequest setMirrorRouter( final MirrorRouter
mirrorRouter )
{
- this.mirrorRoutingTable = mirrorRoutingTable;
+ this.mirrorRouter = mirrorRouter;
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=1126844&r1=1126843&r2=1126844&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:25:00 2011
@@ -28,7 +28,8 @@ 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.repository.mirror.MirrorRouter;
+import
org.apache.maven.repository.mirror.configuration.MirrorRouterConfiguration;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -284,21 +285,8 @@ 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();
+ MirrorRouter getMirrorRouter();
+
+ MavenExecutionRequest setMirrorRouter( MirrorRouter router );
- /**
- * 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=1126844&r1=1126843&r2=1126844&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:25:00 2011
@@ -33,7 +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.repository.mirror.MirrorRouter;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.PlexusContainer;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -394,9 +394,9 @@ public class MavenSession
return repositorySession;
}
- public MirrorRoutingTable getMirrorRoutingTable()
+ public MirrorRouter getMirrorRouter()
{
- return request.getMirrorRoutingTable();
+ return request.getMirrorRouter();
}
}
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/MirrorRouter.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/MirrorRouter.java?rev=1126844&r1=1126843&r2=1126844&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/MirrorRouter.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/MirrorRouter.java
Tue May 24 03:25:00 2011
@@ -18,10 +18,48 @@
package org.apache.maven.repository.mirror;
import org.apache.maven.repository.automirror.MirrorRoute;
+import org.apache.maven.repository.automirror.MirrorRoutingTable;
-public interface MirrorRouter
+import java.util.Collections;
+import java.util.Map;
+
+public class MirrorRouter
{
+
+ private MirrorRoutingTable routingTable;
+
+ private Map<String, MirrorRoute> selectedRoutes;
+
+ public MirrorRouter( MirrorRoutingTable routingTable, Map<String,
MirrorRoute> selectedRoutes )
+ {
+ this.routingTable = routingTable;
+ this.selectedRoutes = selectedRoutes;
+ }
+
+ public MirrorRouter()
+ {
+ routingTable = new MirrorRoutingTable();
+ selectedRoutes = Collections.emptyMap();
+ }
- MirrorRoute getWeightedRandomSuggestion( final String canonicalUrl );
+ public synchronized MirrorRoute getMirror( String canonicalUrl )
+ {
+ MirrorRoute route = selectedRoutes.get( canonicalUrl );
+ if ( route == null )
+ {
+ route = routingTable.getMirror( canonicalUrl );
+ if ( route != null )
+ {
+ selectedRoutes.put( canonicalUrl, route );
+ }
+ }
+
+ return route;
+ }
+
+ public Map<String, MirrorRoute> getSelectedRoutes()
+ {
+ return selectedRoutes;
+ }
-}
\ No newline at end of file
+}
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/RoutingMirrorSelector.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/RoutingMirrorSelector.java?rev=1126844&r1=1126843&r2=1126844&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/RoutingMirrorSelector.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/RoutingMirrorSelector.java
Tue May 24 03:25:00 2011
@@ -18,7 +18,6 @@
package org.apache.maven.repository.mirror;
import org.apache.maven.repository.automirror.MirrorRoute;
-import org.apache.maven.repository.automirror.MirrorRoutingTable;
import org.codehaus.plexus.logging.Logger;
import org.sonatype.aether.repository.MirrorSelector;
import org.sonatype.aether.repository.RemoteRepository;
@@ -30,15 +29,15 @@ public class RoutingMirrorSelector
implements MirrorSelector
{
- private final MirrorRoutingTable mirrorRoutingTable;
+ private final MirrorRouter mirrorRouter;
private final DefaultMirrorSelector delegate = new DefaultMirrorSelector();
private final Logger logger;
-
- public RoutingMirrorSelector( final MirrorRoutingTable mirrorRoutingTable,
final Logger logger )
+
+ public RoutingMirrorSelector( final MirrorRouter mirrorRouter, final
Logger logger )
{
- this.mirrorRoutingTable = mirrorRoutingTable;
+ this.mirrorRouter = mirrorRouter;
this.logger = logger;
}
@@ -64,7 +63,7 @@ public class RoutingMirrorSelector
{
final String repoUrl = repository.getUrl();
- final MirrorRoute route =
mirrorRoutingTable.getWeightedRandomSuggestion( repoUrl );
+ final MirrorRoute route = mirrorRouter.getMirror( repoUrl );
if ( route != null )
{
Modified:
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/configuration/MirrorRouterConfiguration.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/configuration/MirrorRouterConfiguration.java?rev=1126844&r1=1126843&r2=1126844&view=diff
==============================================================================
---
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/configuration/MirrorRouterConfiguration.java
(original)
+++
maven/maven-3/branches/mirror-group-routing/maven-core/src/main/java/org/apache/maven/repository/mirror/configuration/MirrorRouterConfiguration.java
Tue May 24 03:25:00 2011
@@ -18,6 +18,8 @@ package org.apache.maven.repository.mirr
import org.apache.http.auth.UsernamePasswordCredentials;
+import java.io.File;
+
public class MirrorRouterConfiguration
{
@@ -26,6 +28,8 @@ public class MirrorRouterConfiguration
public static final String ALL_DISCOVERY_STRATEGIES = "all";
public static final String NO_DISCOVERY_STRATEGIES = "none";
+
+ private File selectedRoutesFile;
private String routerUrl;
@@ -83,5 +87,16 @@ public class MirrorRouterConfiguration
discoveryStrategies = strategies;
return this;
}
+
+ public File getSelectedRoutesFile()
+ {
+ return selectedRoutesFile;
+ }
+
+ public MirrorRouterConfiguration setSelectedRoutesFile( File
selectedRoutesFile )
+ {
+ this.selectedRoutesFile = selectedRoutesFile;
+ return this;
+ }
}
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=1126844&r1=1126843&r2=1126844&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:25:00 2011
@@ -51,11 +51,13 @@ import org.apache.maven.model.building.M
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.MirrorRouter;
+import org.apache.maven.repository.mirror.MirrorRouterException;
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.repository.mirror.loader.MirrorRouterLoader;
import org.apache.maven.settings.building.DefaultSettingsBuildingRequest;
import org.apache.maven.settings.building.SettingsBuilder;
import org.apache.maven.settings.building.SettingsBuildingRequest;
@@ -124,10 +126,12 @@ public class MavenCli
private MirrorRouterConfigBuilder routerConfBuilder;
- private MirrorRoutingTableLoader routingTableLoader;
+ private MirrorRouterLoader routerLoader;
private DefaultSecDispatcher dispatcher;
+ private MirrorRouterConfiguration routerConfig;
+
public MavenCli()
{
this( null );
@@ -426,7 +430,7 @@ public class MavenCli
settingsBuilder = container.lookup( SettingsBuilder.class );
routerConfBuilder = container.lookup( MirrorRouterConfigBuilder.class
);
- routingTableLoader = container.lookup( MirrorRoutingTableLoader.class
);
+ routerLoader = container.lookup( MirrorRouterLoader.class );
dispatcher = (DefaultSecDispatcher) container.lookup(
SecDispatcher.class, "maven" );
}
@@ -551,6 +555,15 @@ public class MavenCli
MavenExecutionResult result = maven.execute( cliRequest.request );
+ try
+ {
+ routerLoader.saveSelectedMirrors(
cliRequest.request.getMirrorRouter(), routerConfig );
+ }
+ catch ( MirrorRouterException e )
+ {
+ result.addException( e );
+ }
+
eventSpyDispatcher.onEvent( result );
eventSpyDispatcher.close();
@@ -929,10 +942,10 @@ public class MavenCli
userToolchainsFile = MavenCli.DEFAULT_USER_TOOLCHAINS_FILE;
}
- final MirrorRouterConfiguration routerConfig =
+ routerConfig =
routerConfBuilder.build( new FileMirrorRouterConfigSource(
DEFAULT_USER_EXT_CONF_DIR ) );
- MirrorRoutingTable mirrorRoutingTable = routingTableLoader.load(
routerConfig );
+ MirrorRouter mirrorRouter = routerLoader.load( routerConfig );
request.setBaseDirectory( baseDirectory ).setGoals( goals )
.setSystemProperties( cliRequest.systemProperties )
@@ -948,7 +961,7 @@ public class MavenCli
.setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
.setGlobalChecksumPolicy( globalChecksumPolicy ) // default: warn
.setUserToolchainsFile( userToolchainsFile )
- .setMirrorRoutingTable( mirrorRoutingTable );
+ .setMirrorRouter( mirrorRouter );
if ( alternatePomFile != null )
{