Author: rfscholte
Date: Sun Sep 23 15:50:37 2012
New Revision: 1389085

URL: http://svn.apache.org/viewvc?rev=1389085&view=rev
Log:
Fix MRELEASE-796: Add AbstractScmReleaseMojo so  scmParameters won't be visible 
if they're not used.

Added:
    
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
Modified:
    
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/PrepareReleaseMojo.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

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=1389085&r1=1389084&r2=1389085&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
 Sun Sep 23 15:50:37 2012
@@ -50,47 +50,6 @@ public abstract class AbstractReleaseMoj
     extends AbstractMojo
 {
     /**
-     * The SCM username to use.
-     */
-    @Parameter( property = "username" )
-    private String username;
-
-    /**
-     * The SCM password to use.
-     */
-    @Parameter( property = "password" )
-    private String password;
-
-    /**
-     * The SCM tag to use.
-     */
-    @Parameter( alias = "releaseLabel", property = "tag" )
-    private String tag;
-
-    /**
-     * Format to use when generating the tag name if none is specified. 
Property interpolation is performed on the
-     * tag, but in order to ensure that the interpolation occurs during 
release, you must use <code>@{...}</code>
-     * to reference the properties rather than <code>${...}</code>. The 
following properties are available:
-     * <ul>
-     *     <li><code>groupId</code> or <code>project.groupId</code> - The 
groupId of the root project.
-     *     <li><code>artifactId</code> or <code>project.artifactId</code> - 
The artifactId of the root project.
-     *     <li><code>version</code> or <code>project.version</code> - The 
release version of the root project.
-     * </ul>
-     *
-     * @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( property = "tagBase" )
-    private String tagBase;
-
-    /**
      */
     @Parameter( defaultValue = "${basedir}", readonly = true, required = true )
     private File basedir;
@@ -123,14 +82,6 @@ public abstract class AbstractReleaseMoj
     private String pomFileName;
 
     /**
-     * The message prefix to use for all SCM changes.
-     *
-     * @since 2.0-beta-5
-     */
-    @Parameter( defaultValue = "[maven-release-plugin] ", property = 
"scmCommentPrefix" )
-    private String scmCommentPrefix;
-
-    /**
      */
     @Parameter( defaultValue = "${reactorProjects}", readonly = true, required 
= true )
     private List<MavenProject> reactorProjects;
@@ -251,13 +202,6 @@ public abstract class AbstractReleaseMoj
 
         descriptor.setInteractive( settings.isInteractiveMode() );
 
-        descriptor.setScmPassword( password );
-        descriptor.setScmReleaseLabel( tag );
-        descriptor.setScmTagNameFormat( tagNameFormat );
-        descriptor.setScmTagBase( tagBase );
-        descriptor.setScmUsername( username );
-        descriptor.setScmCommentPrefix( scmCommentPrefix );
-
         descriptor.setWorkingDirectory( basedir.getAbsolutePath() );
 
         descriptor.setPomFileName( pomFileName );

Added: 
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java?rev=1389085&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
 (added)
+++ 
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
 Sun Sep 23 15:50:37 2012
@@ -0,0 +1,97 @@
+package org.apache.maven.plugins.release;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+
+/**
+ * Abstract Mojo containing SCM parameters 
+ *  
+ * @author Robert Scholte
+ * @since 2.4
+ */
+public abstract class AbstractScmReleaseMojo
+    extends AbstractReleaseMojo
+{
+    /**
+     * The SCM username to use.
+     */
+    @Parameter( property = "username" )
+    private String username;
+
+    /**
+     * The SCM password to use.
+     */
+    @Parameter( property = "password" )
+    private String password;
+
+    /**
+     * The SCM tag to use.
+     */
+    @Parameter( alias = "releaseLabel", property = "tag" )
+    private String tag;
+
+    /**
+     * Format to use when generating the tag name if none is specified. 
Property interpolation is performed on the
+     * tag, but in order to ensure that the interpolation occurs during 
release, you must use <code>@{...}</code>
+     * to reference the properties rather than <code>${...}</code>. The 
following properties are available:
+     * <ul>
+     *     <li><code>groupId</code> or <code>project.groupId</code> - The 
groupId of the root project.
+     *     <li><code>artifactId</code> or <code>project.artifactId</code> - 
The artifactId of the root project.
+     *     <li><code>version</code> or <code>project.version</code> - The 
release version of the root project.
+     * </ul>
+     *
+     * @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( property = "tagBase" )
+    private String tagBase;
+
+    /**
+     * The message prefix to use for all SCM changes.
+     *
+     * @since 2.0-beta-5
+     */
+    @Parameter( defaultValue = "[maven-release-plugin] ", property = 
"scmCommentPrefix" )
+    private String scmCommentPrefix;
+
+    @Override
+    protected ReleaseDescriptor createReleaseDescriptor()
+    {
+        ReleaseDescriptor descriptor = super.createReleaseDescriptor();
+
+        descriptor.setScmPassword( password );
+        descriptor.setScmReleaseLabel( tag );
+        descriptor.setScmTagNameFormat( tagNameFormat );
+        descriptor.setScmTagBase( tagBase );
+        descriptor.setScmUsername( username );
+        descriptor.setScmCommentPrefix( scmCommentPrefix );
+
+        return descriptor;
+    }
+}

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=1389085&r1=1389084&r2=1389085&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
 Sun Sep 23 15:50:37 2012
@@ -40,7 +40,7 @@ import org.apache.maven.shared.release.c
  */
 @Mojo( name = "branch", aggregator = true )
 public class BranchReleaseMojo
-    extends AbstractReleaseMojo
+    extends AbstractScmReleaseMojo
 {
     /**
      * The branch name to use.

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=1389085&r1=1389084&r2=1389085&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
 Sun Sep 23 15:50:37 2012
@@ -46,7 +46,7 @@ import org.apache.maven.shared.release.c
  */
 @Mojo( name = "prepare", aggregator = true )
 public class PrepareReleaseMojo
-    extends AbstractReleaseMojo
+    extends AbstractScmReleaseMojo
 {
 
     /**

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=1389085&r1=1389084&r2=1389085&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
 Sun Sep 23 15:50:37 2012
@@ -37,7 +37,7 @@ import org.apache.maven.shared.release.c
  */
 @Mojo( name="rollback", aggregator = true )
 public class RollbackReleaseMojo
-    extends AbstractReleaseMojo
+    extends AbstractScmReleaseMojo
 {
 
     /**

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=1389085&r1=1389084&r2=1389085&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
 Sun Sep 23 15:50:37 2012
@@ -39,7 +39,7 @@ import org.codehaus.plexus.util.StringUt
  */
 @Mojo( name = "stage", aggregator = true, requiresProject = false )
 public class StageReleaseMojo
-    extends AbstractReleaseMojo
+    extends AbstractScmReleaseMojo
 {
     /**
      * A comma or space separated list of goals to execute on deployment. 
Default value is either <code>deploy</code> or


Reply via email to