manageArtifactVersion and manageArtifactScope can be called at any time
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@573768 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.java b/src/main/java/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.java
index a59601a..83e1642 100644
--- a/src/main/java/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.java
+++ b/src/main/java/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.java
@@ -21,6 +21,7 @@
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.Map;
@@ -64,21 +65,14 @@
private DependencyNode currentNode;
/**
- * The id of the currently managed artifact, or <code>null</code> if the current artifact is not managed.
+ * Map < String replacementId, String premanaged version >
*/
- private String managedId;
-
+ private Map managedVersions = new HashMap();
+
/**
- * The original version of the currently managed artifact, or <code>null</code> if the current artifact is not
- * managed.
+ * Map < String replacementId, String premanaged scope >
*/
- private String premanagedVersion;
-
- /**
- * The original scope of the currently managed artifact, or <code>null</code> if the current artifact is not
- * managed.
- */
- private String premanagedScope;
+ private Map managedScopes = new HashMap();
// constructors -----------------------------------------------------------
@@ -91,9 +85,6 @@
nodesByArtifact = new IdentityHashMap();
rootNode = null;
currentNode = null;
- managedId = null;
- premanagedVersion = null;
- premanagedScope = null;
}
// ResolutionListener methods ---------------------------------------------
@@ -158,13 +149,10 @@
* Add the dependency management information cached in any prior manageArtifact calls, since includeArtifact
* is always called after manageArtifact.
*/
+ String premanagedVersion = (String) managedVersions.get( artifact.getId() );
+ String premanagedScope = (String) managedScopes.get( artifact.getId() );
if ( premanagedVersion != null || premanagedScope != null )
{
- if ( !managedId.equals( artifact.getId() ) )
- {
- throw new IllegalStateException( "Managed artifact id was expected to be " + managedId + " but was " + artifact.getId() );
- }
-
if ( premanagedVersion != null )
{
node.setPremanagedVersion( premanagedVersion );
@@ -175,7 +163,6 @@
node.setPremanagedScope( premanagedScope );
}
- managedId = null;
premanagedVersion = null;
premanagedScope = null;
}
@@ -325,8 +312,7 @@
* Cache management information and apply in includeArtifact, since DefaultArtifactCollector mutates the
* artifact and then calls includeArtifact after manageArtifact.
*/
- managedId = replacement.getId();
- premanagedVersion = artifact.getVersion();
+ managedVersions.put( replacement.getId(), artifact.getVersion() );
}
}
@@ -346,8 +332,7 @@
* Cache management information and apply in includeArtifact, since DefaultArtifactCollector mutates the
* artifact and then calls includeArtifact after manageArtifact.
*/
- managedId = replacement.getId();
- premanagedScope = artifact.getScope();
+ managedScopes.put( replacement.getId(), artifact.getScope() );
}
}