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:33:46 UTC
svn commit: r1126856 - in /maven/maven-3/branches/mirror-group-routing:
maven-routem-api/src/main/java/org/apache/maven/artifact/router/
maven-routem-impl/src/main/java/org/apache/maven/artifact/router/conf/
maven-routem-impl/src/main/java/org/apache/m...
Author: jdcasey
Date: Tue May 24 03:33:46 2011
New Revision: 1126856
URL: http://svn.apache.org/viewvc?rev=1126856&view=rev
Log:
started refactoring router loading/discovery to have discovery strategies hand back ArtifactRouter instances, rather than having a DTO for it. Now, need to consolidate the HTTP access and somehow align it with the Wagon APIs
Removed:
maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/DiscoveryResult.java
Modified:
maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java
maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/conf/FileRouterConfigBuilder.java
maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/ArtifactRouterDiscoveryStrategy.java
maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/DNSDiscoveryStrategy.java
maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/loader/DefaultRouterLoader.java
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java?rev=1126856&r1=1126855&r2=1126856&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java Tue May 24 03:33:46 2011
@@ -47,6 +47,24 @@ public final class ArtifactRouter
selectedMirrors.clear();
return this;
}
+
+ public synchronized ArtifactRouter merge( ArtifactRouter other )
+ {
+ addMirrors( other.mirrors );
+ addGroups( other.groups.values() );
+
+ for ( Map.Entry<String, MirrorRoute> entry : other.selectedMirrors.entrySet() )
+ {
+ String url = entry.getKey();
+
+ if ( !selectedMirrors.containsKey( url ) )
+ {
+ selectedMirrors.put( url, entry.getValue() );
+ }
+ }
+
+ return this;
+ }
public synchronized ArtifactRouter addMirrors( final Collection<MirrorRoute> mirrors )
{
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/conf/FileRouterConfigBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/conf/FileRouterConfigBuilder.java?rev=1126856&r1=1126855&r2=1126856&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/conf/FileRouterConfigBuilder.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/conf/FileRouterConfigBuilder.java Tue May 24 03:33:46 2011
@@ -22,8 +22,6 @@ package org.apache.maven.artifact.router
import static org.codehaus.plexus.util.IOUtil.close;
import static org.codehaus.plexus.util.StringUtils.isNotBlank;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
import java.io.File;
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/ArtifactRouterDiscoveryStrategy.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/ArtifactRouterDiscoveryStrategy.java?rev=1126856&r1=1126855&r2=1126856&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/ArtifactRouterDiscoveryStrategy.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/ArtifactRouterDiscoveryStrategy.java Tue May 24 03:33:46 2011
@@ -19,12 +19,13 @@ package org.apache.maven.artifact.router
* under the License.
*/
+import org.apache.maven.artifact.router.ArtifactRouter;
import org.apache.maven.artifact.router.ArtifactRouterException;
public interface ArtifactRouterDiscoveryStrategy
{
- DiscoveryResult findRouter()
+ ArtifactRouter findRouter()
throws ArtifactRouterException;
}
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/DNSDiscoveryStrategy.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/DNSDiscoveryStrategy.java?rev=1126856&r1=1126855&r2=1126856&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/DNSDiscoveryStrategy.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/discovery/DNSDiscoveryStrategy.java Tue May 24 03:33:46 2011
@@ -19,8 +19,13 @@ package org.apache.maven.artifact.router
* under the License.
*/
+import org.apache.maven.artifact.router.ArtifactRouter;
import org.apache.maven.artifact.router.ArtifactRouterException;
+import org.apache.maven.artifact.router.GroupRoute;
+import org.apache.maven.artifact.router.MirrorRoute;
import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.Logger;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
@@ -29,6 +34,7 @@ import javax.naming.directory.InitialDir
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
@@ -37,8 +43,11 @@ import java.util.Map;
final class DNSDiscoveryStrategy
implements ArtifactRouterDiscoveryStrategy
{
+
+ @Requirement
+ private Logger logger;
- public DiscoveryResult findRouter()
+ public ArtifactRouter findRouter()
throws ArtifactRouterException
{
final Map<String, String> env = new HashMap<String, String>();
@@ -104,9 +113,47 @@ final class DNSDiscoveryStrategy
return null;
}
- private DiscoveryResult parse( String record )
+ private ArtifactRouter parse( String record )
{
- return null;
+ ArtifactRouter router = new ArtifactRouter();
+
+ String[] sections = record.split(";");
+ for ( String section : sections )
+ {
+ String[] kv = section.split( "=" );
+ if ( kv.length < 2 )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "Skipping DNS TXT section: '" + section + "': it is not a value key-value pair." );
+ }
+
+ continue;
+ }
+
+ if ( "mirrors".equalsIgnoreCase( kv[0] ) )
+ {
+ router.addMirrors( loadMirrorsFrom( kv[1] ) );
+ }
+ else if ( "groups".equalsIgnoreCase( kv[0] ) )
+ {
+ router.addGroups( loadGroupsFrom( kv[1] ) );
+ }
+ }
+
+ return router;
+ }
+
+ private Collection<GroupRoute> loadGroupsFrom( String string )
+ {
+ // TODO Implement DNSDiscoveryStrategy.loadGroupsFrom
+ throw new UnsupportedOperationException( "Not Implemented." );
}
+ private Collection<MirrorRoute> loadMirrorsFrom( String string )
+ {
+ // TODO Implement DNSDiscoveryStrategy.loadMirrorsFrom
+ throw new UnsupportedOperationException( "Not Implemented." );
+ }
+
}
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/loader/DefaultRouterLoader.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/loader/DefaultRouterLoader.java?rev=1126856&r1=1126855&r2=1126856&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/loader/DefaultRouterLoader.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-impl/src/main/java/org/apache/maven/artifact/router/loader/DefaultRouterLoader.java Tue May 24 03:33:46 2011
@@ -40,7 +40,6 @@ import org.apache.maven.artifact.router.
import org.apache.maven.artifact.router.MirrorRoute;
import org.apache.maven.artifact.router.conf.ArtifactRouterConfiguration;
import org.apache.maven.artifact.router.discovery.ArtifactRouterDiscoveryStrategy;
-import org.apache.maven.artifact.router.discovery.DiscoveryResult;
import org.apache.maven.artifact.router.io.ArtifactRouteSerializer;
import org.apache.maven.artifact.router.io.ArtifactRouterModelException;
import org.codehaus.plexus.component.annotations.Component;
@@ -236,21 +235,12 @@ public class DefaultRouterLoader
}
}
- DiscoveryResult discoveryResult = null;
for ( final ArtifactRouterDiscoveryStrategy strategy : strats )
{
- discoveryResult = strategy.findRouter();
- if ( discoveryResult != null )
+ ArtifactRouter result = strategy.findRouter();
+ if ( result != null )
{
- if ( discoveryResult.getMirrorsUrl() != null )
- {
- routes.addMirrors( getMirrorMapping( discoveryResult.getMirrorsUrl(), config, client ) );
- }
-
- if ( discoveryResult.getGroupsUrl() != null )
- {
- routes.addGroups( getGroupMapping( discoveryResult.getGroupsUrl(), config, client ) );
- }
+ routes.merge( result );
}
}
}