improved error handling for failed downloads

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@164065 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Leslie Porter 2005-04-21 14:17:14 +00:00
parent 6e310fbc3b
commit 804e18cac0
6 changed files with 59 additions and 23 deletions

View File

@ -1,5 +1,7 @@
package org.apache.maven.artifact.resolver; package org.apache.maven.artifact.resolver;
import org.apache.maven.artifact.Artifact;
/* /*
* Copyright 2001-2005 The Apache Software Foundation. * Copyright 2001-2005 The Apache Software Foundation.
* *
@ -23,20 +25,51 @@ package org.apache.maven.artifact.resolver;
public class ArtifactResolutionException public class ArtifactResolutionException
extends Exception extends Exception
{ {
private String groupId;
private String artifactId;
public ArtifactResolutionException( String message ) private String version;
private String type;
public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type, Throwable t )
{ {
super( message ); super( "Unable to resolve artifact " + groupId + ":" + artifactId + ":" + version + ":" + type + "\n" + message, t );
this.groupId = groupId;
this.artifactId = artifactId;
this.type = type;
this.version = version;
} }
public ArtifactResolutionException( Throwable cause ) public ArtifactResolutionException( String message, Artifact artifact, Throwable t )
{ {
super( cause ); this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), t );
} }
public ArtifactResolutionException( String message, Throwable cause ) public ArtifactResolutionException( String message, Throwable cause )
{ {
super( message, cause ); super( message, cause );
} }
public String getGroupId()
{
return groupId;
}
public String getArtifactId()
{
return artifactId;
}
public String getVersion()
{
return version;
}
public String getType()
{
return type;
}
} }

View File

@ -128,11 +128,11 @@ public class DefaultArtifactResolver
} }
catch ( ResourceDoesNotExistException e ) catch ( ResourceDoesNotExistException e )
{ {
throw new ArtifactResolutionException( artifactNotFound( localPath, remoteRepositories ), e ); throw new ArtifactResolutionException( artifactNotFound( localPath, remoteRepositories ), artifact, e );
} }
catch ( TransferFailedException e ) catch ( TransferFailedException e )
{ {
throw new ArtifactResolutionException( "Error downloading artifact " + artifact, e ); throw new ArtifactResolutionException( e.getMessage(), artifact, e );
} }
catch ( ArtifactMetadataRetrievalException e ) catch ( ArtifactMetadataRetrievalException e )
{ {

View File

@ -95,10 +95,6 @@ public class DefaultLifecycleExecutor
{ {
response.setException( e ); response.setException( e );
} }
catch ( PluginNotFoundException e )
{
response.setException( e );
}
catch ( ArtifactHandlerNotFoundException e ) catch ( ArtifactHandlerNotFoundException e )
{ {
response.setException( e ); response.setException( e );
@ -233,7 +229,7 @@ public class DefaultLifecycleExecutor
} }
private void processPluginConfiguration( MavenProject project, MavenSession mavenSession, Map phaseMap ) private void processPluginConfiguration( MavenProject project, MavenSession mavenSession, Map phaseMap )
throws LifecycleExecutionException, PluginNotFoundException throws LifecycleExecutionException, ArtifactResolutionException
{ {
for ( Iterator i = project.getPlugins().iterator(); i.hasNext(); ) for ( Iterator i = project.getPlugins().iterator(); i.hasNext(); )
{ {
@ -251,7 +247,7 @@ public class DefaultLifecycleExecutor
* @param session * @param session
*/ */
private void processPluginPhases( Plugin plugin, MavenSession session, Map phaseMap ) private void processPluginPhases( Plugin plugin, MavenSession session, Map phaseMap )
throws LifecycleExecutionException, PluginNotFoundException throws LifecycleExecutionException, ArtifactResolutionException
{ {
String groupId = plugin.getGroupId(); String groupId = plugin.getGroupId();
@ -336,7 +332,7 @@ public class DefaultLifecycleExecutor
} }
private void processGoalChain( String task, MavenSession session, Map phaseMap ) private void processGoalChain( String task, MavenSession session, Map phaseMap )
throws LifecycleExecutionException, PluginNotFoundException throws LifecycleExecutionException, ArtifactResolutionException
{ {
if ( phaseMap.containsKey( task ) ) if ( phaseMap.containsKey( task ) )
{ {
@ -368,7 +364,7 @@ public class DefaultLifecycleExecutor
} }
private void verifyMojoPhase( String task, MavenSession session, Map phaseMap ) private void verifyMojoPhase( String task, MavenSession session, Map phaseMap )
throws LifecycleExecutionException, PluginNotFoundException throws LifecycleExecutionException, ArtifactResolutionException
{ {
MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( task ); MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( task );

View File

@ -199,7 +199,7 @@ public class DefaultPluginManager
} }
public void verifyPluginForGoal( String goalName, MavenSession session ) public void verifyPluginForGoal( String goalName, MavenSession session )
throws PluginNotFoundException, PluginManagerException throws ArtifactResolutionException, PluginManagerException
{ {
String pluginId = PluginDescriptor.getPluginIdFromGoal( goalName ); String pluginId = PluginDescriptor.getPluginIdFromGoal( goalName );
@ -207,7 +207,7 @@ public class DefaultPluginManager
} }
public void verifyPlugin( String groupId, String artifactId, MavenSession session ) public void verifyPlugin( String groupId, String artifactId, MavenSession session )
throws PluginNotFoundException, PluginManagerException throws ArtifactResolutionException, PluginManagerException
{ {
if ( !isPluginInstalled( groupId, artifactId ) ) if ( !isPluginInstalled( groupId, artifactId ) )
{ {
@ -258,7 +258,15 @@ public class DefaultPluginManager
} }
catch ( ArtifactResolutionException e ) catch ( ArtifactResolutionException e )
{ {
throw new PluginNotFoundException( groupId, artifactId, version, e ); if ( groupId.equals( e.getGroupId() ) && artifactId.equals( e.getArtifactId() ) &&
version.equals( e.getVersion() ) && "maven-plugin".equals( e.getType() ) )
{
throw new PluginNotFoundException( groupId, artifactId, version, e );
}
else
{
throw e;
}
} }
catch ( ComponentLookupException e ) catch ( ComponentLookupException e )
{ {

View File

@ -36,10 +36,10 @@ public interface PluginManager
MojoDescriptor getMojoDescriptor( String goalId ); MojoDescriptor getMojoDescriptor( String goalId );
void verifyPluginForGoal( String goalName, MavenSession session ) void verifyPluginForGoal( String goalName, MavenSession session )
throws PluginNotFoundException, PluginManagerException; throws ArtifactResolutionException, PluginManagerException;
void verifyPlugin( String groupId, String artifactId, MavenSession session ) void verifyPlugin( String groupId, String artifactId, MavenSession session )
throws PluginNotFoundException, PluginManagerException; throws ArtifactResolutionException, PluginManagerException;
PluginDescriptor getPluginDescriptor( String groupId, String artifactId ); PluginDescriptor getPluginDescriptor( String groupId, String artifactId );
} }

View File

@ -25,12 +25,11 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionException;
* @version $Id$ * @version $Id$
*/ */
public class PluginNotFoundException public class PluginNotFoundException
extends Throwable extends ArtifactResolutionException
{ {
public PluginNotFoundException( String groupId, String artifactId, String version, ArtifactResolutionException e ) public PluginNotFoundException( String groupId, String artifactId, String version, ArtifactResolutionException e )
{ {
super( super( "Plugin could not be found - check that the goal name is correct", groupId, artifactId, version,
"Plugin could not found in any remote repositories: [" + groupId + ":" + artifactId + ":" + version + "]", "maven-plugin", e );
e );
} }
} }