You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ch...@apache.org on 2018/12/30 00:58:33 UTC
[maven-release] branch master updated: MRELEASE-909: (Re)Added
workItem support.
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 <ch...@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 )
{