You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/03/06 05:07:20 UTC

svn commit: r634148 - in /maven/artifact/trunk/src/main/java/org/apache/maven/artifact: manager/DefaultWagonManager.java manager/WagonManager.java resolver/DefaultArtifactResolver.java

Author: brett
Date: Wed Mar  5 20:07:19 2008
New Revision: 634148

URL: http://svn.apache.org/viewvc?rev=634148&view=rev
Log:
[MNG-1914] use the correct repository definition in errors if you use mirrors
Merged from r634141:634145 on maven-2.0.x branch

Modified:
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.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=634148&r1=634147&r2=634148&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 Wed Mar  5 20:07:19 2008
@@ -670,6 +670,18 @@
         }
     }
 
+    public ArtifactRepository getMirrorRepository( ArtifactRepository repository )
+    {
+        ArtifactRepository mirror = getMirror( repository.getId() );
+        if ( mirror != null )
+        {
+            repository = repositoryFactory.createArtifactRepository( mirror.getId(), mirror.getUrl(),
+                                                                     repository.getLayout(), repository.getSnapshots(),
+                                                                     repository.getReleases() );
+        }
+        return repository;
+    }
+
     private void failIfNotOnline()
         throws TransferFailedException
     {

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/WagonManager.java?rev=634148&r1=634147&r2=634148&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/WagonManager.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/WagonManager.java Wed Mar  5 20:07:19 2008
@@ -164,4 +164,6 @@
     void findAndRegisterWagons( PlexusContainer container );
 
     void setDefaultRepositoryPermissions( RepositoryPermissions permissions );
-}
\ No newline at end of file
+
+    ArtifactRepository getMirrorRepository( ArtifactRepository repository );
+}

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=634148&r1=634147&r2=634148&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Wed Mar  5 20:07:19 2008
@@ -44,6 +44,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.HashMap;
 
 /**
  * @author Jason van Zyl
@@ -198,25 +199,18 @@
                     {
                         throw new ArtifactResolutionException(
                             "Failed to resolve artifact, possibly due to a repository list that is not appropriately equipped for this artifact's metadata.",
-                            artifact,
-                            remoteRepositories );
+                            artifact, getMirroredRepositories( remoteRepositories ) );
                     }
                 }
                 catch ( ResourceDoesNotExistException e )
                 {
-                    throw new ArtifactNotFoundException(
-                        e.getMessage(),
-                        artifact,
-                        remoteRepositories,
-                        e );
+                    throw new ArtifactNotFoundException( e.getMessage(), artifact,
+                                                         getMirroredRepositories( remoteRepositories ), e );
                 }
                 catch ( TransferFailedException e )
                 {
-                    throw new ArtifactResolutionException(
-                        e.getMessage(),
-                        artifact,
-                        remoteRepositories,
-                        e );
+                    throw new ArtifactResolutionException( e.getMessage(), artifact,
+                                                           getMirroredRepositories( remoteRepositories ), e );
                 }
 
                 resolved = true;
@@ -250,10 +244,8 @@
                     catch ( IOException e )
                     {
                         throw new ArtifactResolutionException(
-                            "Unable to copy resolved artifact for local use: " + e.getMessage(),
-                            artifact,
-                            remoteRepositories,
-                            e );
+                            "Unable to copy resolved artifact for local use: " + e.getMessage(), artifact,
+                            getMirroredRepositories( remoteRepositories ), e );
                     }
                 }
 
@@ -499,14 +491,23 @@
 
         if ( missingArtifacts.size() > 0 )
         {
-            throw new MultipleArtifactsNotFoundException(
-                originatingArtifact,
-                resolvedArtifacts,
-                missingArtifacts,
-                remoteRepositories );
+            throw new MultipleArtifactsNotFoundException( originatingArtifact, resolvedArtifacts, missingArtifacts,
+                                                          getMirroredRepositories( remoteRepositories ) );
         }
 
         return result;
+    }
+
+    private List getMirroredRepositories( List remoteRepositories )
+    {
+        Map repos = new HashMap();
+        for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
+        {
+            ArtifactRepository repository = (ArtifactRepository) i.next();
+            ArtifactRepository repo = wagonManager.getMirrorRepository( repository );
+            repos.put( repo.getId(), repo );
+        }
+        return new ArrayList( repos.values() );
     }
 
     // ------------------------------------------------------------------------