o reduce the signature of executeMojo in the pluginManager and propagate

git-svn-id: https://svn.apache.org/repos/asf/maven/components/branches/MNG-2766@751512 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2009-03-08 20:07:40 +00:00
parent 9a2c66dde1
commit 2d01e12568
3 changed files with 35 additions and 26 deletions

View File

@ -54,7 +54,6 @@ import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugin.lifecycle.Execution;
import org.apache.maven.plugin.lifecycle.Phase;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.reporting.MavenReport;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.component.annotations.Component;
@ -577,18 +576,6 @@ public class DefaultLifecycleExecutor
{
throw new LifecycleExecutionException( "Internal error in the plugin manager executing goal '" + mojoDescriptor.getId() + "': " + e.getMessage(), e );
}
catch ( ArtifactNotFoundException e )
{
throw new LifecycleExecutionException( e.getMessage(), e );
}
catch ( InvalidDependencyVersionException e )
{
throw new LifecycleExecutionException( e.getMessage(), e );
}
catch ( ArtifactResolutionException e )
{
throw new LifecycleExecutionException( e.getMessage(), e );
}
catch ( MojoFailureException e )
{
throw new BuildFailureException( e.getMessage(), e );

View File

@ -414,7 +414,7 @@ public class DefaultPluginManager
// ----------------------------------------------------------------------
public void executeMojo( MavenProject project, MojoExecution mojoExecution, MavenSession session )
throws ArtifactResolutionException, MojoFailureException, ArtifactNotFoundException, InvalidDependencyVersionException, PluginManagerException, PluginConfigurationException
throws MojoFailureException, PluginExecutionException, PluginConfigurationException
{
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
@ -454,14 +454,32 @@ public class DefaultPluginManager
projects = Collections.singleton( project );
}
for ( Iterator i = projects.iterator(); i.hasNext(); )
//!!jvz What is this? We resolveTransitiveDependencies() and then a line later downDependencies()? That can't be right. We should also already
// know at this point that what we need to execute can't be found. This is the wrong time to find this out.
try
{
MavenProject p = (MavenProject) i.next();
for ( Iterator i = projects.iterator(); i.hasNext(); )
{
MavenProject p = (MavenProject) i.next();
resolveTransitiveDependencies( session, repositorySystem, mojoDescriptor.isDependencyResolutionRequired(), p, mojoDescriptor.isAggregator() );
resolveTransitiveDependencies( session, repositorySystem, mojoDescriptor.isDependencyResolutionRequired(), p, mojoDescriptor.isAggregator() );
}
downloadDependencies( project, session, repositorySystem );
}
catch ( ArtifactResolutionException e )
{
throw new PluginExecutionException( mojoExecution, project, e.getMessage() );
}
catch ( InvalidDependencyVersionException e )
{
throw new PluginExecutionException( mojoExecution, project, e.getMessage() );
}
catch ( ArtifactNotFoundException e )
{
throw new PluginExecutionException( mojoExecution, project, e.getMessage() );
}
downloadDependencies( project, session, repositorySystem );
}
String goalName = mojoDescriptor.getFullGoalName();
@ -486,11 +504,11 @@ public class DefaultPluginManager
}
catch ( XmlPullParserException e )
{
throw new PluginManagerException( mojoDescriptor, project, "Failed to calculate concrete state for configuration of: " + mojoDescriptor.getHumanReadableKey(), e );
throw new PluginExecutionException( mojoExecution, project, "Failed to calculate concrete state for configuration of: " + mojoDescriptor.getHumanReadableKey() );
}
catch ( IOException e )
{
throw new PluginManagerException( mojoDescriptor, project, "Failed to calculate concrete state for configuration of: " + mojoDescriptor.getHumanReadableKey(), e );
throw new PluginExecutionException( mojoExecution, project, "Failed to calculate concrete state for configuration of: " + mojoDescriptor.getHumanReadableKey() );
}
}
@ -594,6 +612,12 @@ public class DefaultPluginManager
throw e;
}
catch ( PluginManagerException e )
{
session.getEventDispatcher().dispatchError( event, goalExecId, e );
throw new PluginExecutionException( mojoExecution, project, e.getMessage() );
}
finally
{
if ( mojo != null )

View File

@ -31,8 +31,8 @@ import org.apache.maven.reporting.MavenReport;
public interface PluginManager
{
// - find the plugin [extension point: any client may wish to do whatever they choose]
// - load the plugin [extension point: we want to take them from a repository, some may take from disk or whatever]
// - configure the plugin
// - load the plugin into a classloader [extension point: we want to take them from a repository, some may take from disk or whatever]
// - configure the plugin [extension point]
// - execute the plugin
Plugin findPluginForPrefix( String prefix, MavenProject project, MavenSession session );
@ -40,10 +40,8 @@ public interface PluginManager
PluginDescriptor loadPlugin( Plugin plugin, MavenProject project, MavenSession session )
throws PluginLoaderException;
//!!jvz
// Clean up the exceptions returned. We should not be coupled to the repository layer. We need to generalize to allow a general plugin mechanism.
void executeMojo( MavenProject project, MojoExecution execution, MavenSession session )
throws ArtifactResolutionException, MojoFailureException, ArtifactNotFoundException, InvalidDependencyVersionException, PluginManagerException, PluginConfigurationException;
throws MojoFailureException, PluginExecutionException, PluginConfigurationException;
//!!jvz
// Reporting