You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/02/21 07:24:00 UTC

svn commit: r379369 - in /maven/components/trunk: maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/ maven-artifact/src/main/java/org/apache/maven/artifact/resolver/

Author: jdcasey
Date: Mon Feb 20 22:23:57 2006
New Revision: 379369

URL: http://svn.apache.org/viewcvs?rev=379369&view=rev
Log:
[MNG-2083] Added new exception, MultipleArtifactsNotFoundException, to account for cases where multiple artifacts are missing during transitive resolution. This will handle formatting, including downloadUrl and install instructions, for each missing artifact.

Added:
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java   (with props)
Modified:
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=379369&r1=379368&r2=379369&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Mon Feb 20 22:23:57 2006
@@ -269,14 +269,15 @@
 
         if ( missingArtifacts.size() > 0 )
         {
-            String message = "required artifacts missing:\n";
-            for ( Iterator i = missingArtifacts.iterator(); i.hasNext(); )
-            {
-                Artifact missingArtifact = (Artifact) i.next();
-                message += "  " + missingArtifact.getId() + "\n";
-            }
-            message += "\nfor the artifact:";
-            throw new ArtifactResolutionException( message, originatingArtifact, remoteRepositories );
+            throw new MultipleArtifactsNotFoundException( originatingArtifact, missingArtifacts, remoteRepositories );
+//            String message = "required artifacts missing:\n";
+//            for ( Iterator i = missingArtifacts.iterator(); i.hasNext(); )
+//            {
+//                Artifact missingArtifact = (Artifact) i.next();
+//                message += "  " + missingArtifact.getId() + "\n";
+//            }
+//            message += "\nfor the artifact:";
+//            throw new ArtifactResolutionException( message, originatingArtifact, remoteRepositories );
         }
 
         return artifactResolutionResult;

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java?rev=379369&r1=379368&r2=379369&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java Mon Feb 20 22:23:57 2006
@@ -59,7 +59,7 @@
         this.type = type;
         this.version = version;
         this.remoteRepositories = remoteRepositories;
-        this.path = constructArtifactPath( path );
+        this.path = constructArtifactPath( path, "" );
     }
 
     protected AbstractArtifactResolutionException( String message, String groupId, String artifactId, String version,
@@ -73,7 +73,7 @@
         this.type = type;
         this.version = version;
         this.remoteRepositories = remoteRepositories;
-        this.path = constructArtifactPath( path );
+        this.path = constructArtifactPath( path, "" );
     }
 
     protected AbstractArtifactResolutionException( String message, Artifact artifact )
@@ -124,18 +124,20 @@
         return originalMessage;
     }
 
-    protected static String constructArtifactPath( List path )
+    protected static String constructArtifactPath( List path, String indentation )
     {
         StringBuffer sb = new StringBuffer();
 
         if ( path != null )
         {
             sb.append( LS );
+            sb.append( indentation );
             sb.append( "Path to dependency: " );
             sb.append( LS );
             int num = 1;
             for ( Iterator i = path.iterator(); i.hasNext(); num++ )
             {
+                sb.append( indentation );
                 sb.append( "\t" );
                 sb.append( num );
                 sb.append( ") " );
@@ -177,11 +179,53 @@
             }
         }
 
-        sb.append( constructArtifactPath( path ) );
+        sb.append( constructArtifactPath( path, "" ) );
         sb.append( LS );
         return sb.toString();
     }
 
