refactoring to simplify - taking notes of potential clean up after lifecycle is completed

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163410 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Leslie Porter 2005-02-25 01:23:20 +00:00
parent f3fce5f156
commit 360ae403b2
5 changed files with 69 additions and 112 deletions

View File

@ -17,16 +17,10 @@
* ====================================================================
*/
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.MavenMetadataSource;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.goal.GoalExecutionException;
import org.apache.maven.plugin.PluginManager;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
@ -89,12 +83,6 @@ public void execute( List tasks, MavenSession session )
protected void executePhase( String phase, MavenSession session )
throws LifecycleExecutionException
{
resolveTransitiveDependencies( session );
downloadDependencies( session );
System.out.println( "executing phase = " + phase );
int i = phases.indexOf( phaseMap.get( phase ) );
for ( int j = 0; j <= i; j++ )
@ -103,14 +91,7 @@ protected void executePhase( String phase, MavenSession session )
if ( p.getGoal() != null )
{
try
{
pluginManager.executeMojo( session, p.getGoal() );
}
catch ( GoalExecutionException e )
{
throw new LifecycleExecutionException( "Problem executing " + p.getGoal(), e );
}
executeMojo( p.getGoal(), session );
}
}
}
@ -127,29 +108,6 @@ protected void executeMojo( String id, MavenSession session )
// archetype:create
// ----------------------------------------------------------------------
try
{
pluginManager.verifyPluginForGoal( id, session );
}
catch ( Exception e )
{
throw new LifecycleExecutionException( "Problem getting plugin for " + id, e );
}
MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( id );
if ( mojoDescriptor == null )
{
// TODO: goal not found exception?
throw new LifecycleExecutionException( "Goal not found: " + id );
}
if ( mojoDescriptor.requiresDependencyResolution() )
{
resolveTransitiveDependencies( session );
downloadDependencies( session );
}
try
{
pluginManager.executeMojo( session, id );
@ -160,57 +118,6 @@ protected void executeMojo( String id, MavenSession session )
}
}
// ----------------------------------------------------------------------
// Artifact resolution
// ----------------------------------------------------------------------
private void resolveTransitiveDependencies( MavenSession context )
throws LifecycleExecutionException
{
MavenProject project = context.getProject();
try
{
MavenMetadataSource sourceReader = new MavenMetadataSource( artifactResolver, projectBuilder );
ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getArtifacts(),
context.getRemoteRepositories(),
context.getLocalRepository(),
sourceReader );
project.getArtifacts().addAll( result.getArtifacts().values() );
}
catch ( Exception e )
{
throw new LifecycleExecutionException( "Error resolving transitive dependencies.", e );
}
}
// ----------------------------------------------------------------------
// Artifact downloading
// ----------------------------------------------------------------------
public void downloadDependencies( MavenSession context )
throws LifecycleExecutionException
{
try
{
for ( Iterator it = context.getProject().getArtifacts().iterator(); it.hasNext(); )
{
Artifact artifact = (Artifact) it.next();
artifactResolver.resolve( artifact,
context.getRemoteRepositories(),
context.getLocalRepository() );
}
}
catch ( ArtifactResolutionException e )
{
throw new LifecycleExecutionException( "Can't resolve artifact: ", e );
}
}
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------

View File

@ -20,24 +20,9 @@
import org.apache.maven.lifecycle.goal.AbstractMavenGoalPhase;
import org.apache.maven.lifecycle.goal.GoalExecutionException;
import org.apache.maven.lifecycle.goal.MavenGoalExecutionContext;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.Plugin;
import org.apache.maven.plugin.PluginConfigurationException;
import org.apache.maven.plugin.PluginExecutionRequest;
import org.apache.maven.plugin.PluginExecutionResponse;
import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
import org.apache.maven.plugin.DefaultPluginManager;
import org.apache.maven.plugin.PluginManager;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.CollectionUtils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@ -51,6 +36,7 @@ public void execute( MavenGoalExecutionContext context )
{
PluginExecutionResponse response;
// TODO: remove - most likely empty as there are no prereqs and I don't think the pre/postGoals are being walked
for ( Iterator it = context.getResolvedGoals().iterator(); it.hasNext(); )
{
String goalName = (String) it.next();

View File

@ -42,6 +42,8 @@ public List getLifecyclePhases()
public void execute( MavenExecutionRequest request, MavenExecutionResponse response )
throws Exception
{
// TODO: no longer executed. Remove this, components, etc.
for ( Iterator iterator = lifecyclePhases.iterator(); iterator.hasNext(); )
{
MavenSessionPhase phase = (MavenSessionPhase) iterator.next();

View File

@ -22,6 +22,8 @@
import org.apache.maven.artifact.MavenMetadataSource;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
@ -236,14 +238,21 @@ public PluginExecutionResponse executeMojo( MavenSession session, String goalNam
}
catch ( Exception e )
{
e.printStackTrace();
throw new GoalExecutionException( "Unable to execute goal: " + goalName, e );
}
PluginExecutionRequest request;
PluginExecutionResponse response;
MojoDescriptor mojoDescriptor = getMojoDescriptor( goalName );;
MojoDescriptor mojoDescriptor = getMojoDescriptor( goalName );
if ( mojoDescriptor.requiresDependencyResolution() )
{
resolveTransitiveDependencies( session );
downloadDependencies( session );
}
try
{
@ -442,5 +451,57 @@ public void initialize()
// TODO: needs to be configured from the POM element
remotePluginRepositories.add( new ArtifactRepository( "plugin-repository", "http://repo1.maven.org" ) );
}
// ----------------------------------------------------------------------
// Artifact resolution
// ----------------------------------------------------------------------
private void resolveTransitiveDependencies( MavenSession context )
throws GoalExecutionException
{
MavenProject project = context.getProject();
try
{
MavenMetadataSource sourceReader = new MavenMetadataSource( artifactResolver, mavenProjectBuilder );
ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getArtifacts(),
context.getRemoteRepositories(),
context.getLocalRepository(),
sourceReader );
project.getArtifacts().addAll( result.getArtifacts().values() );
}
catch ( Exception e )
{
throw new GoalExecutionException( "Error resolving transitive dependencies.", e );
}
}
// ----------------------------------------------------------------------
// Artifact downloading
// ----------------------------------------------------------------------
private void downloadDependencies( MavenSession context )
throws GoalExecutionException
{
try
{
for ( Iterator it = context.getProject().getArtifacts().iterator(); it.hasNext(); )
{
Artifact artifact = (Artifact) it.next();
artifactResolver.resolve( artifact,
context.getRemoteRepositories(),
context.getLocalRepository() );
}
}
catch ( ArtifactResolutionException e )
{
throw new GoalExecutionException( "Can't resolve artifact: ", e );
}
}
}

View File

@ -20,7 +20,6 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.goal.GoalExecutionException;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.execution.MavenSession;
import java.util.Map;
@ -38,8 +37,10 @@ PluginExecutionResponse executeMojo( MavenSession session, String goalName )
void processPluginDescriptor( MavenPluginDescriptor pluginDescriptor )
throws Exception;
// TODO: not currently used
Map getMojoDescriptors();
// TODO: not currently used (usages are in the phases that are no longer used)
MojoDescriptor getMojoDescriptor( String goalId );
void verifyPluginForGoal( String pluginId, MavenSession session )