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 2011/02/23 21:25:30 UTC

svn commit: r1073928 - in /maven/maven-3/trunk: maven-compat/src/main/java/org/apache/maven/artifact/deployer/ maven-compat/src/main/java/org/apache/maven/artifact/installer/ maven-compat/src/main/java/org/apache/maven/artifact/repository/ maven-compat...

Author: bentmann
Date: Wed Feb 23 20:25:29 2011
New Revision: 1073928

URL: http://svn.apache.org/viewvc?rev=1073928&view=rev
Log:
[MNG-4990] RepositorySystem#resolve(request) uses two different local repositories

Added:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
      - copied, changed from r1073714, maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
Removed:
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
Modified:
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
    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/deployer/DefaultArtifactDeployer.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java?rev=1073928&r1=1073927&r2=1073928&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java Wed Feb 23 20:25:29 2011
@@ -38,13 +38,12 @@ import org.codehaus.plexus.component.ann
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.sonatype.aether.RepositorySystem;
+import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.deployment.DeployRequest;
 import org.sonatype.aether.deployment.DeployResult;
 import org.sonatype.aether.deployment.DeploymentException;
 import org.sonatype.aether.metadata.MergeableMetadata;
-import org.sonatype.aether.repository.LocalRepository;
 import org.sonatype.aether.repository.RemoteRepository;
-import org.sonatype.aether.util.DefaultRepositorySystemSession;
 import org.sonatype.aether.util.artifact.SubArtifact;
 
 @Component( role = ArtifactDeployer.class, instantiationStrategy = "per-lookup" )
@@ -79,9 +78,8 @@ public class DefaultArtifactDeployer
                         ArtifactRepository localRepository )
         throws ArtifactDeploymentException
     {
-        DefaultRepositorySystemSession session =
-            new DefaultRepositorySystemSession( legacySupport.getRepositorySession() );
-        session.setLocalRepositoryManager( LegacyLocalRepositoryManager.wrap( localRepository, repoSystem ) );
+        RepositorySystemSession session =
+            LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
 
         DeployRequest request = new DeployRequest();
 

Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java?rev=1073928&r1=1073927&r2=1073928&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java Wed Feb 23 20:25:29 2011
@@ -37,10 +37,9 @@ import org.codehaus.plexus.component.ann
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.sonatype.aether.RepositorySystem;
+import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.installation.InstallRequest;
 import org.sonatype.aether.installation.InstallationException;
-import org.sonatype.aether.repository.LocalRepository;
-import org.sonatype.aether.util.DefaultRepositorySystemSession;
 import org.sonatype.aether.util.artifact.SubArtifact;
 
 /**
@@ -72,9 +71,8 @@ public class DefaultArtifactInstaller
     public void install( File source, Artifact artifact, ArtifactRepository localRepository )
         throws ArtifactInstallationException
     {
-        DefaultRepositorySystemSession session =
-            new DefaultRepositorySystemSession( legacySupport.getRepositorySession() );
-        session.setLocalRepositoryManager( LegacyLocalRepositoryManager.wrap( localRepository, repoSystem ) );
+        RepositorySystemSession session =
+            LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
 
         InstallRequest request = new InstallRequest();
 

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=1073928&r1=1073927&r2=1073928&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 Wed Feb 23 20:25:29 2011
@@ -58,11 +58,9 @@ import org.codehaus.plexus.component.rep
 import org.codehaus.plexus.logging.Logger;
 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;
 
 /**
  * @author Jason van Zyl
@@ -129,21 +127,7 @@ public class DefaultArtifactResolver
 
     private RepositorySystemSession getSession( ArtifactRepository localRepository )
     {
-        MavenSession mavenSession = legacySupport.getSession();
-        DefaultRepositorySystemSession session;
-        if ( mavenSession != null )
-        {
-            session = new DefaultRepositorySystemSession( mavenSession.getRepositorySession() );
-        }
-        else
-        {
-            session = new DefaultRepositorySystemSession();
-        }
-        if ( localRepository != null && localRepository.getBasedir() != null )
-        {
-            session.setLocalRepositoryManager( LegacyLocalRepositoryManager.wrap( localRepository, repoSystem ) );
-        }
-        return session;
+        return LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
     }
 
     private void injectSession1( RepositoryRequest request, MavenSession session )

Copied: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java (from r1073714, maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java)
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java?p2=maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java&p1=maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java&r1=1073714&r2=1073928&rev=1073928&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java Wed Feb 23 20:25:29 2011
@@ -26,7 +26,6 @@ import java.util.List;
 import org.apache.maven.RepositoryUtils;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException;
 import org.apache.maven.repository.Proxy;
 import org.sonatype.aether.RepositorySystem;
@@ -42,6 +41,8 @@ import org.sonatype.aether.repository.Lo
 import org.sonatype.aether.repository.LocalRepository;
 import org.sonatype.aether.repository.LocalRepositoryManager;
 import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.util.DefaultRepositorySystemSession;
+import org.sonatype.aether.util.FilterRepositorySystemSession;
 
 /**
  * <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
@@ -57,16 +58,37 @@ public class LegacyLocalRepositoryManage
 
     private final LocalRepository repo;
 
-    public static LocalRepositoryManager wrap( ArtifactRepository repository, RepositorySystem system )
+    public static RepositorySystemSession overlay( ArtifactRepository repository, RepositorySystemSession session,
+                                                   RepositorySystem system )
     {
-        ArtifactRepositoryLayout layout = repository.getLayout();
-        if ( layout != null && layout.getClass().equals( DefaultRepositoryLayout.class ) )
+        if ( repository == null || repository.getBasedir() == null )
         {
-            // map the default layout to the default impl of the repo system
-            return system.newLocalRepositoryManager( new LocalRepository( repository.getBasedir() ) );
+            return session;
         }
 
-        return new LegacyLocalRepositoryManager( repository );
+        if ( session != null )
+        {
+            LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+            if ( lrm != null && lrm.getRepository().getBasedir().equals( new File( repository.getBasedir() ) ) )
+            {
+                return session;
+            }
+        }
+        else
+        {
+            session = new DefaultRepositorySystemSession();
+        }
+
+        final LocalRepositoryManager llrm = new LegacyLocalRepositoryManager( repository );
+
+        return new FilterRepositorySystemSession( session )
+        {
+            @Override
+            public LocalRepositoryManager getLocalRepositoryManager()
+            {
+                return llrm;
+            }
+        };
     }
 
     private LegacyLocalRepositoryManager( ArtifactRepository delegate )

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=1073928&r1=1073927&r2=1073928&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 Wed Feb 23 20:25:29 2011
@@ -27,6 +27,7 @@ import java.util.Set;
 
 import org.apache.maven.RepositoryUtils;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Profile;
@@ -654,7 +655,9 @@ public class DefaultProjectBuilder
             this.request = request;
             this.modelPool = modelPool;
             this.modelCache = modelCache;
-            session = request.getRepositorySession();
+            session =
+                LegacyLocalRepositoryManager.overlay( request.getLocalRepository(), request.getRepositorySession(),
+                                                      repoSystem );
             repositories = RepositoryUtils.toRepos( request.getRemoteRepositories() );
         }