You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/07/05 18:48:39 UTC

svn commit: r1357733 - in /maven/release/trunk/maven-release-plugin: ./ src/main/java/org/apache/maven/plugins/release/

Author: rfscholte
Date: Thu Jul  5 16:48:39 2012
New Revision: 1357733

URL: http://svn.apache.org/viewvc?rev=1357733&view=rev
Log:
Fix MRELEASE-776: use maven-plugin-tools' java 5 annotations

Modified:
    maven/release/trunk/maven-release-plugin/pom.xml
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareWithPomReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/StageReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java

Modified: maven/release/trunk/maven-release-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/pom.xml?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/pom.xml (original)
+++ maven/release/trunk/maven-release-plugin/pom.xml Thu Jul  5 16:48:39 2012
@@ -49,6 +49,20 @@
       <url>scp://people.apache.org/www/maven.apache.org/plugins/maven-release-plugin</url>
     </site>
   </distributionManagement>
+  
+  <properties>
+    <mavenPluginPluginVersion>3.1</mavenPluginPluginVersion>
+  </properties>
+  
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-artifact</artifactId>
+        <version>${mavenVersion}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement> 
 
   <dependencies>
     <dependency>
@@ -57,6 +71,11 @@
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <version>${mavenPluginPluginVersion}</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.release</groupId>
       <artifactId>maven-release-manager</artifactId>
       <version>${project.version}</version>
@@ -121,10 +140,19 @@
         <version>${mavenPluginPluginVersion}</version>
         <executions>
           <execution>
+            <id>mojo-descriptor</id>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+          <execution>
             <id>generated-helpmojo</id>
             <goals>
               <goal>helpmojo</goal>
             </goals>
+            <configuration>
+              <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+            </configuration>
           </execution>
         </executions>
       </plugin>

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -29,6 +29,8 @@ import org.apache.maven.model.Profile;
 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.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.settings.Settings;
