mirror of https://github.com/apache/maven.git
[MNG-4990] RepositorySystem#resolve(request) uses two different local repositories
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-3/trunk@1073928 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c4f0aa5209
commit
ed12e0a541
|
@ -38,13 +38,12 @@ import org.codehaus.plexus.component.annotations.Component;
|
|||
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();
|
||||
|
||||
|
|
|
@ -37,10 +37,9 @@ import org.codehaus.plexus.component.annotations.Component;
|
|||
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();
|
||||
|
||||
|
|
|
@ -58,11 +58,9 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti
|
|||
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 )
|
||||
|
|
|
@ -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.LocalMetadataResult;
|
|||
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 LegacyLocalRepositoryManager
|
|||
|
||||
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 )
|
|
@ -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() );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue