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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]