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 );
}