Author: bimargulies Date: Wed Oct 7 19:58:29 2015 New Revision: 1707376 URL: http://svn.apache.org/viewvc?rev=1707376&view=rev Log: MDEP-509: add optional to the display of the tree when available.
Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java?rev=1707376&r1=1707375&r2=1707376&view=diff ============================================================================== --- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java (original) +++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyNode.java Wed Oct 7 19:58:29 2015 @@ -87,4 +87,9 @@ public interface DependencyNode * @return the string representation */ String toNodeString(); + + /** + * @return true for an optional dependency. + */ + Boolean getOptional(); } Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java?rev=1707376&r1=1707375&r2=1707376&view=diff ============================================================================== --- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java (original) +++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java Wed Oct 7 19:58:29 2015 @@ -42,6 +42,8 @@ public class DefaultDependencyNode imple private List<DependencyNode> children; + private Boolean optional; + /** * Constructs the DefaultDependencyNode. * @@ -61,6 +63,17 @@ public class DefaultDependencyNode imple this.versionConstraint = versionConstraint; } + public DefaultDependencyNode( DependencyNode parent, Artifact artifact, String premanagedVersion, + String premanagedScope, String versionConstraint, Boolean optional ) + { + this.parent = parent; + this.artifact = artifact; + this.premanagedVersion = premanagedVersion; + this.premanagedScope = premanagedScope; + this.versionConstraint = versionConstraint; + this.optional = optional; + } + /** * Applies the specified dependency node visitor to this dependency node and its children. * @@ -139,6 +152,12 @@ public class DefaultDependencyNode imple return versionConstraint; } + @Override + public Boolean getOptional() + { + return optional; + } + /** * @return Stringified representation of this DependencyNode. */ @@ -166,7 +185,12 @@ public class DefaultDependencyNode imple appender.append( "version selected from constraint ", getVersionConstraint() ); } + appender.flush(); + if ( optional != null && optional ) + { + buffer.append( " (optional) " ); + } return buffer.toString(); } Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java?rev=1707376&r1=1707375&r2=1707376&view=diff ============================================================================== --- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java (original) +++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java Wed Oct 7 19:58:29 2015 @@ -207,9 +207,16 @@ public class Maven31DependencyGraphBuild String premanagedVersion = null; // DependencyManagerUtils.getPremanagedVersion( node ); String premanagedScope = null; // DependencyManagerUtils.getPremanagedScope( node ); + Boolean optional = null; + if ( node.getDependency() != null ) + { + optional = node.getDependency().isOptional(); + } + DefaultDependencyNode current = new DefaultDependencyNode( parent, artifact, premanagedVersion, premanagedScope, - getVersionSelectedFromRange( node.getVersionConstraint() ) ); + getVersionSelectedFromRange( node.getVersionConstraint() ), + optional ); List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() ); for ( org.eclipse.aether.graph.DependencyNode child : node.getChildren() ) Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java?rev=1707376&r1=1707375&r2=1707376&view=diff ============================================================================== --- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java (original) +++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java Wed Oct 7 19:58:29 2015 @@ -87,7 +87,8 @@ public class BuildingDependencyNodeVisit DefaultDependencyNode newNode = new DefaultDependencyNode( parentNodes.isEmpty() ? null : parentNodes.peek(), node.getArtifact(), node.getPremanagedVersion(), node.getPremanagedScope(), - node.getVersionConstraint() ); + node.getVersionConstraint(), + node.getOptional() ); newNode.setChildren( new ArrayList<DependencyNode>() ); if ( parentNodes.empty() )