Author: hboutemy
Date: Sun Jul 22 22:14:55 2012
New Revision: 1364446
URL: http://svn.apache.org/viewvc?rev=1364446&view=rev
Log:
added toNodeString() and dependent APIs
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/Maven2DependencyGraphBuilder.java
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.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=1364446&r1=1364445&r2=1364446&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
Sun Jul 22 22:14:55 2012
@@ -32,9 +32,9 @@ import org.apache.maven.shared.dependenc
*/
public interface DependencyNode
{
- public Artifact getArtifact();
+ Artifact getArtifact();
- public List<DependencyNode> getChildren();
+ List<DependencyNode> getChildren();
/**
* Applies the specified dependency node visitor to this dependency node
and its children.
@@ -44,12 +44,41 @@ public interface DependencyNode
* @return the visitor result of ending the visit to this node
* @since 1.1
*/
- public boolean accept( DependencyNodeVisitor visitor );
+ boolean accept( DependencyNodeVisitor visitor );
/**
* Gets the parent dependency node of this dependency node.
*
* @return the parent dependency node
*/
- public DependencyNode getParent();
+ DependencyNode getParent();
+
+ /**
+ * Gets the version or version range for the dependency before dependency
management was applied (if any).
+ *
+ * @return The dependency version before dependency management or {@code
null} if the version was not managed.
+ */
+ String getPremanagedVersion();
+
+ /**
+ * Gets the scope for the dependency before dependency management was
applied (if any).
+ *
+ * @return The dependency scope before dependency management or {@code
null} if the scope was not managed.
+ */
+ String getPremanagedScope();
+
+ /**
+ * A constraint on versions for a dependency. A constraint can either
consist of one or more version ranges or a single
+ * version.
+ *
+ * @return The constraint on the dependency.
+ */
+ String getVersionConstraint();
+
+ /**
+ * Returns a string representation of this dependency node.
+ *
+ * @return the string representation
+ */
+ String toNodeString();
}
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=1364446&r1=1364445&r2=1364446&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
Sun Jul 22 22:14:55 2012
@@ -13,12 +13,22 @@ public class DefaultDependencyNode
private final DependencyNode parent;
+ private final String premanagedVersion;
+
+ private final String premanagedScope;
+
+ private final String versionConstraint;
+
private List<DependencyNode> children;
- public DefaultDependencyNode( DependencyNode parent, Artifact artifact )
+ public DefaultDependencyNode( DependencyNode parent, Artifact artifact,
String premanagedVersion,
+ String premanagedScope, String
versionConstraint )
{
this.parent = parent;
this.artifact = artifact;
+ this.premanagedVersion = premanagedVersion;
+ this.premanagedScope = premanagedScope;
+ this.versionConstraint = versionConstraint;
}
/**
@@ -64,4 +74,99 @@ public class DefaultDependencyNode
{
return parent;
}
+
+ public String getPremanagedVersion()
+ {
+ return premanagedVersion;
+ }
+
+ public String getPremanagedScope()
+ {
+ return premanagedScope;
+ }
+
+ public String getVersionConstraint()
+ {
+ return versionConstraint;
+ }
+
+ public String toNodeString()
+ {
+ StringBuffer buffer = new StringBuffer();
+
+ buffer.append( artifact );
+
+ ItemAppender appender = new ItemAppender( buffer, " (", "; ", ")" );
+
+ if ( getPremanagedVersion() != null )
+ {
+ appender.append( "version managed from ", getPremanagedVersion() );
+ }
+
+ if ( getPremanagedScope() != null )
+ {
+ appender.append( "scope managed from ", getPremanagedScope() );
+ }
+
+ if ( getVersionConstraint() != null )
+ {
+ appender.append( "version selected from constraint ",
getVersionConstraint() );
+ }
+
+ appender.flush();
+
+ return buffer.toString();
+ }
+
+ /**
+ * Utility class to concatenate a number of parameters with separator
tokens.
+ */
+ private static class ItemAppender
+ {
+ private StringBuffer buffer;
+
+ private String startToken;
+
+ private String separatorToken;
+
+ private String endToken;
+
+ private boolean appended;
+
+ public ItemAppender( StringBuffer buffer, String startToken, String
separatorToken, String endToken )
+ {
+ this.buffer = buffer;
+ this.startToken = startToken;
+ this.separatorToken = separatorToken;
+ this.endToken = endToken;
+
+ appended = false;
+ }
+
+ public ItemAppender append( String item1, String item2 )
+ {
+ appendToken();
+
+ buffer.append( item1 ).append( item2 );
+
+ return this;
+ }
+
+ public void flush()
+ {
+ if ( appended )
+ {
+ buffer.append( endToken );
+
+ appended = false;
+ }
+ }
+
+ private void appendToken()
+ {
+ buffer.append( appended ? separatorToken : startToken );
+
+ appended = true;
+ }
+ }
}
Modified:
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven2DependencyGraphBuilder.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven2DependencyGraphBuilder.java?rev=1364446&r1=1364445&r2=1364446&view=diff
==============================================================================
---
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven2DependencyGraphBuilder.java
(original)
+++
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven2DependencyGraphBuilder.java
Sun Jul 22 22:14:55 2012
@@ -64,7 +64,15 @@ public class Maven2DependencyGraphBuilde
org.apache.maven.shared.dependency.tree.DependencyNode node,
ArtifactFilter filter )
{
- DefaultDependencyNode current = new DefaultDependencyNode( parent,
node.getArtifact() );
+ String versionSelectedFromRange = null;
+ if ( node.getVersionSelectedFromRange() != null )
+ {
+ versionSelectedFromRange =
node.getVersionSelectedFromRange().toString();
+ }
+
+ DefaultDependencyNode current =
+ new DefaultDependencyNode( parent, node.getArtifact(),
node.getPremanagedVersion(),
+ node.getPremanagedScope(),
versionSelectedFromRange );
List<DependencyNode> nodes = new ArrayList<DependencyNode>(
node.getChildren().size() );
for ( org.apache.maven.shared.dependency.tree.DependencyNode child :
node.getChildren() )
Modified:
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java?rev=1364446&r1=1364445&r2=1364446&view=diff
==============================================================================
---
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
(original)
+++
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
Sun Jul 22 22:14:55 2012
@@ -41,6 +41,7 @@ import org.apache.maven.shared.dependenc
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.sonatype.aether.graph.Dependency;
+import org.sonatype.aether.version.VersionConstraint;
/**
* Wrapper around Maven 3 dependency resolver.
@@ -111,7 +112,9 @@ public class Maven3DependencyGraphBuilde
private DependencyNode buildDependencyNode( DependencyNode parent,
org.sonatype.aether.graph.DependencyNode node,
Artifact artifact,
ArtifactFilter filter )
{
- DefaultDependencyNode current = new DefaultDependencyNode( parent,
artifact );
+ DefaultDependencyNode current =
+ new DefaultDependencyNode( parent, artifact,
node.getPremanagedVersion(), node.getPremanagedScope(),
+ getVersionSelectedFromRange(
node.getVersionConstraint() ) );
List<DependencyNode> nodes = new ArrayList<DependencyNode>(
node.getChildren().size() );
for ( org.sonatype.aether.graph.DependencyNode child :
node.getChildren() )
@@ -128,4 +131,29 @@ public class Maven3DependencyGraphBuilde
return current;
}
+
+ private String getVersionSelectedFromRange( VersionConstraint constraint )
+ {
+ if ( constraint == null )
+ {
+ return null;
+ }
+
+ if ( constraint.getVersion() != null )
+ {
+ return constraint.getVersion().toString();
+ }
+
+ StringBuilder sb = new StringBuilder();
+ for ( org.sonatype.aether.version.VersionRange range :
constraint.getRanges() )
+ {
+ if ( sb.length() > 0 )
+ {
+ sb.append( ',' );
+ }
+ sb.append( range );
+ }
+
+ return sb.toString();
+ }
}