Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
15
-
None
Description
Maven dependency tree factory produces a dependency tree where duplicates and conflicts are omitted - or present, marked, but with no children. These duplicates (conflicts) are reported through the results of the query - but there's no indication that the artifact is actually incomplete (no subtree) or where the complete subtree should be found.
An exhaustive dependency traversal is affected by that behaviour. The desired state would be to:
- for a duplicated artifact, report also a copy of the subtree: exhaustive dependency traversal will process it
- if a back reference appears, to an artifact reported higher in the branch, make a separate node instead of back reference, and leave the children empty. This prevent infinite loops during (simple) traversals.
For graph algorithms an additional API (project.dependency) should be introduced, that
- reports that a tree node is a duplicate, providing a reference to the 'master' copy of the subtree. The client may opt to skip it, process the master instead or just use the master's identification.
- report that a tree node had a conflict (which has been resolved), and what the original (conflicting) artifact is. This will usually indicate a version clash between library dependencies, but it will be useful to see it in the data.
Attachments
Issue Links
- links to