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