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