Added the range information to toString. Now we need maven artifact 2.0.9 because of the missing VersionRange.equals in 2.0.8

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@633191 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index d83ea17..7e439d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,4 +77,13 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-artifact</artifactId>
+        <version>2.0.9-SNAPSHOT</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
 </project>
diff --git a/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java b/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java
index 97e8daa..c759d78 100644
--- a/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java
+++ b/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java
@@ -713,6 +713,12 @@
             appender.append( "scope not updated to ", getFailedUpdateScope() );
         }
         
+        if ( getVersionSelectedFromRange() != null )
+        {
+            appender.append( "version selected from range ", getVersionSelectedFromRange().toString() );
+            appender.append( "available versions ", getAvailableVersions().toString() );
+        }
+        
         switch ( state )
         {
             case INCLUDED:
@@ -762,6 +768,7 @@
 
     /*
      * @see java.lang.Object#hashCode()
+     * @TODO probably better using commons-lang HashCodeBuilder
      */
     public int hashCode()
     {
@@ -780,12 +787,15 @@
         hashCode = hashCode * 31 + nullHashCode( getPremanagedScope() );
         hashCode = hashCode * 31 + nullHashCode( getOriginalScope() );
         hashCode = hashCode * 31 + nullHashCode( getFailedUpdateScope() );
+        hashCode = hashCode * 31 + nullHashCode( getVersionSelectedFromRange() );
+        hashCode = hashCode * 31 + nullHashCode( getAvailableVersions() );
 
         return hashCode;
     }
 
     /*
      * @see java.lang.Object#equals(java.lang.Object)
+     * @TODO probably better using commons-lang EqualsBuilder
      */
     public boolean equals( Object object )
     {
@@ -808,6 +818,8 @@
             equal &= nullEquals( getPremanagedScope(), node.getPremanagedScope() );
             equal &= nullEquals( getOriginalScope(), node.getOriginalScope() );
             equal &= nullEquals( getFailedUpdateScope(), node.getFailedUpdateScope() );
+            equal &= nullEquals( getVersionSelectedFromRange(), node.getVersionSelectedFromRange() );
+            equal &= nullEquals( getAvailableVersions(), node.getAvailableVersions() );
         }
         else
         {
diff --git a/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java b/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java
index 71ac2d5..cd53415 100644
--- a/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilderTest.java
@@ -564,21 +564,25 @@
      * g:p:t:1
      * \- g:a:t:1
      * </pre>
-     * 
-     * @throws DependencyTreeBuilderException
      */
-    public void testProjectWithVersionRange() throws DependencyTreeBuilderException
+    public void testProjectWithVersionRange() throws Exception
     {
+        String range = "[1,2)";
         Artifact projectArtifact = createArtifact( "g:p:t:1" );
-        Artifact childArtifact = createArtifact( "g:a:t:[1,2)" );
+        Artifact childArtifact = createArtifact( "g:a:t:" + range);
 
         MavenProject project = createProject( projectArtifact, new Artifact[] { childArtifact } );
 
-        DependencyNode expectedRootNode = createNode( "g:p:t:1" );
-        expectedRootNode.addChild( createNode( "g:a:t:1.0" ) );
         ArtifactVersion version = new DefaultArtifactVersion( "1.0" );
         List availableVersions = new ArrayList();
         availableVersions.add( version );
+
+        DependencyNode expectedRootNode = createNode( "g:p:t:1" );
+        DependencyNode childNode = createNode( "g:a:t:1.0" );
+        childNode.setAvailableVersions( availableVersions );
+        childNode.setVersionSelectedFromRange( VersionRange.createFromVersionSpec( range ) );
+        expectedRootNode.addChild( childNode );
+
         artifactMetadataSource.addAvailableVersions( childArtifact, availableVersions );
         assertDependencyTree( expectedRootNode, project );
     }