Author: evenisse
Date: Sat May 13 00:54:06 2006
New Revision: 406039

URL: http://svn.apache.org/viewcvs?rev=406039&view=rev
Log:
[SCM-198] Add Ability to Append Timestamp to Tag Name

Modified:
    
maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java

Modified: 
maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java?rev=406039&r1=406038&r2=406039&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
 (original)
+++ 
maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
 Sat May 13 00:54:06 2006
@@ -22,41 +22,83 @@
 import org.apache.maven.scm.repository.ScmRepository;
 
 import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 /**
  * @author <a href="[EMAIL PROTECTED]">Emmanuel Venisse</a>
+ * @author <a href="[EMAIL PROTECTED]">Sharmarke Aden</a>
+ * 
  * @version $Id$
  * @goal tag
  * @description Tag the project
  */
 public class TagMojo
-    extends AbstractScmMojo
-{
+    extends AbstractScmMojo {
     /**
-     * @parameter expression="${tag}
+     * @parameter expression="${tag}"
      */
     private String tag;
 
+    /**
+     * @parameter expression="${timestampFormat}" 
default-value="yyyyMMddHHmmss"
+     */
+    private String timestampFormat;
+
+    /**
+     * @parameter expression="${addTimestamp}" default-value="false"
+     */
+    private boolean addTimestamp;
+
+    /**
+     * @parameter expression="${timestampPrefix}" default-value="-"
+     */
+    private String timestampPrefix;
+
     public void execute()
         throws MojoExecutionException
     {
         try
         {
+            SimpleDateFormat dateFormat = null;
+            String tagTimestamp = "";
+            String finalTag = tag;
+
+            if ( addTimestamp )
+            {
+                try
+                {
+                    getLog().info( "Using timestamp pattern '" + 
timestampFormat + "'" );
+                    dateFormat = new SimpleDateFormat( timestampFormat );
+                    tagTimestamp = dateFormat.format( new Date() );
+                    getLog().info( "Using timestamp '" + tagTimestamp + "'" );
+                }
+                catch ( IllegalArgumentException e )
+                {
+                    String msg = "The timestamp format '" + timestampFormat + 
"' is invalid.";
+                    getLog().error( msg, e );
+                    throw new MojoExecutionException( msg, e );
+                }
+
+                finalTag += timestampPrefix + tagTimestamp;
+                getLog().info( "Final Tag Name'" + finalTag + "'" );
+
+            }
+
             ScmRepository repository = getScmRepository();
 
-            TagScmResult result =
-                getScmManager().getProviderByRepository( repository ).tag( 
repository, getFileSet(), tag );
+            TagScmResult result = 
+                getScmManager().getProviderByRepository( repository ).tag( 
repository, getFileSet(), finalTag );
 
             checkResult( result );
         }
         catch ( IOException e )
         {
-            throw new MojoExecutionException( "Cannot run checkout command : 
", e );
+            throw new MojoExecutionException( "Cannot run tag command : ", e );
         }
         catch ( ScmException e )
         {
-            throw new MojoExecutionException( "Cannot run checkout command : 
", e );
+            throw new MojoExecutionException( "Cannot run tag command : ", e );
         }
     }
-
 }


Reply via email to