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