You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Bernd Vogt (JIRA)" <ji...@codehaus.org> on 2012/11/22 18:10:13 UTC

[jira] (MNG-5385) Session overlayed by LegacyLocalRepositoryManager.overlay(...) returns different local repositories

Bernd Vogt created MNG-5385:
-------------------------------

             Summary: Session overlayed by LegacyLocalRepositoryManager.overlay(...) returns different local repositories
                 Key: MNG-5385
                 URL: https://jira.codehaus.org/browse/MNG-5385
             Project: Maven 2 & 3
          Issue Type: Bug
    Affects Versions: 3.0.4
            Reporter: Bernd Vogt
            Priority: Critical
         Attachments: LegacyLocalRepositoryManager.java.patch, LegacyLocalRepositoryManagerTest.java

To use a custom local repository during the resolution of an artifact, you have to overlay the default repo session with the custom information. For that LegacyLocalRepositoryManager.overlay(...) is intended. But after overlaying the current session with a custom local repository the returend overlayed session knows two local repositories:

{noformat}
RepositorySystemSession overlayed = egacyLocalRepositoryManager.overlay(myLocalRepo, session, system);

overlayed.getLocalRepositoryManager().getRepository() // returns 'myLocalRepo'
overlayed.getLocalRepository() // should return 'myLocalRepo' but returns the default local repositoy
{noformat}

This is a problem, because both methods are used to get the local repo during artifact resolution, e.g.

{noformat}
class org.apache.maven.repository.internal.DefaultVersionResolver.Key
{
public Key( RepositorySystemSession session, VersionRequest request )
        {
            ...
            localRepo = session.getLocalRepository().getBasedir();
{noformat},

{noformat}
class org.sonatype.aether.impl.internal.DefaultMetadataResolver
{
    private List<MetadataResult> resolve( RepositorySystemSession session,
                                          Collection<? extends MetadataRequest> requests )
    {
       ...
       LocalRepository localRepo = session.getLocalRepositoryManager().getRepository();
{noformat}

(Critical because of our tooling to materialize artifacts to a specified folder is broken since we migrated from Maven 2 to 3...)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira