This is an automated email from the ASF dual-hosted git repository. chrisgwarp pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-release.git
The following commit(s) were added to refs/heads/master by this push: new cc724a1 MRELEASE-909: (Re)Added workItem support. cc724a1 is described below commit cc724a14178a5172f6dbbe157de14e4a3daaee4c Author: Chris Graham <chrisgw...@apache.org> AuthorDate: Sun Dec 30 11:55:51 2018 +1100 MRELEASE-909: (Re)Added workItem support. --- .../maven/shared/release/config/ReleaseDescriptor.java | 12 ++++++++++++ .../config/PropertiesReleaseDescriptorStore.java | 5 +++++ .../shared/release/config/ReleaseDescriptorBuilder.java | 6 ++++++ .../maven/shared/release/config/ReleaseUtils.java | 4 ++++ .../shared/release/phase/AbstractScmCommitPhase.java | 2 ++ .../maven/shared/release/phase/ScmBranchPhase.java | 2 ++ .../apache/maven/shared/release/phase/ScmTagPhase.java | 2 ++ .../src/main/mdo/release-descriptor.mdo | 17 +++++++++++++---- .../maven/plugins/release/AbstractScmReleaseMojo.java | 12 +++++++++++- 9 files changed, 57 insertions(+), 5 deletions(-) diff --git a/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java index 12d02e6..ac51404 100644 --- a/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java +++ b/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java @@ -136,6 +136,18 @@ public interface ReleaseDescriptor /** * Get default version to use for new working copy. * + * Some SCMs may require a Work Item or a Task to allow the + * changes to be pushed or delivered. + * This field allows you to specify that Work Item + * or Task. It is optional, and only relevant if pushChanges is true. + * + * @return String + */ + String getWorkItem(); + + /** + * Get default version to use for new working copy. + * * @return String */ String getDefaultDevelopmentVersion(); diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java index edd0e90..9841e70 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java @@ -235,6 +235,11 @@ public class PropertiesReleaseDescriptorStore properties.setProperty( "pushChanges", Boolean.toString( config.isPushChanges() ) ); + if ( config.getWorkItem() != null ) + { + properties.setProperty( "workItem", config.getWorkItem() ); + } + // others boolean properties are not written to the properties file because the value from the caller is always // used diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java index 2bef814..68a6a8e 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java @@ -206,6 +206,12 @@ public class ReleaseDescriptorBuilder return this; } + public ReleaseDescriptorBuilder setWorkItem( String workItem ) + { + releaseDescriptor.setWorkItem( workItem ); + return this; + } + public ReleaseDescriptorBuilder setReleaseStrategyId( String releaseStrategyId ) { releaseDescriptor.setReleaseStrategyId( releaseStrategyId ); diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java index a355624..3b4f14b 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java @@ -150,6 +150,10 @@ public class ReleaseUtils String pushChanges = properties.getProperty( "pushChanges" ); builder.setPushChanges( Boolean.valueOf( pushChanges ) ); } + if ( properties.containsKey( "workItem" ) ) + { + builder.setWorkItem( properties.getProperty( "workItem" ) ); + } loadResolvedDependencies( properties, builder ); diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java index b36d692..3269da2 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java @@ -118,6 +118,8 @@ public abstract class AbstractScmCommitPhase repository.getProviderRepository().setPushChanges( releaseDescriptor.isPushChanges() ); + repository.getProviderRepository().setWorkItem( releaseDescriptor.getWorkItem() ); + provider = scmRepositoryConfigurator.getRepositoryProvider( repository ); } catch ( ScmRepositoryException e ) diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java index 218a529..d1d85b6 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmBranchPhase.java @@ -84,6 +84,8 @@ public class ScmBranchPhase repository.getProviderRepository().setPushChanges( releaseDescriptor.isPushChanges() ); + repository.getProviderRepository().setWorkItem( releaseDescriptor.getWorkItem() ); + provider = scmRepositoryConfigurator.getRepositoryProvider( repository ); } diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java index 8a62f55..5f52d39 100644 --- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java +++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java @@ -97,6 +97,8 @@ public class ScmTagPhase repository.getProviderRepository().setPushChanges( releaseDescriptor.isPushChanges() ); + repository.getProviderRepository().setWorkItem( releaseDescriptor.getWorkItem() ); + provider = scmRepositoryConfigurator.getRepositoryProvider( repository ); } catch ( ScmRepositoryException e ) diff --git a/maven-release-manager/src/main/mdo/release-descriptor.mdo b/maven-release-manager/src/main/mdo/release-descriptor.mdo index 579842c..fe41833 100644 --- a/maven-release-manager/src/main/mdo/release-descriptor.mdo +++ b/maven-release-manager/src/main/mdo/release-descriptor.mdo @@ -516,6 +516,17 @@ </description> </field> + <field> + <name>workItem</name> + <version>3.0.0+</version> + <type>String</type> + <description> + Some SCMs may require a Work Item or a Task to allow the changes to be pushed or delivered. + This field allows you to specify that Work Item or Task. It is optional, and only relevant + if pushChanges is true. + </description> + </field> + <!-- Announcement Information Announcement related info, this can be a second part of the process. @@ -750,6 +761,7 @@ !java.util.Objects.equals( checkoutDirectory, that.getCheckoutDirectory() ) || !java.util.Objects.equals( performGoals, that.getPerformGoals() ) || !java.util.Objects.equals( defaultReleaseVersion, that.getDefaultReleaseVersion() ) || + !java.util.Objects.equals( workItem, that.getWorkItem() ) || !java.util.Objects.equals( scmReleasedPomRevision, that.getScmReleasedPomRevision() ) ) { @@ -861,10 +873,6 @@ { return false; } - if ( !java.util.Objects.equals( scmTagNameFormat, that.getScmTagNameFormat() ) ) - { - return false; - } if ( !java.util.Objects.deepEquals( projectVersions, that.getProjectVersions() ) ) { return false; @@ -989,6 +997,7 @@ result = 29 * result + java.util.Objects.hashCode( performGoals ); result = 29 * result + java.util.Objects.hashCode( defaultReleaseVersion ); result = 29 * result + java.util.Objects.hashCode( scmReleasedPomRevision ); + result = 29 * result + java.util.Objects.hashCode( workItem ); return result; } diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java index d75064e..6804603 100644 --- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java +++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java @@ -98,7 +98,16 @@ public abstract class AbstractScmReleaseMojo private boolean pushChanges = true; /** - * Add a new or overwrite the default implementation per provider. + * A workItem for SCMs like RTC, TFS etc, that may require additional + * information to perform a pushChange operation. + * + * @since 3.0.0 + */ + @Parameter( property = "workItem" ) + private String workItem; + + /** + * 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}. * @@ -142,6 +151,7 @@ public abstract class AbstractScmReleaseMojo descriptor.setScmCommentPrefix( scmCommentPrefix ); descriptor.setPushChanges( pushChanges ); + descriptor.setWorkItem( workItem ); if ( project.getScm() != null ) {