[
http://jira.codehaus.org/browse/MNG-3380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_122782
]
luke w patterson commented on MNG-3380:
---------------------------------------
Thanks for the info, Vincent. Please let me know if the new patch is better.
Just keep in mind that the patch is not elegant at all. Basically, I check to
see if ArtifactMetadataSource changes the artifact (due to relocation) when it
retrieves ResolutionGroup. If it does change it, I repeat the portion of code
that checks for managed versions. That was a quick hack because I couldn't
find a place in the logic which was aware of all factors involved.
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
> Attachments: MNG-3380-maven-artifact.patch, patch.txt, repo.zip
>
>
> 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
--
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