You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/09/03 11:41:28 UTC

svn commit: r992243 - in /maven/maven-3/trunk: maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java

Author: bentmann
Date: Fri Sep  3 09:41:27 2010
New Revision: 992243

URL: http://svn.apache.org/viewvc?rev=992243&view=rev
Log:
o Improved compat with legacy artifact system

Modified:
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java

Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=992243&r1=992242&r2=992243&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Fri Sep  3 09:41:27 2010
@@ -55,6 +55,7 @@ import org.codehaus.plexus.logging.Logge
 import org.sonatype.aether.RepositorySystem;
 import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.repository.LocalRepository;
+import org.sonatype.aether.repository.LocalRepositoryManager;
 import org.sonatype.aether.resolution.ArtifactRequest;
 import org.sonatype.aether.resolution.ArtifactResult;
 import org.sonatype.aether.util.DefaultRepositorySystemSession;
@@ -216,6 +217,12 @@ public class DefaultArtifactResolver
                 ArtifactRequest artifactRequest = new ArtifactRequest();
                 artifactRequest.setArtifact( RepositoryUtils.toArtifact( artifact ) );
                 artifactRequest.setRepositories( RepositoryUtils.toRepos( remoteRepositories ) );
+
+                // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not
+                LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+                String path = lrm.getPathForLocalArtifact( artifactRequest.getArtifact() );
+                artifact.setFile( new File( lrm.getRepository().getBasedir(), path ) );
+
                 result = repoSystem.resolveArtifact( session, artifactRequest );
             }
             catch ( org.sonatype.aether.resolution.ArtifactResolutionException e )

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=992243&r1=992242&r2=992243&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java Fri Sep  3 09:41:27 2010
@@ -48,6 +48,7 @@ import org.codehaus.plexus.util.Os;
 import org.codehaus.plexus.util.StringUtils;
 import org.sonatype.aether.impl.ArtifactResolver;
 import org.sonatype.aether.impl.RemoteRepositoryManager;
+import org.sonatype.aether.repository.LocalRepositoryManager;
 import org.sonatype.aether.repository.WorkspaceRepository;
 import org.sonatype.aether.resolution.ArtifactRequest;
 import org.sonatype.aether.resolution.ArtifactResult;
@@ -165,6 +166,17 @@ public class DefaultProjectBuilder
                 {
                     RepositoryUtils.toArtifacts( artifacts, resolutionResult.getDependencyGraph().getChildren(),
                                                  Collections.singletonList( project.getArtifact().getId() ), null );
+
+                    // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not
+                    LocalRepositoryManager lrm = configuration.getRepositorySession().getLocalRepositoryManager();
+                    for ( Artifact artifact : artifacts )
+                    {
+                        if ( !artifact.isResolved() )
+                        {
+                            String path = lrm.getPathForLocalArtifact( RepositoryUtils.toArtifact( artifact ) );
+                            artifact.setFile( new File( lrm.getRepository().getBasedir(), path ) );
+                        }
+                    }
                 }
                 project.setResolvedArtifacts( artifacts );
                 project.setArtifacts( artifacts );