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/04/27 03:16:07 UTC
svn commit: r164930 -
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin
/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor
/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator
/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java
/maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea
Author: brett
Date: Tue Apr 26 18:16:06 2005
New Revision: 164930
URL: http://svn.apache.org/viewcvs?rev=164930&view=rev
Log:
PR: MNG-167
Add the ability for a mojo to "fork" a phase execution, in a separate iteration of the lifecycle.
Add @executePhase generate-sources to idea:idea
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Tue Apr 26 18:16:06 2005
@@ -45,8 +45,10 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Collections;
/**
+ * @todo there is some duplication between this and the plugin manager
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
* @version $Id: DefaultLifecycleExecutor.java,v 1.16 2005/03/04 09:04:25
* jdcasey Exp $
@@ -404,7 +406,8 @@
}
private void executePhase( String phase, MavenSession session, Map phaseMap )
- throws PluginExecutionException, PluginNotFoundException, PluginManagerException, ArtifactResolutionException
+ throws PluginExecutionException, PluginNotFoundException, PluginManagerException, ArtifactResolutionException,
+ LifecycleExecutionException
{
// only execute up to the given phase
int index = phases.indexOf( phaseMap.get( phase ) );
@@ -455,7 +458,8 @@
}
protected void executeMojo( String id, MavenSession session )
- throws PluginExecutionException, PluginNotFoundException, PluginManagerException, ArtifactResolutionException
+ throws PluginExecutionException, PluginNotFoundException, PluginManagerException, ArtifactResolutionException,
+ LifecycleExecutionException
{
// ----------------------------------------------------------------------
// We have something of the form <pluginId>:<mojoId>, so this might be
@@ -471,7 +475,22 @@
logger.debug( "\t{localRepository: " + session.getLocalRepository() + "}" );
logger.debug( "\t{remoteRepositories: " + session.getRemoteRepositories() + "}" );
- pluginManager.executeMojo( session, id );
+ pluginManager.verifyPluginForGoal( id, session );
+
+ MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( id );
+
+ if ( mojoDescriptor == null )
+ {
+ throw new PluginExecutionException( "Unable to find goal: " + id );
+ }
+
+ if ( mojoDescriptor.getExecutePhase() != null )
+ {
+ // TODO: is this too broad to execute?
+ execute( Collections.singletonList( mojoDescriptor.getExecutePhase() ), session );
+ }
+
+ pluginManager.executeMojo( session, mojoDescriptor );
}
// ----------------------------------------------------------------------
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Tue Apr 26 18:16:06 2005
@@ -318,19 +318,11 @@
// Plugin execution
// ----------------------------------------------------------------------
- public void executeMojo( MavenSession session, String goalName )
- throws PluginExecutionException, PluginNotFoundException, PluginManagerException, ArtifactResolutionException
+ public void executeMojo( MavenSession session, MojoDescriptor mojoDescriptor )
+ throws ArtifactResolutionException, PluginManagerException, PluginExecutionException
{
- verifyPluginForGoal( goalName, session );
-
PluginExecutionRequest request = null;
- MojoDescriptor mojoDescriptor = getMojoDescriptor( goalName );
- if ( mojoDescriptor == null )
- {
- throw new PluginExecutionException( "Unable to find goal: " + goalName );
- }
-
if ( mojoDescriptor.getRequiresDependencyResolution() != null )
{
@@ -364,6 +356,8 @@
}
Plugin plugin = null;
+
+ String goalName = mojoDescriptor.getId();
try
{
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java Tue Apr 26 18:16:06 2005
@@ -30,8 +30,8 @@
{
String ROLE = PluginManager.class.getName();
- void executeMojo( MavenSession session, String goalName )
- throws PluginExecutionException, PluginNotFoundException, PluginManagerException, ArtifactResolutionException;
+ void executeMojo( MavenSession session, MojoDescriptor mojoDescriptor )
+ throws PluginExecutionException, PluginManagerException, ArtifactResolutionException;
MojoDescriptor getMojoDescriptor( String goalId );
Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java Tue Apr 26 18:16:06 2005
@@ -57,6 +57,8 @@
private String phase;
+ private String executePhase;
+
private List requirements;
private String deprecated;
@@ -248,6 +250,16 @@
public void setGoal( String goal )
{
this.goal = goal;
+ }
+
+ public String getExecutePhase()
+ {
+ return executePhase;
+ }
+
+ public void setExecutePhase( String executePhase )
+ {
+ this.executePhase = executePhase;
}
public boolean alwaysExecute()
Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java Tue Apr 26 18:16:06 2005
@@ -109,6 +109,13 @@
mojo.setPhase( phase );
}
+ String executePhase = c.getChild( "executePhase" ).getValue();
+
+ if ( executePhase != null )
+ {
+ mojo.setExecutePhase( executePhase );
+ }
+
mojo.setInstantiationStrategy( c.getChild( "instantiationStrategy" ).getValue() );
mojo.setDescription( c.getChild( "description" ).getValue() );
Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java Tue Apr 26 18:16:06 2005
@@ -119,6 +119,15 @@
//
// ----------------------------------------------------------------------
+ if ( mojoDescriptor.getExecutePhase() != null )
+ {
+ element( w, "executePhase", mojoDescriptor.getExecutePhase() );
+ }
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
w.startElement( "implementation" );
w.writeText( mojoDescriptor.getImplementation() );
Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java Tue Apr 26 18:16:06 2005
@@ -62,7 +62,7 @@
public static final String PHASE = "phase";
- public static final String DISPATCH = "dispatch";
+ public static final String EXECUTE_PHASE = "executePhase";
public static final String GOAL_DESCRIPTION = "description";
@@ -170,6 +170,17 @@
if ( phase != null )
{
mojoDescriptor.setPhase( phase.getValue() );
+ }
+
+ // ----------------------------------------------------------------------
+ // Additional phase to execute first
+ // ----------------------------------------------------------------------
+
+ DocletTag executePhase = findInClassHierarchy( javaClass, EXECUTE_PHASE );
+
+ if ( executePhase != null )
+ {
+ mojoDescriptor.setExecutePhase( executePhase.getValue() );
}
// ----------------------------------------------------------------------
Modified: maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java?rev=164930&r1=164929&r2=164930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java Tue Apr 26 18:16:06 2005
@@ -38,6 +38,7 @@
/**
* @goal idea
+ * @executePhase generate-sources
* @requiresDependencyResolution test
* @description Goal for generating IDEA files from a POM
* @parameter name="project"
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org