You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/08/02 23:49:16 UTC
svn commit: r1368716 - in /maven/archetype/trunk: ./ maven-archetype-plugin/
maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/
Author: olamy
Date: Thu Aug 2 21:49:15 2012
New Revision: 1368716
URL: http://svn.apache.org/viewvc?rev=1368716&view=rev
Log:
[ARCHETYPE-418] use plugin annotations.
Removed:
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CleanMojo.java
Modified:
maven/archetype/trunk/maven-archetype-plugin/pom.xml
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
maven/archetype/trunk/pom.xml
Modified: maven/archetype/trunk/maven-archetype-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/pom.xml?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/pom.xml (original)
+++ maven/archetype/trunk/maven-archetype-plugin/pom.xml Thu Aug 2 21:49:15 2012
@@ -79,6 +79,13 @@ under the License.
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
</dependency>
+ <!-- dependencies to annotations -->
+ <dependency>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-annotations</artifactId>
+ <version>${mavenPluginPluginVersion}</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
@@ -115,12 +122,20 @@ under the License.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
+ <version>${mavenPluginPluginVersion}</version>
<configuration>
<goalPrefix>archetype</goalPrefix>
+ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
- <id>generated-helpmojo</id>
+ <id>mojo-descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>help-goal</id>
<goals>
<goal>helpmojo</goal>
</goals>
Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java (original)
+++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java Thu Aug 2 21:49:15 2012
@@ -24,36 +24,34 @@ import org.apache.maven.archetype.reposi
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
import java.io.File;
/**
* Crawl a Maven repository (filesystem, not HTTP) and creates a catalog file.
*
- * @author rafale
- * @requiresProject false
- * @goal crawl
+ * @author rafale
*/
+@Mojo( name = "crawl", requiresProject = false )
public class CrawlRepositoryMojo
extends AbstractMojo
{
/**
* The archetype's catalog to update.
- *
- * @parameter expression="${catalog}"
*/
+ @Parameter( property = "catalog" )
private File catalogFile;
- /**
- * @component
- */
+ @Component
private RepositoryCrawler crawler;
/**
* The repository to crawl.
- *
- * @parameter expression="${repository}" default-value="${settings.localRepository}"
*/
+ @Parameter( property = "repository", defaultValue = "${settings.localRepository}" )
private File repository;
public void execute()
Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java (original)
+++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java Thu Aug 2 21:49:15 2012
@@ -29,6 +29,11 @@ import org.apache.maven.execution.MavenS
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.PropertyUtils;
import org.codehaus.plexus.util.StringUtils;
@@ -46,9 +51,9 @@ import java.util.Properties;
* <p>
* This goal reads your source and resource files, the values of its parameters,
* and properties you specify in a <code>.property</code> file, and uses them to
- * create a Maven archetype project using the maven-archetype packaging.
+ * create a Maven archetype project using the maven-archetype packaging.
* If you build the resulting project, it will create the archetype. You can then
- * use this archetype to create new projects that resemble the original.
+ * use this archetype to create new projects that resemble the original.
* </p>
* <p>
* The maven-archetype-plugin uses Velocity to expand template files, and this documentation
@@ -63,14 +68,14 @@ import java.util.Properties;
* <dl>
* <dt>GAV</dt><dd>The GAV values for the current project are replaced by properties: groupId, artifactId, and version.
* The user chooses new values for these when generating a project from the archetype.</dd>
- * <dt>package</dt><dd>All the files under one specified Java (or cognate) package are relocated to a project
+ * <dt>package</dt><dd>All the files under one specified Java (or cognate) package are relocated to a project
* that the user chooses when generating a project. References to the class name are replaced by a property reference. For
- * example, if the current project's sources are in the package <code>org.apache.saltedpeanuts</code>, then
+ * example, if the current project's sources are in the package <code>org.apache.saltedpeanuts</code>, then
* any example of the string <code>org.apache.saltedpeanuts</code> is replaced with the Velocity property
* reference <code>${packageName}</code>. When the user generates a project, this is in turn replaced by
- * his or her choice of a package.
+ * his or her choice of a package.
* </dd>
- * <dt>custom properties</dt><dd>You may identify additional strings that should be replaced by parameters.
+ * <dt>custom properties</dt><dd>You may identify additional strings that should be replaced by parameters.
* To add custom properties, you must use the <code>propertyFile</code> parameter to specify a property file.
* See the documentation for <code>propertyFile</code> for the details.
* </dl>
@@ -83,90 +88,76 @@ import java.util.Properties;
* </p>
*
* @author rafale
- * @requiresProject true
- * @goal create-from-project
- * @execute phase="generate-sources"
- * @aggregator
*/
+@Mojo( name = "create-from-project", requiresProject = true, aggregator = true )
+@Execute( phase = LifecyclePhase.GENERATE_SOURCES )
public class CreateArchetypeFromProjectMojo
extends AbstractMojo
{
- /** @component */
+
+ @Component
private ArchetypeCreationConfigurator configurator;
/**
* Enable the interactive mode to define the archetype from the project.
- *
- * @parameter expression="${interactive}" default-value="false"
*/
+ @Parameter( property = "interactive", defaultValue = "false" )
private boolean interactive;
- /** @component */
+ @Component
private ArchetypeManager manager;
/**
* File extensions which are checked for project's text files (vs binary files).
- *
- * @parameter expression="${archetype.filteredExtentions}"
*/
+ @Parameter( property = "archetype.filteredExtentions" )
private String archetypeFilteredExtentions;
/**
* Directory names which are checked for project's sources main package.
- *
- * @parameter expression="${archetype.languages}"
*/
+ @Parameter( property = "archetype.languages" )
private String archetypeLanguages;
/**
* The location of the registry file.
- *
- * @parameter expression="${user.home}/.m2/archetype.xml"
*/
+ @Parameter( defaultValue = "${user.home}/.m2/archetype.xml" )
private File archetypeRegistryFile;
/**
* Velocity templates encoding.
- *
- * @parameter default-value="UTF-8" expression="${archetype.encoding}"
*/
+ @Parameter( property = "archetype.encoding", defaultValue = "UTF-8" )
private String defaultEncoding;
/**
* Create a partial archetype.
- *
- * @parameter expression="${archetype.partialArchetype}"
*/
+ @Parameter( property = "archetype.partialArchetype" )
private boolean partialArchetype = false;
/**
* Create pom's velocity templates with CDATA preservation. This uses the <code>String.replaceAll()</code>
* method and risks to have some overly replacement capabilities (beware of '1.0' value).
- *
- * @parameter expression="${archetype.preserveCData}"
*/
+ @Parameter( property = "archetype.preserveCData" )
private boolean preserveCData = false;
- /** @parameter expression="${localRepository}"
- * @readonly
- **/
+ @Parameter( defaultValue = "${localRepository}", readonly = true )
private ArtifactRepository localRepository;
/**
* POMs in archetype are created with their initial parent.
* This property is ignored when preserveCData is true.
- *
- * @parameter expression="${archetype.keepParent}"
*/
+ @Parameter( property = "archetype.keepParent" )
private boolean keepParent = true;
/**
* The Maven project to create an archetype from.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
*/
+ @Component
private MavenProject project;
/**
@@ -175,68 +166,61 @@ public class CreateArchetypeFromProjectM
* properties listed below or custom properties for this archetype. The standard properties
* are below. Several of them overlap parameters of this goal; it's better to just
* set the parameter.
- *
- * <dl><dt>package</dt><dd>See the packageName parameter.</dd>
- * <dt>archetype.languages</dt><dd>See the archetypeLanguages parameter.</dd>
- * <dt>groupId</dt><dd>The default groupId of the generated project.</dd>
- * <dt>artifactId</dt><dd>The default artifactId of the generated project.</dd>
- * <dt>version</dt><dd>The default version of the generated project.</dd>
- * <dt>archetype.filteredExtensions</dt><dd>See the filteredExensions parameter.</dd>
- * </dl>
- * <strong>Custom Properties</strong>
- * <p>
- * Custom properties allow you to replace some constant values in the project's files
- * with Velocity macro references. When a user generates a project from your archetype
- * he or she gets the opportunity to replace the value from the source project.
- * </p>
- * <p>
- * Custom property names <strong>may not contain the '.' character</strong>.
- * </p>
- * <p>
- * For example, if you include a line like the following in your property file:
- * <pre>
+ * <p/>
+ * <dl><dt>package</dt><dd>See the packageName parameter.</dd>
+ * <dt>archetype.languages</dt><dd>See the archetypeLanguages parameter.</dd>
+ * <dt>groupId</dt><dd>The default groupId of the generated project.</dd>
+ * <dt>artifactId</dt><dd>The default artifactId of the generated project.</dd>
+ * <dt>version</dt><dd>The default version of the generated project.</dd>
+ * <dt>archetype.filteredExtensions</dt><dd>See the filteredExensions parameter.</dd>
+ * </dl>
+ * <strong>Custom Properties</strong>
+ * <p>
+ * Custom properties allow you to replace some constant values in the project's files
+ * with Velocity macro references. When a user generates a project from your archetype
+ * he or she gets the opportunity to replace the value from the source project.
+ * </p>
+ * <p>
+ * Custom property names <strong>may not contain the '.' character</strong>.
+ * </p>
+ * <p>
+ * For example, if you include a line like the following in your property file:
+ * <pre>
* cxf-version=2.5.1-SNAPSHOT
* </pre>
- * the plugin will search your files for the string <pre>2.5.1-SNAPSHOT</pre> and
- * replace them with references to a velocity macro <pre>cxf-version</pre>. It will
- * then list <pre>cxf-version</pre> as a <pre>requiredProperty</pre> in the
- * archetype-metadata.xml, with <pre>2.5.1-SNAPSHOT</pre> as the default value.
- * </p>
- *
- *
- * @parameter expression="${archetype.properties}"
+ * the plugin will search your files for the string <pre>2.5.1-SNAPSHOT</pre> and
+ * replace them with references to a velocity macro <pre>cxf-version</pre>. It will
+ * then list <pre>cxf-version</pre> as a <pre>requiredProperty</pre> in the
+ * archetype-metadata.xml, with <pre>2.5.1-SNAPSHOT</pre> as the default value.
+ * </p>
*/
+ @Parameter( property = "archetype.properties" )
private File propertyFile;
/**
* The property telling which phase to call on the generated archetype.
* Interesting values are: <code>package</code>, <code>integration-test</code>, <code>install</code> and <code>deploy</code>.
- *
- * @parameter expression="${archetype.postPhase}" default-value="package"
*/
+ @Parameter( property = "archetype.postPhase", defaultValue = "package" )
private String archetypePostPhase;
/**
* The directory where the archetype should be created.
- *
- * @parameter expression="${project.build.directory}/generated-sources/archetype"
*/
+ @Parameter( defaultValue = "${project.build.directory}/generated-sources/archetype" )
private File outputDirectory;
- /** @parameter expression="${testMode}" */
+ @Parameter( property = "testMode" )
private boolean testMode;
- /**
- * The package name for Java source files to be incorporated in the archetype and
+ /**
+ * The package name for Java source files to be incorporated in the archetype and
* and relocated to the package that the user selects.
- *
- * @parameter expression="${packageName}" */
+ */
+ @Parameter( property = "packageName" )
private String packageName; //Find a better way to resolve the package!!! enforce usage of the configurator
- /**
- * @parameter expression="${session}"
- * @readonly
- */
+ @Component
private MavenSession session;
public void execute()
@@ -258,25 +242,16 @@ public class CreateArchetypeFromProjectM
List<String> filtereds = getFilteredExtensions( archetypeFilteredExtentions, propertyFile );
- ArchetypeCreationRequest request = new ArchetypeCreationRequest()
- .setDefaultEncoding( defaultEncoding )
- .setProject( project )
- /* Used when in interactive mode */
- .setProperties( properties )
- .setLanguages( languages )
- /* Should be refactored to use some ant patterns */
- .setFiltereds( filtereds )
- /* This should be correctly handled */
- .setPreserveCData( preserveCData )
- .setKeepParent( keepParent )
- .setPartialArchetype( partialArchetype )
- /* This should be used before there and use only languages and filtereds */
- .setArchetypeRegistryFile( archetypeRegistryFile )
- .setLocalRepository( localRepository )
- /* this should be resolved and asked for user to verify */
- .setPackageName( packageName )
- .setPostPhase( archetypePostPhase )
- .setOutputDirectory( outputDirectory );
+ ArchetypeCreationRequest request =
+ new ArchetypeCreationRequest().setDefaultEncoding( defaultEncoding ).setProject( project )
+ /* Used when in interactive mode */.setProperties( properties ).setLanguages( languages )
+ /* Should be refactored to use some ant patterns */.setFiltereds( filtereds )
+ /* This should be correctly handled */.setPreserveCData( preserveCData ).setKeepParent(
+ keepParent ).setPartialArchetype( partialArchetype )
+ /* This should be used before there and use only languages and filtereds */.setArchetypeRegistryFile(
+ archetypeRegistryFile ).setLocalRepository( localRepository )
+ /* this should be resolved and asked for user to verify */.setPackageName( packageName ).setPostPhase(
+ archetypePostPhase ).setOutputDirectory( outputDirectory );
ArchetypeCreationResult result = manager.createArchetypeFromProject( request );
Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java (original)
+++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java Thu Aug 2 21:49:15 2012
@@ -20,9 +20,9 @@ package org.apache.maven.archetype.mojos
*/
import org.apache.commons.lang.StringUtils;
-import org.apache.maven.archetype.ArchetypeManager;
import org.apache.maven.archetype.ArchetypeGenerationRequest;
import org.apache.maven.archetype.ArchetypeGenerationResult;
+import org.apache.maven.archetype.ArchetypeManager;
import org.apache.maven.archetype.ui.generation.ArchetypeGenerationConfigurator;
import org.apache.maven.archetype.ui.generation.ArchetypeSelector;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -31,6 +31,11 @@ import org.apache.maven.plugin.AbstractM
import org.apache.maven.plugin.ContextEnabled;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.shared.invoker.DefaultInvocationRequest;
import org.apache.maven.shared.invoker.InvocationRequest;
import org.apache.maven.shared.invoker.Invoker;
@@ -47,52 +52,47 @@ import java.util.Properties;
* If the project is updated with a partial archetype, it is done in the current directory.
*
* @author rafale
- * @requiresProject false
- * @goal generate
- * @execute phase="generate-sources"
*/
+@Mojo( name = "generate", requiresProject = false )
+@Execute( phase = LifecyclePhase.GENERATE_SOURCES )
public class CreateProjectFromArchetypeMojo
extends AbstractMojo
implements ContextEnabled
{
- /** @component */
+ @Component
private ArchetypeManager manager;
- /** @component */
+ @Component
private ArchetypeSelector selector;
- /** @component */
+ @Component
private ArchetypeGenerationConfigurator configurator;
- /** @component */
+ @Component
private Invoker invoker;
/**
* The archetype's artifactId.
- *
- * @parameter expression="${archetypeArtifactId}"
*/
+ @Parameter( property = "archetypeArtifactId" )
private String archetypeArtifactId;
/**
* The archetype's groupId.
- *
- * @parameter expression="${archetypeGroupId}"
*/
+ @Parameter( property = "archetypeGroupId" )
private String archetypeGroupId;
/**
* The archetype's version.
- *
- * @parameter expression="${archetypeVersion}"
*/
+ @Parameter( property = "archetypeVersion" )
private String archetypeVersion;
/**
* The archetype's repository.
- *
- * @parameter expression="${archetypeRepository}"
*/
+ @Parameter( property = "archetypeRepository" )
private String archetypeRepository;
/**
@@ -106,66 +106,54 @@ public class CreateProjectFromArchetypeM
* <li>'<code>remote</code>' which is the shortcut for Maven Central repository, ie '<code>http://repo.maven.apache.org/maven2</code>'</li>
* <li>'<code>internal</code>' which is an internal catalog</li>
* </ul>
- *
+ * <p/>
* Since 2.0-alpha-5, default value is no longer <code>internal,local</code> but <code>remote,local</code>.
* If Maven Central repository catalog file is empty, <code>internal</code> catalog is used instead.
- *
- * @parameter expression="${archetypeCatalog}" default-value="remote,local"
*/
+ @Parameter( property = "archetypeCatalog", defaultValue = "remote,local" )
private String archetypeCatalog;
/**
* Local Maven repository.
- *
- * @parameter expression="${localRepository}"
- * @required
- * @readonly
*/
+ @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
private ArtifactRepository localRepository;
/**
* List of remote repositories used by the resolver.
- *
- * @parameter expression="${project.remoteArtifactRepositories}"
- * @readonly
- * @required
*/
+ @Parameter( defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true )
private List<ArtifactRepository> remoteArtifactRepositories;
/**
* User settings use to check the interactiveMode.
- *
- * @parameter expression="${interactiveMode}" default-value="${settings.interactiveMode}"
- * @required
*/
+ @Parameter( property = "interactiveMode", defaultValue = "${settings.interactiveMode}", required = true )
private Boolean interactiveMode;
- /** @parameter expression="${basedir}" */
+ @Parameter( defaultValue = "${basedir}" )
private File basedir;
- /**
- * @parameter expression="${session}"
- * @readonly
- */
+ @Parameter( defaultValue = "${session}", readonly = true )
private MavenSession session;
/**
* Additional goals to immediately run on the project created from the archetype.
- *
- * @parameter expression="${goals}"
*/
+ @Parameter( property = "goals" )
private String goals;
/**
- * Applying some filter on displayed archetypes list: format is <code>artifactId</code> or <code>groupId:artifactId</code>.
- * <ul>
- * <li><code>org.apache:</code> -> displays all archetypes which contain org.apache in groupId</li>
- * <li><code>:jee</code> or <code>jee</code> -> displays all archetypes which contain jee in artifactId</li>
- * <li><code>org.apache:jee</code> -> displays all archetypes which contain org.apache in groupId AND jee in artifactId</li>
- * </ul>
- * @parameter expression="${filter}"
- * @since 2.1
+ * Applying some filter on displayed archetypes list: format is <code>artifactId</code> or <code>groupId:artifactId</code>.
+ * <ul>
+ * <li><code>org.apache:</code> -> displays all archetypes which contain org.apache in groupId</li>
+ * <li><code>:jee</code> or <code>jee</code> -> displays all archetypes which contain jee in artifactId</li>
+ * <li><code>org.apache:jee</code> -> displays all archetypes which contain org.apache in groupId AND jee in artifactId</li>
+ * </ul>
+ *
+ * @since 2.1
*/
+ @Parameter( property = "filter" )
private String filter;
public void execute()
@@ -173,15 +161,11 @@ public class CreateProjectFromArchetypeM
{
Properties executionProperties = session.getExecutionProperties();
- ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
- .setArchetypeGroupId( archetypeGroupId )
- .setArchetypeArtifactId( archetypeArtifactId )
- .setArchetypeVersion( archetypeVersion )
- .setOutputDirectory( basedir.getAbsolutePath() )
- .setLocalRepository( localRepository )
- .setArchetypeRepository( archetypeRepository )
- .setRemoteArtifactRepositories( remoteArtifactRepositories )
- .setFilter( filter );
+ ArchetypeGenerationRequest request =
+ new ArchetypeGenerationRequest().setArchetypeGroupId( archetypeGroupId ).setArchetypeArtifactId(
+ archetypeArtifactId ).setArchetypeVersion( archetypeVersion ).setOutputDirectory(
+ basedir.getAbsolutePath() ).setLocalRepository( localRepository ).setArchetypeRepository(
+ archetypeRepository ).setRemoteArtifactRepositories( remoteArtifactRepositories ).setFilter( filter );
try
{
@@ -245,9 +229,8 @@ public class CreateProjectFromArchetypeM
if ( projectBasedir.exists() )
{
- InvocationRequest request = new DefaultInvocationRequest()
- .setBaseDirectory( projectBasedir )
- .setGoals( Arrays.asList( StringUtils.split( goals, "," ) ) );
+ InvocationRequest request = new DefaultInvocationRequest().setBaseDirectory( projectBasedir ).setGoals(
+ Arrays.asList( StringUtils.split( goals, "," ) ) );
try
{
Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java (original)
+++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java Thu Aug 2 21:49:15 2012
@@ -28,6 +28,9 @@ import org.apache.maven.archetype.genera
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
import org.apache.maven.shared.invoker.DefaultInvocationRequest;
@@ -78,47 +81,38 @@ import java.util.Set;
* as a goal from CLI.
*
* @author rafale
- * @requiresProject true
- * @goal integration-test
*/
+@Mojo( name = "integration-test", requiresProject = true )
public class IntegrationTestMojo
extends AbstractMojo
{
- /**
- * @component
- */
+
+ @Component
private ArchetypeGenerator archetypeGenerator;
- /**
- * @component
- */
+ @Component
private Invoker invoker;
/**
* The archetype project to execute the integration tests on.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
*/
+ @Component
private MavenProject project;
/**
* Skip the integration test.
- *
- * @parameter expression="${archetype.test.skip}"
- * @readonly
*/
+ @Parameter( property = "archetype.test.skip" )
private boolean skip = false;
/**
* Directory of test projects
*
- * @parameter expression="${archetype.test.projectsDirectory}" default-value="${project.build.testOutputDirectory}/projects"
- * @required
* @since 2.2
*/
+ @Parameter( property = "archetype.test.projectsDirectory",
+ defaultValue = "${project.build.testOutputDirectory}/projects", required = true )
private File testProjectsDirectory;
/**
@@ -128,77 +122,74 @@ public class IntegrationTestMojo
* If this script exists for a particular project but returns any non-null value different from <code>true</code> or
* throws an exception, the corresponding build is flagged as a failure.
*
- * @parameter expression="${archetype.test.verifyScript}" default-value="verify"
* @since 2.2
*/
+ @Parameter( property = "archetype.test.verifyScript", defaultValue = "verify" )
private String postBuildHookScript;
/**
* Suppress logging to the <code>build.log</code> file.
*
- * @parameter expression="${archetype.test.noLog}" default-value="false"
* @since 2.2
*/
+ @Parameter( property = "archetype.test.noLog", defaultValue = "false" )
private boolean noLog;
/**
* Flag used to determine whether the build logs should be output to the normal mojo log.
*
- * @parameter expression="${archetype.test.streamLogs}" default-value="true"
* @since 2.2
*/
+ @Parameter( property = "archetype.test.streamLogs", defaultValue = "true" )
private boolean streamLogs;
/**
* The file encoding for the post-build script.
*
- * @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}"
* @since 2.2
*/
+ @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" )
private String encoding;
/**
* The local repository to run maven instance.
*
- * @parameter expression="${archetype.test.localRepositoryPath}" default-value="${settings.localRepository}"
- * @required
- * @readonly
* @since 2.2
*/
+ @Parameter( property = "archetype.test.localRepositoryPath", defaultValue = "${settings.localRepository}",
+ required = true )
private File localRepositoryPath;
/**
* flag to enable show mvn version used for running its (cli option : -V,--show-version )
*
- * @parameter expression="${archetype.test.showVersion}" default-value="false"
* @since 2.2
*/
+ @Parameter( property = "archetype.test.showVersion", defaultValue = "false" )
private boolean showVersion;
/**
* Whether to show debug statements in the build output.
*
- * @parameter expression="${archetype.test.debug}" default-value="false"
* @since 2.2
*/
+ @Parameter( property = "archetype.test.debug", defaultValue = "false" )
private boolean debug;
/**
* A list of additional properties which will be used to filter tokens in settings.xml
*
- * @parameter
* @since 2.2
*/
+ @Parameter
private Map<String, String> filterProperties;
/**
* The current user system settings for use in Maven.
*
- * @parameter expression="${settings}"
- * @required
- * @readonly
* @since 2.2
*/
+ @Parameter( defaultValue = "${settings}", required = true, readonly = true )
private Settings settings;
/**
@@ -206,9 +197,9 @@ public class IntegrationTestMojo
* <code><localRepository></code> element of this settings file is always ignored, i.e. the path given by the
* parameter {@link #localRepositoryPath} is dominant.
*
- * @parameter expression="${archetype.test.settingsFile}"
* @since 2.2
*/
+ @Parameter( property = "archetype.test.settingsFile" )
private File settingsFile;
Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java (original)
+++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java Thu Aug 2 21:49:15 2012
@@ -28,6 +28,10 @@ import org.apache.maven.artifact.Depende
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import java.io.File;
@@ -36,59 +40,46 @@ import java.io.IOException;
/**
* Build a JAR from the current Archetype project.
*
- * @author rafale
- * @goal jar
- * @phase package
- * @requiresProject
+ * @author rafale
*/
+@Mojo( name = "jar", defaultPhase = LifecyclePhase.PACKAGE, requiresProject = true )
public class JarMojo
extends AbstractMojo
{
/**
* Directory containing the classes.
- *
- * @parameter expression="${project.build.outputDirectory}"
- * @required
*/
+ @Parameter( defaultValue = "${project.build.outputDirectory}", required = true )
private File archetypeDirectory;
/**
* Name of the generated JAR.
- *
- * @parameter alias="jarName" expression="${project.build.finalName}"
- * @required
*/
+ @Parameter( defaultValue = "${project.build.finalName}", alias = "jarName", required = true )
private String finalName;
/**
* Directory containing the generated JAR.
- *
- * @parameter expression="${project.build.directory}"
- * @required
*/
+ @Parameter( defaultValue = "${project.build.directory}", required = true )
private File outputDirectory;
/**
* The Maven project.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
*/
+ @Component
private MavenProject project;
/**
* The archetype manager component.
- *
- * @component
*/
+ @Component
private ArchetypeManager manager;
/**
* The archetype artifact manager component.
- *
- * @component
*/
+ @Component
private ArchetypeArtifactManager archetypeArtifactManager;
public void execute()
Modified: maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java (original)
+++ maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java Thu Aug 2 21:49:15 2012
@@ -23,30 +23,29 @@ import org.apache.maven.archetype.Archet
import org.apache.maven.archetype.catalog.Archetype;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.StringUtils;
/**
* Updates the local catalog
*
- * @phase install
- * @goal update-local-catalog
- *
* @author rafale
*/
+@Mojo( name = "update-local-catalog", defaultPhase = LifecyclePhase.INSTALL )
public class UpdateLocalCatalogMojo
extends AbstractMojo
{
- /** @component */
+
+ @Component
private ArchetypeManager manager;
/**
* The archetype project to add/update to the local catalog.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
*/
+ @Component
private MavenProject project;
public void execute()
Modified: maven/archetype/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/pom.xml?rev=1368716&r1=1368715&r2=1368716&view=diff
==============================================================================
--- maven/archetype/trunk/pom.xml (original)
+++ maven/archetype/trunk/pom.xml Thu Aug 2 21:49:15 2012
@@ -146,7 +146,7 @@ under the License.
<properties>
<mavenVersion>2.0.8</mavenVersion><!-- with 2.0.9 proxy test fails-->
<netbeans.hint.useExternalMaven>true</netbeans.hint.useExternalMaven>
- <mavenPluginPluginVersion>2.9</mavenPluginPluginVersion>
+ <mavenPluginPluginVersion>3.1</mavenPluginPluginVersion>
<wagonVersion>1.0</wagonVersion>
</properties>