[ 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