You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/04/12 02:51:08 UTC
svn commit: r647357 - in
/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver:
AbstractArtifactResolutionException.java DefaultArtifactCollector.java
Author: vsiveton
Date: Fri Apr 11 17:51:03 2008
New Revision: 647357
URL: http://svn.apache.org/viewvc?rev=647357&view=rev
Log:
o improved the dependency trail when an OverConstrainedVersionException occurred
Modified:
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java?rev=647357&r1=647356&r2=647357&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java Fri Apr 11 17:51:03 2008
@@ -45,7 +45,7 @@
private String classifier;
- private Artifact artifact;
+ private Artifact artifact;
private List remoteRepositories;
@@ -200,6 +200,7 @@
}
}
+ sb.append( LS );
sb.append( constructArtifactPath( path, "" ) );
sb.append( LS );
return sb.toString();
Modified: maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=647357&r1=647356&r2=647357&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Fri Apr 11 17:51:03 2008
@@ -33,8 +33,6 @@
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -73,7 +71,7 @@
ManagedVersionMap versionMap = getManagedVersionsMap( originatingArtifact, managedVersions );
- recurse( root, resolvedArtifacts, versionMap, localRepository, remoteRepositories, source, filter,
+ recurse( originatingArtifact, root, resolvedArtifacts, versionMap, localRepository, remoteRepositories, source, filter,
listeners );
Set set = new LinkedHashSet();
@@ -142,7 +140,7 @@
return versionMap;
}
- private void recurse( ResolutionNode node, Map resolvedArtifacts, ManagedVersionMap managedVersions,
+ private void recurse( Artifact originatingArtifact, ResolutionNode node, Map resolvedArtifacts, ManagedVersionMap managedVersions,
ArtifactRepository localRepository, List remoteRepositories, ArtifactMetadataSource source,
ArtifactFilter filter, List listeners )
throws CyclicDependencyException, ArtifactResolutionException, OverConstrainedVersionException
@@ -150,7 +148,7 @@
fireEvent( ResolutionListener.TEST_ARTIFACT, listeners, node );
Object key = node.getKey();
-
+
// TODO: Does this check need to happen here? Had to add the same call
// below when we iterate on child nodes -- will that suffice?
if ( managedVersions.containsKey( key ))
@@ -192,7 +190,7 @@
for ( int j = 0; j < 2; j++ )
{
Artifact resetArtifact = resetNodes[j].getArtifact();
-
+
//MNG-2123: if the previous node was not a range, then it wouldn't have any available
//versions. We just clobbered the selected version above. (why? i have no idea.)
//So since we are here and this is ranges we must go figure out the version (for a third time...)
@@ -220,7 +218,7 @@
}
}
//end hack
-
+
//MNG-2861: match version can return null
ArtifactVersion selectedVersion = resetArtifact.getVersionRange().matchVersion( resetArtifact.getAvailableVersions() );
if (selectedVersion != null)
@@ -231,7 +229,7 @@
{
throw new OverConstrainedVersionException(" Unable to find a version in "+ resetArtifact.getAvailableVersions()+" to match the range "+ resetArtifact.getVersionRange(), resetArtifact);
}
-
+
fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, resetNodes[j] );
}
}
@@ -305,7 +303,7 @@
// managed version's POM, *not* any other version's POM.
// We retrieve the POM below in the retrieval step.
manageArtifact( child, managedVersions, listeners );
-
+
// Also, we need to ensure that any exclusions it presents are
// added to the artifact before we retrieve the metadata
// for the artifact; otherwise we may end up with unwanted
@@ -354,18 +352,32 @@
if ( version == null )
{
+ // Getting the dependency trail so it can be logged in the exception
+ List dependencyTrail = new ArrayList();
+ dependencyTrail.add( originatingArtifact );
+ for ( Iterator it = previousNodes.iterator(); it.hasNext(); )
+ {
+ ResolutionNode resolutionNode = (ResolutionNode) it.next();
+
+ if ( originatingArtifact.equals( resolutionNode.getArtifact() ) )
+ {
+ continue;
+ }
+ dependencyTrail.add( resolutionNode.getArtifact() );
+ }
+ dependencyTrail.add( artifact );
+ artifact.setDependencyTrail( dependencyTrail );
+
if ( versions.isEmpty() )
{
throw new OverConstrainedVersionException(
"No versions are present in the repository for the artifact with a range " +
versionRange, artifact, remoteRepositories );
}
- else
- {
- throw new OverConstrainedVersionException( "Couldn't find a version in " +
- versions + " to match range " + versionRange, artifact,
- remoteRepositories );
- }
+
+ throw new OverConstrainedVersionException( "Couldn't find a version in " +
+ versions + " to match range " + versionRange, artifact,
+ remoteRepositories );
}
}
@@ -405,7 +417,7 @@
e );
}
- recurse( child, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source,
+ recurse( originatingArtifact, child, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source,
filter, listeners );
}
}