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 ); } } - }