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() );
     }
 
     // ------------------------------------------------------------------------


Reply via email to