You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org> on 2008/11/29 18:39:20 UTC

[jira] Updated: (MNG-3380) MavenMetadataSource retrieves ResolutionGroup without consulting ManagedVersionMap, is problem when relocation

     [ http://jira.codehaus.org/browse/MNG-3380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Bentmann updated MNG-3380:
-----------------------------------

    Description: 
Consider the following scenario:
{code:xml}
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>root-groupId</groupId>
  <artifactId>root-artifactId</artifactId>
  <version>1</version>
  <dependencies>
    <dependency>
      <groupId>direct-dependency-groupId</groupId>
      <artifactId>direct-dependency-artifactId</artifactId>
      <version>1</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>transitive-dependency-new-groupId</groupId>
        <artifactId>transitive-dependency-artifactId</artifactId>
        <version>2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
{code}
{code:xml}
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>direct-dependency-groupId</groupId>
  <artifactId>direct-dependency-artifactId</artifactId>
  <version>1</version>
  <dependencies>
    <dependency>
      <groupId>transitive-dependency-old-groupId</groupId>
      <artifactId>transitive-dependency-artifactId</artifactId>
      <version>1</version>
    </dependency>
  </dependencies>
</project>       
{code}
{code:xml}       
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>transitive-dependency-old-groupId</groupId>
  <artifactId>transitive-dependency-artifactId</artifactId>
  <version>1</version>
  <distributionManagement>
    <relocation>
      <groupId>transitive-dependency-new-groupId</groupId>
    </relocation>
  </distributionManagement>
</project>       
{code}
{code:xml}
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>transitive-dependency-new-groupId</groupId>
  <artifactId>transitive-dependency-artifactId</artifactId>
  <version>1</version>
  <dependencies>
    <dependency>
      <groupId>other-groupId</groupId>
      <artifactId>other-artifactId-a</artifactId>
      <version>1</version>
    </dependency>
  </dependencies>
</project>
{code}
{code:xml}
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>transitive-dependency-new-groupId</groupId>
  <artifactId>transitive-dependency-artifactId</artifactId>
  <version>2</version>
  <dependencies>
    <dependency>
      <groupId>other-groupId</groupId>
      <artifactId>other-artifactId-a</artifactId>
      <version>1</version>
    </dependency>
    <dependency>
      <groupId>other-groupId</groupId>
      <artifactId>other-artifactId-b</artifactId>
      <version>1</version>
    </dependency>
  </dependencies>
</project>
{code}
{noformat}
--------------------------------------------------------------        
actual dependency:tree 
    
 root-groupId:root-artifactId:jar:1
 \- direct-dependency-groupId:direct-dependency-artifactId:jar:1:compile
    \- transitive-dependency-new-groupId:transitive-dependency-artifactId:jar:2:compile (version managed from 1)
       \- other-groupId:other-artifactId-a:jar:1:compile           
-------------------------------------------------------------- 
expected dependency:tree 
    
 root-groupId:root-artifactId:jar:1
 \- direct-dependency-groupId:direct-dependency-artifactId:jar:1:compile
    \- transitive-dependency-new-groupId:transitive-dependency-artifactId:jar:2:compile (version managed from 1)
       \- other-groupId:other-artifactId-a:jar:1:compile    
       \- other-groupId:other-artifactId-b:jar:1:compile <-- missing from actual result    
-------------------------------------------------------------- 
{noformat} 
As you can see from the listing above, other-groupId:other-artifactId-b:jar:1:compile is missing from the dependency list.  

I have attached the zipped repo which was used when generating the dependency:tree listings shown above.  I also attached a crude temporary patch which my team is currently using to resolve this issue.  After ignoring whitespace changes, it is about 10 lines different.


Thanks,

Luke

  was:
Consider the following scenario:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>root-groupId</groupId>
  <artifactId>root-artifactId</artifactId>
  <version>1</version>
  <dependencies>
    <dependency>
      <groupId>direct-dependency-groupId</groupId>
      <artifactId>direct-dependency-artifactId</artifactId>
      <version>1</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>transitive-dependency-new-groupId</groupId>
        <artifactId>transitive-dependency-artifactId</artifactId>
        <version>2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>

  <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>direct-dependency-groupId</groupId>
    <artifactId>direct-dependency-artifactId</artifactId>
    <version>1</version>
    <dependencies>
      <dependency>
        <groupId>transitive-dependency-old-groupId</groupId>
        <artifactId>transitive-dependency-artifactId</artifactId>
        <version>1</version>
      </dependency>
    </dependencies>
  </project>       
       
    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>transitive-dependency-old-groupId</groupId>
      <artifactId>transitive-dependency-artifactId</artifactId>
      <version>1</version>
      <distributionManagement>
        <relocation>
          <groupId>transitive-dependency-new-groupId</groupId>
        </relocation>
      </distributionManagement>
    </project>       

    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>transitive-dependency-new-groupId</groupId>
      <artifactId>transitive-dependency-artifactId</artifactId>
      <version>1</version>
      <dependencies>
        <dependency>
          <groupId>other-groupId</groupId>
          <artifactId>other-artifactId-a</artifactId>
          <version>1</version>
        </dependency>
      </dependencies>
    </project>

    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>transitive-dependency-new-groupId</groupId>
      <artifactId>transitive-dependency-artifactId</artifactId>
      <version>2</version>
      <dependencies>
        <dependency>
          <groupId>other-groupId</groupId>
          <artifactId>other-artifactId-a</artifactId>
          <version>1</version>
        </dependency>
        <dependency>
          <groupId>other-groupId</groupId>
          <artifactId>other-artifactId-b</artifactId>
          <version>1</version>
        </dependency>
      </dependencies>
    </project>       
       
--------------------------------------------------------------        
actual dependency:tree 
    
 root-groupId:root-artifactId:jar:1
 \- direct-dependency-groupId:direct-dependency-artifactId:jar:1:compile
    \- transitive-dependency-new-groupId:transitive-dependency-artifactId:jar:2:compile (version managed from 1)
       \- other-groupId:other-artifactId-a:jar:1:compile           
-------------------------------------------------------------- 
expected dependency:tree 
    
 root-groupId:root-artifactId:jar:1
 \- direct-dependency-groupId:direct-dependency-artifactId:jar:1:compile
    \- transitive-dependency-new-groupId:transitive-dependency-artifactId:jar:2:compile (version managed from 1)
       \- other-groupId:other-artifactId-a:jar:1:compile    
       \- other-groupId:other-artifactId-b:jar:1:compile <-- missing from actual result    
-------------------------------------------------------------- 
 
As you can see from the listing above, other-groupId:other-artifactId-b:jar:1:compile is missing from the dependency list.  

I have attached the zipped repo which was used when generating the dependency:tree listings shown above.  I also attached a crude temporary patch which my team is currently using to resolve this issue.  After ignoring whitespace changes, it is about 10 lines different.


Thanks,

Luke


> MavenMetadataSource retrieves ResolutionGroup without consulting ManagedVersionMap, is problem when relocation
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-3380
>                 URL: http://jira.codehaus.org/browse/MNG-3380
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.0.8
>            Reporter: luke w patterson
>            Assignee: John Casey
>             Fix For: 2.0.10, 2.1.0-M1
>
>         Attachments: MNG-3380-integration-test.zip, MNG-3380-maven-artifact.patch, patch.txt, repo.zip
>
>
> Consider the following scenario:
> {code:xml}
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>root-groupId</groupId>
>   <artifactId>root-artifactId</artifactId>
>   <version>1</version>
>   <dependencies>
>     <dependency>
>       <groupId>direct-dependency-groupId</groupId>
>       <artifactId>direct-dependency-artifactId</artifactId>
>       <version>1</version>
>     </dependency>
>   </dependencies>
>   <dependencyManagement>
>     <dependencies>
>       <dependency>
>         <groupId>transitive-dependency-new-groupId</groupId>
>         <artifactId>transitive-dependency-artifactId</artifactId>
>         <version>2</version>
>       </dependency>
>     </dependencies>
>   </dependencyManagement>
> </project>
> {code}
> {code:xml}
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>direct-dependency-groupId</groupId>
>   <artifactId>direct-dependency-artifactId</artifactId>
>   <version>1</version>
>   <dependencies>
>     <dependency>
>       <groupId>transitive-dependency-old-groupId</groupId>
>       <artifactId>transitive-dependency-artifactId</artifactId>
>       <version>1</version>
>     </dependency>
>   </dependencies>
> </project>       
> {code}
> {code:xml}       
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>transitive-dependency-old-groupId</groupId>
>   <artifactId>transitive-dependency-artifactId</artifactId>
>   <version>1</version>
>   <distributionManagement>
>     <relocation>
>       <groupId>transitive-dependency-new-groupId</groupId>
>     </relocation>
>   </distributionManagement>
> </project>       
> {code}
> {code:xml}
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>transitive-dependency-new-groupId</groupId>
>   <artifactId>transitive-dependency-artifactId</artifactId>
>   <version>1</version>
>   <dependencies>
>     <dependency>
>       <groupId>other-groupId</groupId>
>       <artifactId>other-artifactId-a</artifactId>
>       <version>1</version>
>     </dependency>
>   </dependencies>
> </project>
> {code}
> {code:xml}
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>transitive-dependency-new-groupId</groupId>
>   <artifactId>transitive-dependency-artifactId</artifactId>
>   <version>2</version>
>   <dependencies>
>     <dependency>
>       <groupId>other-groupId</groupId>
>       <artifactId>other-artifactId-a</artifactId>
>       <version>1</version>
>     </dependency>
>     <dependency>
>       <groupId>other-groupId</groupId>
>       <artifactId>other-artifactId-b</artifactId>
>       <version>1</version>
>     </dependency>
>   </dependencies>
> </project>
> {code}
> {noformat}
> --------------------------------------------------------------        
> actual dependency:tree 
>     
>  root-groupId:root-artifactId:jar:1
>  \- direct-dependency-groupId:direct-dependency-artifactId:jar:1:compile
>     \- transitive-dependency-new-groupId:transitive-dependency-artifactId:jar:2:compile (version managed from 1)
>        \- other-groupId:other-artifactId-a:jar:1:compile           
> -------------------------------------------------------------- 
> expected dependency:tree 
>     
>  root-groupId:root-artifactId:jar:1
>  \- direct-dependency-groupId:direct-dependency-artifactId:jar:1:compile
>     \- transitive-dependency-new-groupId:transitive-dependency-artifactId:jar:2:compile (version managed from 1)
>        \- other-groupId:other-artifactId-a:jar:1:compile    
>        \- other-groupId:other-artifactId-b:jar:1:compile <-- missing from actual result    
> -------------------------------------------------------------- 
> {noformat} 
> As you can see from the listing above, other-groupId:other-artifactId-b:jar:1:compile is missing from the dependency list.  
> I have attached the zipped repo which was used when generating the dependency:tree listings shown above.  I also attached a crude temporary patch which my team is currently using to resolve this issue.  After ignoring whitespace changes, it is about 10 lines different.
> Thanks,
> Luke

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira