1 package org.apache.maven.model.interpolation;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.text.SimpleDateFormat;
23 import java.util.Date;
24 import java.util.GregorianCalendar;
25 import java.util.Properties;
26 import java.util.TimeZone;
27
28 public class MavenBuildTimestamp
29 {
30
31 public static final String DEFAULT_BUILD_TIMESTAMP_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
32
33 public static final String BUILD_TIMESTAMP_FORMAT_PROPERTY = "maven.build.timestamp.format";
34
35 public static final TimeZone DEFAULT_BUILD_TIME_ZONE = TimeZone.getTimeZone( "Etc/UTC" );
36
37 private String formattedTimestamp;
38
39 public MavenBuildTimestamp()
40 {
41 this( new Date() );
42 }
43
44 public MavenBuildTimestamp( Date time )
45 {
46 this( time, DEFAULT_BUILD_TIMESTAMP_FORMAT );
47 }
48
49 public MavenBuildTimestamp( Date time, Properties properties )
50 {
51 this( time, properties != null ? properties.getProperty( BUILD_TIMESTAMP_FORMAT_PROPERTY ) : null );
52 }
53
54 public MavenBuildTimestamp( Date time, String timestampFormat )
55 {
56 if ( timestampFormat == null )
57 {
58 timestampFormat = DEFAULT_BUILD_TIMESTAMP_FORMAT;
59 }
60 if ( time == null )
61 {
62 time = new Date();
63 }
64 SimpleDateFormat dateFormat = new SimpleDateFormat( timestampFormat );
65 dateFormat.setCalendar( new GregorianCalendar() );
66 dateFormat.setTimeZone( DEFAULT_BUILD_TIME_ZONE );
67 formattedTimestamp = dateFormat.format( time );
68 }
69
70 public String formattedTimestamp()
71 {
72 return formattedTimestamp;
73 }
74 }