Author: dennisl
Date: Thu Nov 18 18:33:29 2010
New Revision: 1036568

URL: http://svn.apache.org/viewvc?rev=1036568&view=rev
Log:
[MRELEASE-613] Add a parameter that tells the plugin to wait for X seconds 
before tagging

Modified:
    maven/release/trunk/maven-release-manager/pom.xml
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
    
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
    
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java

Modified: maven/release/trunk/maven-release-manager/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/pom.xml?rev=1036568&r1=1036567&r2=1036568&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/pom.xml (original)
+++ maven/release/trunk/maven-release-manager/pom.xml Thu Nov 18 18:33:29 2010
@@ -239,7 +239,7 @@
           </execution>
         </executions>
         <configuration>
-          <version>2.1.0</version>
+          <version>2.2.0</version>
           <packageWithVersion>false</packageWithVersion>
           <models>
             <model>src/main/mdo/release-descriptor.mdo</model>

Modified: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java?rev=1036568&r1=1036567&r2=1036568&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
 (original)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
 Thu Nov 18 18:33:29 2010
@@ -95,7 +95,8 @@ public class ReleaseUtils
         mergeInto.setRemoteTagging( toBeMerged.isRemoteTagging() );
         mergeInto.setLocalCheckout( toBeMerged.isLocalCheckout() );
         mergeInto.setPushChanges( toBeMerged.isPushChanges() );
-        
+        mergeInto.setWaitBeforeTagging( toBeMerged.getWaitBeforeTagging() );
+
         // If the user specifies versions, these should be override the 
existing versions 
         if ( toBeMerged.getReleaseVersions() != null )
         {

Modified: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java?rev=1036568&r1=1036567&r2=1036568&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
 (original)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmTagPhase.java
 Thu Nov 18 18:33:29 2010
@@ -64,6 +64,18 @@ public class ScmTagPhase
 
         validateConfiguration( releaseDescriptor );
 
+        if ( releaseDescriptor.getWaitBeforeTagging() > 0 )
+        {
+            logInfo( relResult, "Waiting for " + 
releaseDescriptor.getWaitBeforeTagging() + " seconds before tagging the 
release." );
+            try
+            {
+                Thread.sleep( releaseDescriptor.getWaitBeforeTagging() * 1000 
);
+            }
+            catch( InterruptedException e ) {
+                // Ignore
+            }
+        }
+
         logInfo( relResult, "Tagging release with the label " + 
releaseDescriptor.getScmReleaseLabel() + "..." );
 
         ReleaseDescriptor basedirAlignedReleaseDescriptor =

Modified: 
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo?rev=1036568&r1=1036567&r2=1036568&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo 
(original)
+++ 
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo 
Thu Nov 18 18:33:29 2010
@@ -384,6 +384,14 @@
           </description>
         </field>
         <field>
+          <name>waitBeforeTagging</name>
+          <version>2.2.0+</version>
+          <type>int</type>
+          <description>
+            Wait the specified number of seconds before creating a tag.
+          </description>
+        </field>
+        <field>
           <name>allowTimestampedSnapshots</name>
           <version>1.0.0+</version>
           <type>boolean</type>

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=1036568&r1=1036567&r2=1036568&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 Nov 18 18:33:29 2010
@@ -215,6 +215,18 @@ public class PrepareReleaseMojo
     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"
+     * @since 2.2
+     */
+    private int waitBeforeTagging;
+
+    /**
      * @parameter expression="${session}"
      * @readonly
      * @required
@@ -258,6 +270,7 @@ public class PrepareReleaseMojo
         config.setRemoteTagging( remoteTagging );
         config.setUpdateWorkingCopyVersions( updateWorkingCopyVersions );
         config.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeTag );
+        config.setWaitBeforeTagging( waitBeforeTagging );
 
         if ( checkModificationExcludeList != null )
         {


Reply via email to