You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/06/22 15:39:46 UTC
svn commit: r191839 - in
/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver:
ArtifactResolutionException.java CyclicDependencyException.java
DefaultArtifactCollector.java
Author: brett
Date: Wed Jun 22 06:39:45 2005
New Revision: 191839
URL: http://svn.apache.org/viewcvs?rev=191839&view=rev
Log:
print path to error for cyclical dependencies
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java?rev=191839&r1=191838&r2=191839&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java Wed Jun 22 06:39:45 2005
@@ -42,9 +42,10 @@
private List remoteRepositories;
public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type,
- List remoteRepositories, String downloadUrl, Throwable t )
+ List remoteRepositories, String downloadUrl, List path, Throwable t )
{
- super( constructMessage( message, groupId, artifactId, version, type, remoteRepositories, downloadUrl ), t );
+ super( constructMessage( message, groupId, artifactId, version, type, remoteRepositories, downloadUrl, path ),
+ t );
this.groupId = groupId;
this.artifactId = artifactId;
@@ -55,9 +56,15 @@
}
public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type,
- List remoteRepositories, String downloadUrl )
+ List remoteRepositories, String downloadUrl, Throwable t )
{
- super( constructMessage( message, groupId, artifactId, version, type, remoteRepositories, downloadUrl ) );
+ this( message, groupId, artifactId, version, type, remoteRepositories, downloadUrl, null, t );
+ }
+
+ public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type,
+ List remoteRepositories, String downloadUrl, List path )
+ {
+ super( constructMessage( message, groupId, artifactId, version, type, remoteRepositories, downloadUrl, path ) );
this.groupId = groupId;
this.artifactId = artifactId;
@@ -70,7 +77,7 @@
private static final String LS = System.getProperty( "line.separator" );
private static String constructMessage( String message, String groupId, String artifactId, String version,
- String type, List remoteRepositories, String downloadUrl )
+ String type, List remoteRepositories, String downloadUrl, List path )
{
StringBuffer sb = new StringBuffer();
@@ -96,6 +103,23 @@
}
}
+ if ( path != null )
+ {
+ sb.append( LS );
+ sb.append( "Path to dependency: " );
+ sb.append( LS );
+ int num = 1;
+ for ( Iterator i = path.iterator(); i.hasNext(); )
+ {
+ sb.append( "\t" );
+ sb.append( num++ );
+ sb.append( ") " );
+ sb.append( i.next() );
+ sb.append( LS );
+ }
+ sb.append( LS );
+ }
+
if ( downloadUrl != null && !type.equals( "pom" ) )
{
sb.append( LS );
@@ -120,16 +144,24 @@
return sb.toString();
}
+ public ArtifactResolutionException( String message, Artifact artifact, List path, List remoteRepositories,
+ Throwable t )
+ {
+ this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
+ remoteRepositories, artifact.getDownloadUrl(), path, t );
+ }
+
public ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories, Throwable t )
{
+ // TODO: path
this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
- remoteRepositories, artifact.getDownloadUrl(), t );
+ remoteRepositories, artifact.getDownloadUrl(), null, t );
}
- public ArtifactResolutionException( String message, Artifact artifact )
+ public ArtifactResolutionException( String message, Artifact artifact, List path )
{
this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), null,
- artifact.getDownloadUrl() );
+ artifact.getDownloadUrl(), path );
}
public ArtifactResolutionException( String message, Throwable cause )
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java?rev=191839&r1=191838&r2=191839&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java Wed Jun 22 06:39:45 2005
@@ -18,6 +18,8 @@
import org.apache.maven.artifact.Artifact;
+import java.util.List;
+
/**
* Indiciates a cycle in the dependency graph.
*
@@ -27,8 +29,8 @@
public class CyclicDependencyException
extends ArtifactResolutionException
{
- public CyclicDependencyException( String message, Artifact artifact )
+ public CyclicDependencyException( String message, Artifact artifact, List path )
{
- super( message, artifact );
+ super( message, artifact, path );
}
}
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=191839&r1=191838&r2=191839&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Wed Jun 22 06:39:45 2005
@@ -204,7 +204,7 @@
private List children = null;
- private final Set parents;
+ private final List parents;
private final int depth;
@@ -213,7 +213,7 @@
this.artifact = artifact;
this.parent = null;
this.depth = 0;
- this.parents = Collections.EMPTY_SET;
+ this.parents = Collections.EMPTY_LIST;
}
public ResolutionNode( Artifact artifact, ResolutionNode parent )
@@ -221,9 +221,9 @@
this.artifact = artifact;
this.parent = parent;
this.depth = parent.depth + 1;
- this.parents = new HashSet();
- this.parents.add( parent.getKey() );
+ this.parents = new ArrayList();
this.parents.addAll( parent.parents );
+ this.parents.add( parent.getKey() );
}
public Artifact getArtifact()
@@ -249,7 +249,9 @@
{
if ( parents.contains( a.getDependencyConflictId() ) )
{
- throw new CyclicDependencyException( "The dependency is present in a cycle", a );
+ List path = new ArrayList( parents );
+ path.add( getKey() );
+ throw new CyclicDependencyException( "The dependency is present in a cycle", a, path );
}
children.add( new ResolutionNode( a, this ) );
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org