[
https://issues.apache.org/jira/browse/MSHARED-1454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17911163#comment-17911163
]
ASF GitHub Bot commented on MSHARED-1454:
-----------------------------------------
LogFlames commented on code in PR #50:
URL:
https://github.com/apache/maven-dependency-tree/pull/50#discussion_r1907512869
##########
src/main/java/org/apache/maven/shared/dependency/graph/ConflictData.java:
##########
@@ -32,31 +32,70 @@ public class ConflictData {
private Boolean originaOptionality;
+ /**
+ * Construct ConflictData. Containing information about conflicts during
dependency resolution.
+ * Either this node lost the conflict and winnerVersion is set with the
versionwof the winnig node,
+ * or this node won and winnerVersion is @code{null}.
+ * If this node won ignoredScope can contain potential scopes that were
ignored during conflict resolution.
+ *
+ * @param winnerVersion the version of the dependency that was selected.
+ * @param ignoredScope the scope
+ */
public ConflictData(String winnerVersion, String ignoredScope) {
this.winnerVersion = winnerVersion;
this.ignoredScope = ignoredScope;
}
+ /**
+ * In case of a conflict, the version of the dependency that was selected.
+ *
+ * @return the version of the dependency node that was selected.
+ */
public String getWinnerVersion() {
return winnerVersion;
}
+ /**
+ * Original scope of a rejected dependency due to a conflict.
+ *
+ * @return the original scope of the dependency that was updated from.
+ */
public String getOriginalScope() {
return originalScope;
}
+ /**
+ * Set original scope of a rejected dependency due to a conflict.
+ *
+ * @param originalScope the original scope of the dependency that was
updated from.
+ */
public void setOriginalScope(String originalScope) {
this.originalScope = originalScope;
}
+ /**
+ * Original optionality of a rejected dependency due to a conflict.
+ *
+ * @return the original optionality of the dependency.
+ */
public Boolean getOriginaOptionality() {
return originaOptionality;
}
+ /**
+ * Set original optionality of a rejected dependency due to a conflict.
+ *
+ * @param originaOptionality the original optionality of the dependency.
+ */
public void setOriginaOptionality(Boolean originaOptionality) {
Review Comment:
OriginalOptionality is neither set or gotten anywhere in the codebase, I
think it is there for sake of completeness of
https://maven.apache.org/resolver/apidocs/org/eclipse/aether/util/graph/transformer/ConflictResolver.html.
> The nodes that were rejected during conflict resolution have no children
and link back to the winner node via the
[NODE_DATA_WINNER](https://maven.apache.org/resolver/apidocs/org/eclipse/aether/util/graph/transformer/ConflictResolver.html#NODE_DATA_WINNER)
key in their custom data. Additionally, the keys
[NODE_DATA_ORIGINAL_SCOPE](https://maven.apache.org/resolver/apidocs/org/eclipse/aether/util/graph/transformer/ConflictResolver.html#NODE_DATA_ORIGINAL_SCOPE)
and
[NODE_DATA_ORIGINAL_OPTIONALITY](https://maven.apache.org/resolver/apidocs/org/eclipse/aether/util/graph/transformer/ConflictResolver.html#NODE_DATA_ORIGINAL_OPTIONALITY)
are used to store the original scope and optionality of each node.
OriginalScope is not set anywhere, but the getOriginalScope is used here
https://github.com/apache/maven-dependency-tree/blob/a7115273f1a6730eb226fac12128d02265da47b8/src/main/java/org/apache/maven/shared/dependency/graph/internal/VerboseDependencyNode.java#L70.
The setOriginalScope was removed in this commit
https://github.com/apache/maven-dependency-tree/commit/33d2f53b1ddba7f3d40f06d8b8a7dec20c72e491,
maybe VerboseDependencyNode wasn't updated along with everything else in that
commit.
Conclusion?
Remove OriginalOptionality and OriginalScope (both variables and
setters/getters) entirely from ConflictData.java and VerboseDependencyNode.java?
> Conflict Data on VerboseDependencyNode is hidden
> ------------------------------------------------
>
> Key: MSHARED-1454
> URL: https://issues.apache.org/jira/browse/MSHARED-1454
> Project: Maven Shared Components
> Issue Type: New Feature
> Components: maven-dependency-tree
> Reporter: Elias Lundell
> Priority: Minor
> Labels: pull-request-available
>
> In maven-dependency-plugin there are multiple export formats for the
> dependency tree, these include Json, DOT, GraphML etc. When creating the
> normal tree all information is there to format it nicely as e.g. Json.
> However, when running `{{{}mvn dependency:tree -Dverbose{}}}`, all nodes are
> included (as they are VerboseDependencyNode) but since VerboseDependencyNode
> is internal in maven-dependency-tree there is no (clean) way to include
> information of which nodes are included or not (see
> https://issues.apache.org/jira/browse/MDEP-962).
> The only current way to include this information would be to parse the
> `{{{}toNodeString(){}}}` output (where excluded nodes are wrapped in
> parenthesis).
> I propose to expose ConflictData on the DependencyNode and make it null for
> DefaultDependencyNode to allow for more detailed information in the
> machine-readable formats.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)