You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2012/07/23 00:14:56 UTC
svn commit: r1364446 - in
/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph:
./ internal/
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();
+ }
}