You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2015/05/07 20:57:50 UTC
svn commit: r1678256 - in
/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal:
Maven30ArtifactResolver.java Maven31ArtifactResolver.java
Author: rfscholte
Date: Thu May 7 18:57:49 2015
New Revision: 1678256
URL: http://svn.apache.org/r1678256
Log:
Ensure that relocation is respected
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java?rev=1678256&r1=1678255&r2=1678256&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java Thu May 7 18:57:49 2015
@@ -32,6 +32,9 @@ import org.sonatype.aether.RepositorySys
import org.sonatype.aether.RepositorySystemSession;
import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.resolution.ArtifactDescriptorException;
+import org.sonatype.aether.resolution.ArtifactDescriptorRequest;
+import org.sonatype.aether.resolution.ArtifactDescriptorResult;
import org.sonatype.aether.resolution.ArtifactRequest;
import org.sonatype.aether.resolution.ArtifactResolutionException;
@@ -47,33 +50,40 @@ public class Maven30ArtifactResolver
List<ArtifactRepository> remoteRepositories )
throws ArtifactResolverException
{
- ArtifactRequest request = new ArtifactRequest();
-
Artifact aetherArtifact =
(Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact", org.apache.maven.artifact.Artifact.class,
mavenArtifact );
- request.setArtifact( aetherArtifact );
+ @SuppressWarnings( "unchecked" )
List<RemoteRepository> aetherRepositories =
(List<RemoteRepository>) Invoker.invoke( RepositoryUtils.class, "toRepos",
List.class, remoteRepositories );
- request.setRepositories( aetherRepositories );
RepositorySystemSession session =
(RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" );
try
{
+ // use descriptor to respect relocation
+ ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest( aetherArtifact, aetherRepositories, null );
+
+ ArtifactDescriptorResult descriptorResult = repositorySystem.readArtifactDescriptor( session, descriptorRequest );
+
+ ArtifactRequest request = new ArtifactRequest( descriptorResult.getArtifact(), aetherRepositories, null );
+
Artifact resolvedArtifact = repositorySystem.resolveArtifact( session, request ).getArtifact();
return (org.apache.maven.artifact.Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
Artifact.class, resolvedArtifact );
}
+ catch ( ArtifactDescriptorException e )
+ {
+ throw new ArtifactResolverException( e.getMessage(), e );
+ }
catch ( ArtifactResolutionException e )
{
throw new ArtifactResolverException( e.getMessage(), e );
}
-
}
}
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java?rev=1678256&r1=1678255&r2=1678256&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java Thu May 7 18:57:49 2015
@@ -31,9 +31,12 @@ import org.codehaus.plexus.component.ann
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
+import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorResult;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.eclipse.aether.repository.RemoteRepository;
@Component( role = ArtifactResolver.class, hint = "maven31" )
public class Maven31ArtifactResolver
@@ -47,23 +50,27 @@ public class Maven31ArtifactResolver
List<ArtifactRepository> remoteRepositories )
throws ArtifactResolverException
{
- ArtifactRequest request = new ArtifactRequest();
-
Artifact aetherArtifact =
(Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact", org.apache.maven.artifact.Artifact.class,
mavenArtifact );
- request.setArtifact( aetherArtifact );
+ @SuppressWarnings( "unchecked" )
List<RemoteRepository> aetherRepositories =
(List<RemoteRepository>) Invoker.invoke( RepositoryUtils.class, "toRepos",
List.class, remoteRepositories );
- request.setRepositories( aetherRepositories );
RepositorySystemSession session =
(RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" );
try
{
+ // use descriptor to respect relocation
+ ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest( aetherArtifact, aetherRepositories, null );
+
+ ArtifactDescriptorResult descriptorResult = repositorySystem.readArtifactDescriptor( session, descriptorRequest );
+
+ ArtifactRequest request = new ArtifactRequest( descriptorResult.getArtifact(), aetherRepositories, null );
+
Artifact resolvedArtifact = repositorySystem.resolveArtifact( session, request ).getArtifact();
return (org.apache.maven.artifact.Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
@@ -73,6 +80,10 @@ public class Maven31ArtifactResolver
{
throw new ArtifactResolverException( e.getMessage(), e );
}
+ catch ( ArtifactDescriptorException e )
+ {
+ throw new ArtifactResolverException( e.getMessage(), e );
+ }
}
}