[ 
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)

Reply via email to