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>&lt;localRepository&gt;</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>