Made DependencyTreeBuilderTest assert resolution tree against the internal one used by DefaultDependencyTreeBuilder. Previously it was asserting against the result of performing a further artifact collection, which caused misleading results since artifacts are mutated during collection.
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@584176 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java b/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java
index a1e204c..22ea5e7 100644
--- a/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/tree/DefaultDependencyTreeBuilder.java
@@ -28,6 +28,7 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactCollector;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
@@ -45,6 +46,10 @@
*/
public class DefaultDependencyTreeBuilder extends AbstractLogEnabled implements DependencyTreeBuilder
{
+ // fields -----------------------------------------------------------------
+
+ private ArtifactResolutionResult result;
+
// DependencyTreeBuilder methods ------------------------------------------
/*
@@ -94,7 +99,7 @@
// TODO: note that filter does not get applied due to MNG-3236
- collector.collect( dependencyArtifacts, project.getArtifact(), managedVersions, repository,
+ result = collector.collect( dependencyArtifacts, project.getArtifact(), managedVersions, repository,
project.getRemoteArtifactRepositories(), metadataSource, filter,
Collections.singletonList( listener ) );
@@ -110,4 +115,11 @@
+ project.getArtifact() );
}
}
+
+ // protected methods ------------------------------------------------------
+
+ protected ArtifactResolutionResult getArtifactResolutionResult()
+ {
+ return result;
+ }
}
diff --git a/src/test/java/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.java b/src/test/java/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.java
index ad7c8d0..ff41b4c 100644
--- a/src/test/java/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.java
+++ b/src/test/java/org/apache/maven/shared/dependency/tree/DependencyTreeBuilderTest.java
@@ -38,7 +38,6 @@
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
import org.apache.maven.artifact.resolver.ArtifactCollector;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ResolutionNode;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -57,7 +56,7 @@
{
// fields -----------------------------------------------------------------
- private DependencyTreeBuilder builder;
+ private DefaultDependencyTreeBuilder builder;
private ArtifactRepository artifactRepository;
@@ -76,7 +75,7 @@
{
super.setUp();
- builder = (DependencyTreeBuilder) lookup( DependencyTreeBuilder.ROLE );
+ builder = (DefaultDependencyTreeBuilder) lookup( DependencyTreeBuilder.ROLE );
String repositoryURL = getTestFile( "target/local-repo" ).toURI().toString();
artifactRepository = new DefaultArtifactRepository( "local", repositoryURL, new DefaultRepositoryLayout() );
@@ -107,9 +106,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithDependency() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithDependency() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -132,9 +130,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithTransitiveDependency() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithTransitiveDependency() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -163,9 +160,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithDuplicateDependency() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithDuplicateDependency() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact child1Artifact = createArtifact( "g:a:t:1" );
@@ -201,9 +197,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithConflictDependencyVersionFirstWins() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithConflictDependencyVersionFirstWins() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact nearestArtifact = createArtifact( "g:a:t:1" );
@@ -235,9 +230,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithConflictDependencyVersionLastWins() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithConflictDependencyVersionLastWins() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -269,9 +263,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithConflictDependencyScopeCurrentPom() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithConflictDependencyScopeCurrentPom() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact nearestArtifact = createArtifact( "g:b:t:1:test" );
@@ -294,7 +287,7 @@
// TODO: fix when discussion resolved: http://www.mail-archive.com/dev@maven.apache.org/msg68011.html
/*
- public void testProjectWithConflictDependencyScope() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithConflictDependencyScope() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -334,7 +327,7 @@
// TODO: fix when discussion resolved: http://www.mail-archive.com/dev@maven.apache.org/msg68011.html
/*
- public void testProjectWithConflictDependencyScopeReversedOrder() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithConflictDependencyScopeReversedOrder() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -373,9 +366,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithManagedTransitiveDependencyVersion() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithManagedTransitiveDependencyVersion() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -406,9 +398,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithManagedTransitiveDependencyScope() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithManagedTransitiveDependencyScope() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -440,9 +431,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithManagedTransitiveDependencyVersionAndScope() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithManagedTransitiveDependencyVersionAndScope() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact childArtifact = createArtifact( "g:a:t:1" );
@@ -476,9 +466,8 @@
* </pre>
*
* @throws DependencyTreeBuilderException
- * @throws ArtifactResolutionException
*/
- public void testProjectWithManagedTransitiveDependencyVersionAndConflictDependencyVersion() throws DependencyTreeBuilderException, ArtifactResolutionException
+ public void testProjectWithManagedTransitiveDependencyVersionAndConflictDependencyVersion() throws DependencyTreeBuilderException
{
Artifact projectArtifact = createArtifact( "g:p:t:1" );
Artifact nearestArtifact = createArtifact( "g:a:t:1" );
@@ -594,12 +583,12 @@
return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getType() + (artifact.getClassifier() != null ? ":" + artifact.getClassifier() : "");
}
- private void assertDependencyTree( DependencyNode expectedRootNode, MavenProject project ) throws DependencyTreeBuilderException, ArtifactResolutionException
+ private void assertDependencyTree( DependencyNode expectedRootNode, MavenProject project ) throws DependencyTreeBuilderException
{
assertDependencyTree( expectedRootNode, project, null );
}
- private void assertDependencyTree( DependencyNode expectedRootNode, MavenProject project, ArtifactFilter artifactFilter ) throws DependencyTreeBuilderException, ArtifactResolutionException
+ private void assertDependencyTree( DependencyNode expectedRootNode, MavenProject project, ArtifactFilter artifactFilter ) throws DependencyTreeBuilderException
{
// assert built dependency tree is as expected
@@ -611,19 +600,11 @@
// assert resolution tree is as expected
- ArtifactResolutionResult result = collect( project, artifactFilter );
+ ArtifactResolutionResult result = builder.getArtifactResolutionResult();
assertTreeEquals( expectedRootNode, project, result );
}
- private ArtifactResolutionResult collect( MavenProject project, ArtifactFilter artifactFilter ) throws ArtifactResolutionException
- {
- return artifactCollector.collect( project.getDependencyArtifacts(), project.getArtifact(),
- project.getManagedVersionMap(), artifactRepository,
- project.getRemoteArtifactRepositories(), artifactMetadataSource,
- artifactFilter, Collections.EMPTY_LIST );
- }
-
private void assertTreeEquals( DependencyNode dependencyNode, MavenProject project, ArtifactResolutionResult resolutionResult )
{
List rootChildrenResolutionNodes = ResolutionNodeUtils.getRootChildrenResolutionNodes( project, resolutionResult );