You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/08/16 20:03:42 UTC
svn commit: r233021 - in /maven/components/trunk:
maven-core/src/main/java/org/apache/maven/lifecycle/
maven-core/src/main/resources/META-INF/plexus/
maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/
maven-plugin-tools/maven-plu...
Author: jdcasey
Date: Tue Aug 16 11:03:20 2005
New Revision: 233021
URL: http://svn.apache.org/viewcvs?rev=233021&view=rev
Log:
Working on MNG-483
o Added @requiresDirectInvocation (was: @cliOnly, but this implies m2 is run from CLI...counter-intuitive for embedding)
o Added handling for new @requiresDirectInvocation (generation/parsing, MojoDescriptor support, etc.)
o Added check in DefaultLifecycleExecutor to throw a LifecycleExecutionException if a mojo specified in a lifecycle binding is marked as direct-invocation only.
o Added MavenProjectHelper/DefaultMavenProjectHelper to provide convenience methods for manipulating MavenProject instances (for example, attaching artifacts or adding resources)
o Removed maven-artifact dependency from maven-source-plugin, and added dependency on maven-plugin-api (should've been there)
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java (with props)
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java (with props)
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
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-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java
maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml
maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
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=233021&r1=233020&r2=233021&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 Aug 16 11:03:20 2005
@@ -86,8 +86,6 @@
private List phases;
- private Map defaultPhases;
-
private ArtifactHandlerManager artifactHandlerManager;
// ----------------------------------------------------------------------
@@ -571,6 +569,12 @@
// Not from the CLI, don't use prefix
// TODO: [MNG-608] this needs to be false
MojoDescriptor mojoDescriptor = getMojoDescriptor( goal, session, project, selectedPhase, false );
+
+ if ( mojoDescriptor.isDirectInvocationOnly() )
+ {
+ throw new LifecycleExecutionException( "Mojo: \'" + goal + "\' requires direct invocation. It cannot be used as part of lifecycle: \'" + project.getPackaging() + "\'." );
+ }
+
addToLifecycleMappings( lifecycleMappings, phase, new MojoExecution( mojoDescriptor ),
session.getSettings() );
}
Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Tue Aug 16 11:03:20 2005
@@ -138,6 +138,7 @@
<!-- START SNIPPET: lifecyle -->
<phases>
<phase implementation="java.lang.String">validate</phase>
+ <phase implementation="java.lang.String">initialize</phase>
<phase implementation="java.lang.String">generate-sources</phase>
<phase implementation="java.lang.String">process-sources</phase>
<phase implementation="java.lang.String">generate-resources</phase>
@@ -158,6 +159,7 @@
</phases>
<!-- END SNIPPET: lifecycle -->
<!-- START SNIPPET: default-lifecycle -->
+ <!-- NOT USED, ACCORDING TO CODE.
<defaultPhases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
@@ -171,6 +173,7 @@
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</defaultPhases>
+ -->
<!-- END SNIPPET: default-lifecycle -->
</configuration>
</component>
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=233021&r1=233020&r2=233021&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 Aug 16 11:03:20 2005
@@ -79,6 +79,8 @@
private PluginDescriptor pluginDescriptor;
private boolean inheritedByDefault = true;
+
+ private boolean directInvocationOnly = false;
public MojoDescriptor()
{
@@ -400,5 +402,15 @@
public boolean isAggregator()
{
return aggregator;
+ }
+
+ public boolean isDirectInvocationOnly()
+ {
+ return directInvocationOnly;
+ }
+
+ public void setDirectInvocationOnly( boolean directInvocationOnly )
+ {
+ this.directInvocationOnly = directInvocationOnly;
}
}
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=233021&r1=233020&r2=233021&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 Aug 16 11:03:20 2005
@@ -160,6 +160,13 @@
mojo.setDependencyResolutionRequired( dependencyResolution );
}
+ String directInvocationOnly = c.getChild( "requiresDirectInvocation" ).getValue();
+
+ if ( directInvocationOnly != null )
+ {
+ mojo.setDirectInvocationOnly( Boolean.valueOf( directInvocationOnly ).booleanValue() );
+ }
+
String requiresProject = c.getChild( "requiresProject" ).getValue();
if ( requiresProject != null )
@@ -187,7 +194,7 @@
{
mojo.setInheritedByDefault( Boolean.valueOf( inheritedByDefault ).booleanValue() );
}
-
+
// ----------------------------------------------------------------------
// Parameters
// ----------------------------------------------------------------------
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=233021&r1=233020&r2=233021&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 Aug 16 11:03:20 2005
@@ -126,6 +126,12 @@
//
// ----------------------------------------------------------------------
+ element( w, "requiresDirectInvocation", "" + mojoDescriptor.isDirectInvocationOnly() );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
element( w, "requiresProject", "" + mojoDescriptor.isProjectRequired() );
// ----------------------------------------------------------------------
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=233021&r1=233020&r2=233021&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 Aug 16 11:03:20 2005
@@ -85,6 +85,8 @@
public static final String GOAL_INHERIT_BY_DEFAULT = "inheritByDefault";
public static final String GOAL_MULTI_EXECUTION_STRATEGY = "attainAlways";
+
+ public static final String GOAL_REQUIRES_DIRECT_INVOCATION = "requiresDirectInvocation";
protected void validateParameter( Parameter parameter, int i )
throws InvalidParameterException
@@ -253,6 +255,17 @@
if ( aggregator != null )
{
mojoDescriptor.setAggregator( true );
+ }
+
+ // ----------------------------------------------------------------------
+ // requiresDirectInvocation flag
+ // ----------------------------------------------------------------------
+
+ DocletTag requiresDirectInvocation = findInClassHierarchy( javaClass, GOAL_REQUIRES_DIRECT_INVOCATION );
+
+ if ( requiresDirectInvocation != null )
+ {
+ mojoDescriptor.setDirectInvocationOnly( true );
}
// ----------------------------------------------------------------------
Modified: maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java Tue Aug 16 11:03:20 2005
@@ -57,6 +57,7 @@
* @version $Id$
* @goal assembly
* @requiresDependencyResolution test
+ * @requiresDirectInvocation
* @execute phase="package"
*/
public class AssemblyMojo
Modified: maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-source-plugin/pom.xml Tue Aug 16 11:03:20 2005
@@ -28,7 +28,7 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
+ <artifactId>maven-plugin-api</artifactId>
<version>2.0-beta-1-SNAPSHOT</version>
</dependency>
</dependencies>
Modified: maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-source-plugin/src/main/java/org/apache/maven/plugin/source/JarSourceMojo.java Tue Aug 16 11:03:20 2005
@@ -16,11 +16,10 @@
* limitations under the License.
*/
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
import org.codehaus.plexus.archiver.jar.JarArchiver;
import java.io.File;
@@ -45,9 +44,9 @@
private MavenProject project;
/**
- * @parameter expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}
+ * @parameter expression="${component.org.apache.maven.project.MavenProjectHelper}
*/
- private ArtifactFactory artifactFactory;
+ private MavenProjectHelper projectHelper;
/**
* @parameter expression="${project.build.finalName}"
@@ -110,12 +109,7 @@
// TODO: these introduced dependencies on the project are going to become problematic - can we export it
// through metadata instead?
- Artifact artifact = artifactFactory.createArtifactWithClassifier( project.getGroupId(),
- project.getArtifactId(),
- project.getVersion(), null, "java-source",
- "sources" );
- artifact.setFile( outputFile );
- project.addAttachedArtifact( artifact );
+ projectHelper.attachArtifact( project, "java-source", "sources", outputFile );
}
else
{
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java?rev=233021&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java Tue Aug 16 11:03:20 2005
@@ -0,0 +1,52 @@
+package org.apache.maven.project;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.model.Resource;
+
+import java.io.File;
+import java.util.List;
+
+public class DefaultMavenProjectHelper
+ implements MavenProjectHelper
+{
+
+ // requirement.
+ private ArtifactFactory artifactFactory;
+
+ public void attachArtifact( MavenProject project, String artifactType, String artifactClassifier, File artifactFile )
+ {
+ Artifact artifact = artifactFactory.createArtifactWithClassifier( project.getGroupId(),
+ project.getArtifactId(),
+ project.getVersion(),
+ null,
+ "artifactType",
+ "artifactClassifier" );
+
+ artifact.setFile( artifactFile );
+ artifact.setResolved( true );
+
+ project.addAttachedArtifact( artifact );
+ }
+
+ public void addResource( MavenProject project, String resourceDirectory, List includes, List excludes )
+ {
+ Resource resource = new Resource();
+ resource.setDirectory( resourceDirectory );
+ resource.setIncludes( includes );
+ resource.setExcludes( excludes );
+
+ project.addResource( resource );
+ }
+
+ public void addTestResource( MavenProject project, String resourceDirectory, List includes, List excludes )
+ {
+ Resource resource = new Resource();
+ resource.setDirectory( resourceDirectory );
+ resource.setIncludes( includes );
+ resource.setExcludes( excludes );
+
+ project.addTestResource( resource );
+ }
+
+}
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Tue Aug 16 11:03:20 2005
@@ -1337,5 +1337,9 @@
this.profileProperties = newProfilesProperties;
}
+
+ public void attachArtifact( String type, String classifier, File file )
+ {
+ }
}
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java?rev=233021&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java Tue Aug 16 11:03:20 2005
@@ -0,0 +1,17 @@
+package org.apache.maven.project;
+
+import java.io.File;
+import java.util.List;
+
+public interface MavenProjectHelper
+{
+
+ String ROLE = MavenProjectHelper.class.getName();
+
+ void attachArtifact( MavenProject project, String artifactType, String artifactClassifier, File artifactFile );
+
+ void addResource( MavenProject project, String resourceDirectory, List includes, List excludes );
+
+ void addTestResource( MavenProject project, String resourceDirectory, List includes, List excludes );
+
+}
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectHelper.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml Tue Aug 16 11:03:20 2005
@@ -6,6 +6,20 @@
|
-->
<component>
+ <role>org.apache.maven.project.MavenProjectHelper</role>
+ <implementation>org.apache.maven.project.DefaultMavenProjectHelper</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
+ </requirement>
+ </requirements>
+ </component>
+<!--
+ |
+ |
+ |
+ -->
+ <component>
<role>org.apache.maven.project.interpolation.ModelInterpolator</role>
<implementation>org.apache.maven.project.interpolation.RegexBasedModelInterpolator</implementation>
</component>
Modified: maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml?rev=233021&r1=233020&r2=233021&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml Tue Aug 16 11:03:20 2005
@@ -60,12 +60,12 @@
<build>
<plugins>
<plugin>
- <inherit>true</inherit>
+ <inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
- <inherit>true</inherit>
+ <inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org