+    protected static String constructMissingArtifactMessage( String message, String indentation, String groupId, String artifactId, String version,
+                                              String type, String downloadUrl, List path )
+    {
+        StringBuffer sb = new StringBuffer( message );
+
+        if ( downloadUrl != null && !"pom".equals( type ) )
+        {
+            sb.append( LS );
+            sb.append( LS );
+            sb.append( indentation );
+            sb.append( "Try downloading the file manually from" );
+            sb.append( LS );
+            sb.append( indentation );
+            sb.append( "    " );
+            sb.append( downloadUrl );
+            sb.append( LS );
+            sb.append( LS );
+            sb.append( indentation );
+            sb.append( "Then, install it using the command: " );
+            sb.append( LS );
+            sb.append( indentation );
+            sb.append( "    mvn install:install-file -DgroupId=" );
+            sb.append( groupId );
+            sb.append( " -DartifactId=" );
+            sb.append( artifactId );
+            sb.append( " \\\n");
+            sb.append( indentation );
+            sb.append( "        " );
+            sb.append( "-Dversion=" );
+            sb.append( version );
+            sb.append( " -Dpackaging=" );
+            sb.append( type );
+            sb.append( " -Dfile=/path/to/file" );
+            sb.append( LS );
+        }
+
+        sb.append( constructArtifactPath( path, indentation ) );
+        sb.append( LS );
+
+        return sb.toString();
+    }
+    
     public String getArtifactPath()
     {
         return path;

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java?rev=379369&r1=379368&r2=379369&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java Mon Feb 20 22:23:57 2006
@@ -28,7 +28,12 @@
     extends AbstractArtifactResolutionException
 {
     private String downloadUrl;
-
+    
+    protected ArtifactNotFoundException( String message, Artifact artifact, List remoteRepositories )
+    {
+        super( message, artifact, remoteRepositories );
+    }
+    
     public ArtifactNotFoundException( String message, Artifact artifact )
     {
         this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), null,
@@ -44,7 +49,7 @@
     public ArtifactNotFoundException( String message, String groupId, String artifactId, String version, String type,
                                       List remoteRepositories, String downloadUrl, List path, Throwable t )
     {
-        super( constructMessage( message, groupId, artifactId, version, type, downloadUrl, path ), groupId, artifactId,
+        super( constructMissingArtifactMessage( message, "", groupId, artifactId, version, type, downloadUrl, path ), groupId, artifactId,
                version, type, remoteRepositories, null, t );
 
         this.downloadUrl = downloadUrl;
@@ -53,42 +58,10 @@
     private ArtifactNotFoundException( String message, String groupId, String artifactId, String version, String type,
                                        List remoteRepositories, String downloadUrl, List path )
     {
-        super( constructMessage( message, groupId, artifactId, version, type, downloadUrl, path ), groupId, artifactId,
+        super( constructMissingArtifactMessage( message, "", groupId, artifactId, version, type, downloadUrl, path ), groupId, artifactId,
                version, type, remoteRepositories, null );
 
         this.downloadUrl = downloadUrl;
-    }
-
-    private static String constructMessage( String message, String groupId, String artifactId, String version,
-                                            String type, String downloadUrl, List path )
-    {
-        StringBuffer sb = new StringBuffer( message );
-
-        if ( downloadUrl != null && !"pom".equals( type ) )
-        {
-            sb.append( LS );
-            sb.append( LS );
-            sb.append( "Try downloading the file manually from" );
-            sb.append( LS );
-            sb.append( "  " );
-            sb.append( downloadUrl );
-            sb.append( LS );
-            sb.append( "and install it using the command: " );
-            sb.append( LS );
-            sb.append( "  mvn install:install-file -DgroupId=" );
-            sb.append( groupId );
-            sb.append( " -DartifactId=" );
-            sb.append( artifactId );
-            sb.append( " -Dversion=" );
-            sb.append( version );
-            sb.append( " -Dpackaging=" );
-            sb.append( type );
-            sb.append( " -Dfile=/path/to/file" );
-        }
-
-        sb.append( constructArtifactPath( path ) );
-        sb.append( LS );
-        return sb.toString();
     }
 
     public String getDownloadUrl()

Added: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java?rev=379369&view=auto
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java (added)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java Mon Feb 20 22:23:57 2006
@@ -0,0 +1,51 @@
+package org.apache.maven.artifact.resolver;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+
+public class MultipleArtifactsNotFoundException
+    extends ArtifactResolutionException
+{
+
+    public MultipleArtifactsNotFoundException( Artifact originatingArtifact, List artifacts, List remoteRepositories )
+    {
+        super( constructMessage( artifacts ), originatingArtifact, remoteRepositories );
+    }
+
+    private static String constructMessage( List artifacts )
+    {
+        StringBuffer buffer = new StringBuffer();
+
+        int size = artifacts.size();
+
+        buffer.append( size ).append( " required artifact" );
+
+        if ( size > 1 )
+        {
+            buffer.append( "s" );
+        }
+
+        buffer.append( " missing:\n" );
+
+        int counter = 0;
+
+        for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
+            String message = "\n" + ( ++counter ) + ") " + artifact.getId();
+
+            buffer.append( constructMissingArtifactMessage( message, "  ", artifact.getGroupId(), artifact
+                .getArtifactId(), artifact.getVersion(), artifact.getType(), artifact.getDownloadUrl(), artifact
+                .getDependencyTrail() ) );
+
+            buffer.append( "\n" );
+        }
+
+        buffer.append( "\nfor the artifact:" );
+        
+        return buffer.toString();
+    }
+
+}

Propchange: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"