@@ -49,23 +51,20 @@ public abstract class AbstractReleaseMoj
 {
     /**
      * The SCM username to use.
-     *
-     * @parameter expression="${username}"
      */
+    @Parameter( property = "username" )
     private String username;
 
     /**
      * The SCM password to use.
-     *
-     * @parameter expression="${password}"
      */
+    @Parameter( property = "password" )
     private String password;
 
     /**
      * The SCM tag to use.
-     *
-     * @parameter expression="${tag}" alias="releaseLabel"
      */
+    @Parameter( alias = "releaseLabel", property = "tag" )
     private String tag;
 
     /**
@@ -78,115 +77,104 @@ public abstract class AbstractReleaseMoj
      *     <li><code>version</code> or <code>project.version</code> - The release version of the root project.
      * </ul>
      *
-     * @parameter expression="${tagNameFormat}" default-value="@{project.artifactId}-@{project.version}"
      * @since 2.2.0
      */
+    @Parameter( defaultValue = "@{project.artifactId}-@{project.version}", property = "tagNameFormat" )
     private String tagNameFormat;
 
     /**
      * The tag base directory in SVN, you must define it if you don't use the standard svn layout (trunk/tags/branches).
      * For example, <code>http://svn.apache.org/repos/asf/maven/plugins/tags</code>. The URL is an SVN URL and does not
      * include the SCM provider and protocol.
-     *
-     * @parameter expression="${tagBase}"
      */
+    @Parameter( property = "tagBase" )
     private String tagBase;
 
     /**
-     * @parameter default-value="${basedir}"
-     * @required
-     * @readonly
      */
+    @Parameter( defaultValue = "${basedir}", readonly = true, required = true )
     private File basedir;
 
     /**
-     * @parameter default-value="${settings}"
-     * @required
-     * @readonly
      */
+    @Component
     private Settings settings;
 
     /**
-     * @parameter default-value="${project}"
-     * @required
-     * @readonly
      */
+    @Component
     protected MavenProject project;
 
     /**
-     * @component
      */
+    @Component
     protected ReleaseManager releaseManager;
 
     /**
      * Additional arguments to pass to the Maven executions, separated by spaces.
-     *
-     * @parameter expression="${arguments}" alias="prepareVerifyArgs"
      */
+    @Parameter( alias = "prepareVerifyArgs", property = "arguments" )
     private String arguments;
 
     /**
      * The file name of the POM to execute any goals against.
-     *
-     * @parameter expression="${pomFileName}"
      */
+    @Parameter( property = "pomFileName" )
     private String pomFileName;
 
     /**
      * The message prefix to use for all SCM changes.
      *
-     * @parameter expression="${scmCommentPrefix}" default-value="[maven-release-plugin] "
      * @since 2.0-beta-5
      */
+    @Parameter( defaultValue = "[maven-release-plugin] ", property = "scmCommentPrefix" )
     private String scmCommentPrefix;
 
     /**
-     * @parameter default-value="${reactorProjects}"
-     * @required
-     * @readonly
      */
+    @Parameter( defaultValue = "${reactorProjects}", readonly = true, required = true )
     private List<MavenProject> reactorProjects;
 
     /**
      * Add a new or overwrite the default implementation per provider. 
      * The key is the scm prefix and the value is the role hint of the {@link org.apache.maven.scm.provider.ScmProvider}.
      *
-     * @parameter
      * @since 2.0-beta-6
      * @see ScmManager#setScmProviderImplementation(String, String)
      */
+    @Parameter
     private Map<String, String> providerImplementations;
 
     /**
      * The {@code M2_HOME} parameter to use for forked Maven invocations.
      *
-     * @parameter default-value="${maven.home}"
      * @since 2.0-beta-8
      */
+    @Parameter( defaultValue = "${maven.home}" )
     protected File mavenHome;
 
     /**
      * The {@code JAVA_HOME} parameter to use for forked Maven invocations.
      *
-     * @parameter default-value="${java.home}"
      * @since 2.0-beta-8
      */
+    @Parameter( defaultValue = "${java.home}" )
     private File javaHome;
 
     /**
      * The command-line local repository directory in use for this build (if specified).
      *
-     * @parameter default-value="${maven.repo.local}"
      * @since 2.0-beta-8
      */
+    @Parameter ( defaultValue = "${maven.repo.local}" )
     private File localRepoDirectory;
 
     /**
      * Role hint of the {@link org.apache.maven.shared.release.exec.MavenExecutor} implementation to use.
      *
-     * @parameter expression="${mavenExecutorId}" default-value="invoker"
      * @since 2.0-beta-8
      */
+    @Parameter( defaultValue = "invoker", property = "mavenExecutorId" )
     private String mavenExecutorId;
 
     /**
@@ -196,35 +184,31 @@ public abstract class AbstractReleaseMoj
      *
      * TODO: we should think about having the defaults for the various SCM providers provided via modello!
      *
-     * @parameter expression="${localCheckout}" default-value="false"
      * @since 2.0
      */
+    @Parameter( defaultValue = "false", property = "localCheckout" )
     private boolean localCheckout;
     
     /**
      * Implemented with git will or not push changes to the upstream repository.
      * <code>true</code> by default to preserve backward compatibility.
-     * @parameter expression="${pushChanges}" default-value="true"
      * @since 2.1
      */
+    @Parameter( defaultValue = "true", property = "pushChanges" )
     private boolean pushChanges = true;
 
     /**
      * The SCM manager.
-     *
-     * @component
      */
+    @Component
     private ScmManager scmManager;
 
     /**
-     * @parameter default-value="${session}"
-     * @readonly
-     * @required
      * @since 2.0
      */
+    @Component
     protected MavenSession session;
 
-
     /**
      * Gets the enviroment settings configured for this release.
      *

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -23,6 +23,8 @@ import java.util.Arrays;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -34,20 +36,19 @@ import org.apache.maven.shared.release.c
  *
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
- * @aggregator
- * @goal branch
  * @since 2.0-beta-6
  */
+@Mojo( name = "branch", aggregator = true )
 public class BranchReleaseMojo
     extends AbstractReleaseMojo
 {
     /**
      * The branch name to use.
      *
-     * @parameter expression="${branchName}"
      * @required
      * @since 2.0-beta-6
      */
+    @Parameter( property = "branchName", required = true )
     private String branchName;
 
     /**
@@ -55,25 +56,25 @@ public class BranchReleaseMojo
      * For example, <code>http://svn.apache.org/repos/asf/maven/plugins/branches</code>. The URL is an SVN URL and does not
      * include the SCM provider and protocol.
      *
-     * @parameter expression="${branchBase}"
      * @since 2.0
      */
+    @Parameter( property = "branchBase" )
     private String branchBase;
 
     /**
      * Whether to update versions in the branch.
      *
-     * @parameter expression="${updateBranchVersions}" default-value="false"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "false", property = "updateBranchVersions" )
     private boolean updateBranchVersions;
 
     /**
      * Whether to update versions in the working copy.
      *
-     * @parameter expression="${updateWorkingCopyVersions}" default-value="true"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "true", property = "updateWorkingCopyVersions" )
     private boolean updateWorkingCopyVersions;
 
     /**
@@ -86,42 +87,42 @@ public class BranchReleaseMojo
      * to avoid poms with released versions in all revisions of your
      * trunk or development branch.
      *
-     * @parameter expression="${suppressCommitBeforeBranch}" default-value="false"
      * @since 2.1
      */
+    @Parameter( defaultValue = "false", property = "suppressCommitBeforeBranch" )
     private boolean suppressCommitBeforeBranch;
 
     /**
      * Whether to update versions to SNAPSHOT in the branch.
      *
-     * @parameter expression="${updateVersionsToSnapshot}" default-value="true"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "true", property = "updateVersionsToSnapshot" )
     private boolean updateVersionsToSnapshot;
 
     /**
      * Whether to use "edit" mode on the SCM, to lock the file for editing during SCM operations.
      *
-     * @parameter expression="${useEditMode}" default-value="false"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "false", property = "useEditMode" )
     private boolean useEditMode;
 
     /**
      * Whether to update dependencies version to the next development version.
      *
-     * @parameter expression="${updateDependencies}" default-value="true"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "true", property = "updateDependencies" )
     private boolean updateDependencies;
 
     /**
      * Whether to automatically assign submodules the parent version.  If set to false,
      * the user will be prompted for the version of each submodules.
      *
-     * @parameter expression="${autoVersionSubmodules}" default-value="false"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "false", property = "autoVersionSubmodules" )
     private boolean autoVersionSubmodules;
 
     /**
@@ -130,27 +131,26 @@ public class BranchReleaseMojo
      * poms and scm operations (only listed on the console) are working as expected.
      * Modified POMs are written alongside the originals without modifying them.
      *
-     * @parameter expression="${dryRun}" default-value="false"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "false", property = "dryRun" )
     private boolean dryRun;
 
     /**
      * Whether to add a schema to the POM if it was previously missing on release.
      *
-     * @parameter expression="${addSchema}" default-value="true"
      * @since 2.0-beta-6
      */
+    @Parameter( defaultValue = "true", property = "addSchema" )
     private boolean addSchema;
 
     /**
      * currently only implemented with svn scm. Enable a workaround to prevent issue
      * due to svn client > 1.5.0 (http://jira.codehaus.org/browse/SCM-406)
      *
-     *
-     * @parameter expression="${remoteTagging}" default-value="true"
      * @since 2.0
      */
+    @Parameter( defaultValue = "true", property = "remoteTagging" )
     private boolean remoteTagging;
 
      /**
@@ -159,33 +159,33 @@ public class BranchReleaseMojo
      *
      * Is ignored, when checkModificationExcludes is set.
      *
-     * @parameter
      * @since 2.1
      */
+    @Parameter
     private String[] checkModificationExcludes;
 
     /**
      * Command-line version of checkModificationExcludes.
      *
-     * @parameter expression="${checkModificationExcludeList}"
      * @since 2.1
      */
+    @Parameter( property = "checkModificationExcludeList" )
     private String checkModificationExcludeList;
 
     /**
      * Default version to use when preparing a release or a branch.
      *
-     * @parameter expression="${releaseVersion}"
      * @since 2.0
      */
+    @Parameter( property = "releaseVersion" )
     private String releaseVersion;
 
     /**
      * Default version to use for new local working copy.
      *
-     * @parameter expression="${developmentVersion}"
      * @since 2.0
      */
+    @Parameter( property = "developmentVersion" )
     private String developmentVersion;
 
     /**

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/CleanReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -21,6 +21,7 @@ package org.apache.maven.plugins.release
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 
 /**
@@ -31,9 +32,8 @@ import org.apache.maven.shared.release.c
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
- * @aggregator
- * @goal clean
  */
+@Mojo( name = "clean", aggregator = true )
 public class CleanReleaseMojo
     extends AbstractReleaseMojo
 {

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -23,6 +23,8 @@ import java.io.File;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleasePerformRequest;
@@ -37,55 +39,55 @@ import org.codehaus.plexus.util.StringUt
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
- * @aggregator
- * @requiresProject false
- * @goal perform
  */
+@Mojo( name = "perform", aggregator = true, requiresProject = false )
 public class PerformReleaseMojo
     extends AbstractReleaseMojo
 {
     /**
      * A space separated list of goals to execute on deployment. Default value is either <code>deploy</code> or
      * <code>deploy site-deploy</code>, if the project has a &lt;distributionManagement&gt;/&lt;site&gt; element.
-     *
-     * @parameter expression="${goals}"
      */
+    @Parameter( property = "goals" )
     private String goals;
 
     /**
      * Comma separated profiles to enable on deployment, in addition to active profiles for project execution.
      *
-     * @parameter expression="${releaseProfiles}"
      * @since 2.0-beta-8
      */
+    @Parameter( property = "releaseProfiles" )
     private String releaseProfiles;
 
     /**
      * The checkout directory.
-     *
-     * @parameter expression="${workingDirectory}" default-value="${project.build.directory}/checkout"
-     * @required
      */
+    @Parameter( defaultValue = "${project.build.directory}/checkout", property = "workingDirectory", required = true )
     private File workingDirectory;
 
     /**
      * The SCM URL to checkout from. If omitted, the one from the <code>release.properties</code> file is used, followed
      * by the URL from the current POM.
-     *
-     * @parameter expression="${connectionUrl}"
      */
+    @Parameter( property = "connectionUrl" )
     private String connectionUrl;
 
     /**
      * Whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate.
      * If set to true, the release plugin sets the property "performRelease" to true, which activates the profile
      * "release-profile", which is inherited from the super pom.
-     *
-     * @parameter expression="${useReleaseProfile}" default-value="true"
      */
+    @Parameter( defaultValue = "true", property = "useReleaseProfile" )
     private boolean useReleaseProfile;
 
     /**
+     * Dry run: don't checkout anything from the scm repository, or modify the checkout.
+     * The goals (by default at least {@code deploy}) will be executed against the <strong>current</strong> project.
+     */
+    @Parameter( defaultValue = "false", property = "dryRun" )
+    private boolean dryRun;
+
+    /**
      * {@inheritDoc}
      */
     protected String getAdditionalProfiles()
@@ -94,14 +96,6 @@ public class PerformReleaseMojo
     }
     
     /**
-     * Dry run: don't checkout anything from the scm repository, or modify the checkout.
-     * The goals (by default at least {@code deploy}) will be executed against the <strong>current</strong> project.
-     *
-     * @parameter expression="${dryRun}" default-value="false"
-     */
-    private boolean dryRun;
-
-    /**
      * {@inheritDoc}
      */
     public void execute()

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -19,70 +19,69 @@ package org.apache.maven.plugins.release
  * under the License.
  */
 
+import java.util.Arrays;
+
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 
-import java.util.Arrays;
-
 /**
- * Prepare for a release in SCM. Steps through several phases to ensure the POM is ready to be
- * released and then prepares SCM to eventually contain a tagged version of the release and a record
- * in the local copy of the parameters used. This can be followed by a call to <tt>release:perform</tt>.
- * For more info see <a href="http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html">http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html</a>.
- *
+ * Prepare for a release in SCM. Steps through several phases to ensure the POM is ready to be released and then
+ * prepares SCM to eventually contain a tagged version of the release and a record in the local copy of the parameters
+ * used. This can be followed by a call to <tt>release:perform</tt>. For more info see <a
+ * href="http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html"
+ * >http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html</a>.
+ * 
  * @author <a href="mailto:jdcasey@apache.org">John Casey</a>
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
- * @aggregator
- * @goal prepare
  * @todo [!] check how this works with version ranges
  */
+@Mojo( name = "prepare", aggregator = true )
 public class PrepareReleaseMojo
     extends AbstractReleaseMojo
 {
 
     /**
      * Resume a previous release attempt from the point where it was stopped.
-     *
-     * @parameter expression="${resume}" default-value="true"
      */
+    @Parameter( defaultValue = "true", property = "resume" )
     private boolean resume;
 
     /**
      * @deprecated Please use release:prepare-with-pom instead.
-     *
-     * @parameter default-value="false" expression="${generateReleasePoms}"
      */
+    @Parameter( defaultValue = "false", property = "generateReleasePoms" )
     private boolean generateReleasePoms;
 
     /**
      * Whether to use "edit" mode on the SCM, to lock the file for editing during SCM operations.
-     *
-     * @parameter expression="${useEditMode}" default-value="false"
      */
+    @Parameter( defaultValue = "false", property = "useEditMode" )
     private boolean useEditMode;
 
     /**
      * Whether to update dependencies version to the next development version.
-     *
-     * @parameter expression="${updateDependencies}" default-value="true"
+     * 
      * @since 2.0-beta-5
      */
+    @Parameter( defaultValue = "true", property = "updateDependencies" )
     private boolean updateDependencies;
 
     /**
      * Whether to automatically assign submodules the parent version. If set to false, the user will be prompted for the
      * version of each submodules.
-     *
-     * @parameter expression="${autoVersionSubmodules}" default-value="false"
+     * 
      * @since 2.0-beta-5
      */
+    @Parameter( defaultValue = "false", property = "autoVersionSubmodules" )
     private boolean autoVersionSubmodules;
 
     /**
@@ -90,146 +89,132 @@ public class PrepareReleaseMojo
      * <code>mvn -DdryRun=true release:prepare</code> is useful in order to check that modifications to poms and scm
      * operations (only listed on the console) are working as expected. Modified POMs are written alongside the
      * originals without modifying them.
-     *
-     * @parameter expression="${dryRun}" default-value="false"
      */
+    @Parameter( defaultValue = "false", property = "dryRun" )
     private boolean dryRun;
 
     /**
      * Whether to add a schema to the POM if it was previously missing on release.
-     *
-     * @parameter expression="${addSchema}" default-value="true"
      */
+    @Parameter( defaultValue = "true", property = "addSchema" )
     private boolean addSchema;
 
     /**
      * Goals to run as part of the preparation step, after transformation but before committing. Space delimited.
-     *
-     * @parameter expression="${preparationGoals}" default-value="clean verify"
      */
+    @Parameter( defaultValue = "clean verify", property = "preparationGoals" )
     private String preparationGoals;
 
     /**
-     * Goals to run on completion of the preparation step, after transformation back to the next development version
-     * but before committing. Space delimited.
-     *
-     * @parameter expression="${completionGoals}" default-value=""
+     * Goals to run on completion of the preparation step, after transformation back to the next development version but
+     * before committing. Space delimited.
+     * 
      * @since 2.2
      */
+    @Parameter( defaultValue = "", property = "completionGoals" )
     private String completionGoals;
 
     /**
      * Commits to do are atomic or by project.
-     *
-     * @parameter expression="${commitByProject}" default-value="false"
+     * 
      * @since 2.0-beta-5
      */
+    @Parameter( defaultValue = "false", property = "commitByProject" )
     private boolean commitByProject;
 
     /**
      * Whether to allow timestamped SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT.
-     *
-     * @parameter expression="${ignoreSnapshots}" default-value="false"
+     * 
      * @since 2.0-beta-7
      */
+    @Parameter( defaultValue = "false", property = "ignoreSnapshots" )
     private boolean allowTimestampedSnapshots;
 
     /**
      * Whether to allow usage of a SNAPSHOT version of the Release Plugin. This in an internal property used to support
      * testing of the plugin itself in batch mode.
-     *
-     * @parameter expression="${allowReleasePluginSnapshot}" default-value="false"
-     * @readonly
+     * 
      * @since 2.0-beta-9
      */
+    @Parameter( defaultValue = "false", property = "allowReleasePluginSnapshot", readonly = true )
     private boolean allowReleasePluginSnapshot;
 
-     /**
-     * A list of additional exclude filters that will be skipped when checking for
-     * modifications on the working copy.
-     *
-     * Is ignored, when checkModificationExcludes is set.
+    /**
+     * A list of additional exclude filters that will be skipped when checking for modifications on the working copy. Is
+     * ignored, when checkModificationExcludes is set.
      * 
-     * @parameter
      * @since 2.1
      */
+    @Parameter
     private String[] checkModificationExcludes;
 
     /**
      * Command-line version of checkModificationExcludes.
-     *
-     * @parameter expression="${checkModificationExcludeList}"
+     * 
      * @since 2.1
      */
+    @Parameter( property = "checkModificationExcludeList" )
     private String checkModificationExcludeList;
 
     /**
      * Default version to use when preparing a release or a branch.
-     *
-     * @parameter expression="${releaseVersion}"
+     * 
      * @since 2.0-beta-8
      */
+    @Parameter( property = "releaseVersion" )
     private String releaseVersion;
 
     /**
      * Default version to use for new local working copy.
-     *
-     * @parameter expression="${developmentVersion}"
+     * 
      * @since 2.0-beta-8
      */
+    @Parameter( property = "developmentVersion" )
     private String developmentVersion;
 
     /**
      * Currently only implemented with svn scm.
-     *
      * <ul>
-     *   <li>Enables a workaround to prevent issue
-     * due to svn client > 1.5.0 (fixed in 1.6.5)
+     * <li>Enables a workaround to prevent issue due to svn client > 1.5.0 (fixed in 1.6.5)
      * (http://jira.codehaus.org/browse/SCM-406)</li>
-     *   <li>You may not want to use this in conjunction
-     * with <code>suppressCommitBeforeTag</code>, such that no poms with
-     * released versions are committed to the working
-     * copy ever.</li>
+     * <li>You may not want to use this in conjunction with <code>suppressCommitBeforeTag</code>, such that no poms with
+     * released versions are committed to the working copy ever.</li>
      * </ul>
-     *
-     * @parameter expression="${remoteTagging}" default-value="true"
+     * 
      * @since 2.0-beta-9
      */
+    @Parameter( defaultValue = "true", property = "remoteTagging" ) 
     private boolean remoteTagging;
 
     /**
      * Whether to bump the working copy versions to <code>developmentVersion</code>.
-     *
-     * @parameter expression="${updateWorkingCopyVersions}" default-value="true"
+     * 
      * @since 2.1
      */
+    @Parameter( defaultValue = "true", property = "updateWorkingCopyVersions" )
     private boolean updateWorkingCopyVersions;
 
     /**
-     * Whether to suppress a commit of changes to the working copy
-     * before the tag is created.
+     * Whether to suppress a commit of changes to the working copy before the tag is created. <br/>
      * <br/>
-     * <br/>This requires <code>remoteTagging</code> to be set to false.
+     * This requires <code>remoteTagging</code> to be set to false. <br/>
      * <br/>
-     * <br/><code>suppressCommitBeforeTag</code> is useful when you want
-     * to avoid poms with released versions in all revisions of your
-     * trunk or development branch.
-     *
-     * @parameter expression="${suppressCommitBeforeTag}" default-value="false"
+     * <code>suppressCommitBeforeTag</code> is useful when you want to avoid poms with released versions in all
+     * revisions of your trunk or development branch.
+     * 
      * @since 2.1
      */
+    @Parameter( defaultValue = "false", property = "suppressCommitBeforeTag" ) 
     private boolean suppressCommitBeforeTag;
 
     /**
-     * Wait the specified number of second before creating the tag.
-     * <br/><code>waitBeforeTagging</code> is useful when your source repository
-     * is synced between several instances and access to it is determined by
-     * geographical location, like the SVN repository at the Apache Software
-     * Foundation.
-     *
-     * @parameter expression="${waitBeforeTagging}" default-value="0"
+     * Wait the specified number of second before creating the tag. <br/>
+     * <code>waitBeforeTagging</code> is useful when your source repository is synced between several instances and
+     * access to it is determined by geographical location, like the SVN repository at the Apache Software Foundation.
+     * 
      * @since 2.2
      */
+    @Parameter( defaultValue = "0", property = "waitBeforeTagging" )
     private int waitBeforeTagging;
 
     /**
@@ -241,7 +226,7 @@ public class PrepareReleaseMojo
         if ( generateReleasePoms )
         {
             throw new MojoFailureException(
-                "Generating release POMs is no longer supported in release:prepare. Please run release:prepare-with-pom instead." );
+                                            "Generating release POMs is no longer supported in release:prepare. Please run release:prepare-with-pom instead." );
         }
 
         prepareRelease( generateReleasePoms );
@@ -250,7 +235,8 @@ public class PrepareReleaseMojo
     protected void prepareRelease( boolean generateReleasePoms )
         throws MojoExecutionException, MojoFailureException
     {
-        // this is here so the subclass can call it without getting the extra generateReleasePoms check in execute() above
+        // this is here so the subclass can call it without getting the extra generateReleasePoms check in execute()
+        // above
         super.execute();
 
         ReleaseDescriptor config = createReleaseDescriptor();
@@ -282,8 +268,8 @@ public class PrepareReleaseMojo
         }
 
         // Create a config containing values from the session properties (ie command line properties with cli).
-        ReleaseDescriptor sysPropertiesConfig
-                = ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() );
+        ReleaseDescriptor sysPropertiesConfig =
+            ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() );
         mergeCommandLineConfig( config, sysPropertiesConfig );
 
         try

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareWithPomReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareWithPomReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareWithPomReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareWithPomReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -21,24 +21,24 @@ package org.apache.maven.plugins.release
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 
 /**
  * Prepare for a release in SCM, fully resolving dependencies for the purpose of producing a "release POM".
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @aggregator
- * @goal prepare-with-pom
- * @requiresDependencyResolution test
  * @since 2.0
  */
+@Mojo( name="prepare-with-pom", aggregator = true, requiresDependencyResolution = ResolutionScope.TEST )
 public class PrepareWithPomReleaseMojo
     extends PrepareReleaseMojo
 {
     /**
      * Whether to generate <code>release-pom.xml</code> files that contain resolved information about the project.
-     *
-     * @parameter default-value="true" expression="${generateReleasePoms}"
      */
+    @Parameter( defaultValue = "true", property = "generateReleasePoms" )
     private boolean generateReleasePoms;
 
     public void execute()

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -21,6 +21,7 @@ package org.apache.maven.plugins.release
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -30,13 +31,11 @@ import org.apache.maven.shared.release.c
  * is still available in the local working copy.
  * For more info see <a href="http://maven.apache.org/plugins/maven-release-plugin/examples/rollback-release.html">http://maven.apache.org/plugins/maven-release-plugin/examples/rollback-release.html</a>.
  *
- * @aggregator
- * @goal rollback
  * @since 2.0-beta-5
- *
  * @author Edwin Punzalan
  * @version $Id$
  */
+@Mojo( name="rollback", aggregator = true )
 public class RollbackReleaseMojo
     extends AbstractReleaseMojo
 {

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/StageReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/StageReleaseMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/StageReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/StageReleaseMojo.java Thu Jul  5 16:48:39 2012
@@ -23,6 +23,8 @@ import java.io.File;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -33,11 +35,9 @@ import org.codehaus.plexus.util.StringUt
  *
  * @author <a href="mailto:nicolas@apache.org">Nicolas De Loof</a>
  * @version $Id$
- * @aggregator
- * @requiresProject false
- * @goal stage
  * @since 2.0-beta-8
  */
+@Mojo( name = "stage", aggregator = true, requiresProject = false )
 public class StageReleaseMojo
     extends AbstractReleaseMojo
 {
@@ -45,52 +45,50 @@ public class StageReleaseMojo
      * A comma or space separated list of goals to execute on deployment. Default value is either <code>deploy</code> or
      * <code>deploy site-deploy</code>, if the project has a &lt;distributionManagement&gt;/&lt;site&gt; element.
      *
-     * @parameter expression="${goals}"
      * @since 2.0-beta-8
      */
+    @Parameter( property="goals" )
     private String goals;
 
     /**
      * Comma separated profiles to enable on deployment, in addition to active profiles for project execution.
      *
-     * @parameter expression="${releaseProfiles}"
      * @since 2.0-beta-8
      */
+    @Parameter( property="releaseProfiles" )
     private String releaseProfiles;
 
     /**
      * The checkout directory.
      *
-     * @parameter expression="${workingDirectory}" default-value="${project.build.directory}/checkout"
-     * @required
      * @since 2.0-beta-8
      */
+    @Parameter( defaultValue="${project.build.directory}/checkout", property="workingDirectory", required = true )
     private File workingDirectory;
 
     /**
      * The SCM URL to checkout from. If omitted, the one from the <code>release.properties</code> file is used, followed
      * by the URL from the current POM.
      *
-     * @parameter expression="${connectionUrl}"
      * @since 2.0-beta-8
      */
+    @Parameter( property="connectionUrl" )
     private String connectionUrl;
 
     /**
      * Whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate.
-     *
-     * @parameter expression="${useReleaseProfile}" default-value="true"
+     * 
      * @since 2.0-beta-8
      */
+    @Parameter( defaultValue="true", property="useReleaseProfile" )
     private boolean useReleaseProfile;
 
     /**
      * URL of the staging repository to use.
      *
-     * @parameter expression="${stagingRepository}"
-     * @required
      * @since 2.0-beta-8
      */
+    @Parameter( property="stagingRepository", required = true )
     private String stagingRepository;
 
     /**

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java?rev=1357733&r1=1357732&r2=1357733&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java Thu Jul  5 16:48:39 2012
@@ -26,6 +26,8 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.model.Scm;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -38,10 +40,9 @@ import org.apache.maven.shared.release.c
  *
  * @author Paul Gier
  * @version $Id$
- * @aggregator
- * @goal update-versions
  * @since 2.0
  */
+@Mojo( name="update-versions", aggregator = true )
 public class UpdateVersionsMojo
     extends AbstractReleaseMojo
 {
@@ -50,25 +51,25 @@ public class UpdateVersionsMojo
      * Whether to automatically assign submodules the parent version. If set to false, the user will be prompted for the
      * version of each submodules.
      *
-     * @parameter expression="${autoVersionSubmodules}" default-value="false"
      * @since 2.0
      */
+    @Parameter( defaultValue="false", property="autoVersionSubmodules" ) 
     private boolean autoVersionSubmodules;
 
     /**
      * Whether to add a schema to the POM if it was previously missing on release.
-     *
-     * @parameter expression="${addSchema}" default-value="true"
+     * 
      * @since 2.0
      */
+    @Parameter(  defaultValue="true", property="addSchema" )
     private boolean addSchema;
 
     /**
      * Default version to use for new local working copy.
      *
-     * @parameter expression="${developmentVersion}"
      * @since 2.0
      */
+    @Parameter( property="developmentVersion" )
     private String developmentVersion;
 
     /**