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
29
30
31 public class MavenBuildTimestamp
32 {
33
34 public static final String DEFAULT_BUILD_TIMESTAMP_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
35
36 public static final String BUILD_TIMESTAMP_FORMAT_PROPERTY = "maven.build.timestamp.format";
37
38 public static final TimeZone DEFAULT_BUILD_TIME_ZONE = TimeZone.getTimeZone( "Etc/UTC" );
39
40 private String formattedTimestamp;
41
42 public MavenBuildTimestamp()
43 {
44 this( new Date() );
45 }
46
47 public MavenBuildTimestamp( Date time )
48 {
49 this( time, DEFAULT_BUILD_TIMESTAMP_FORMAT );
50 }
51
52 public MavenBuildTimestamp( Date time, Properties properties )
53 {
54 this( time, properties != null ? properties.getProperty( BUILD_TIMESTAMP_FORMAT_PROPERTY ) : null );
55 }
56
57 public MavenBuildTimestamp( Date time, String timestampFormat )
58 {
59 if ( timestampFormat == null )
60 {
61 timestampFormat = DEFAULT_BUILD_TIMESTAMP_FORMAT;
62 }
63 if ( time == null )
64 {
65 time = new Date();
66 }
67 SimpleDateFormat dateFormat = new SimpleDateFormat( timestampFormat );
68 dateFormat.setCalendar( new GregorianCalendar() );
69 dateFormat.setTimeZone( DEFAULT_BUILD_TIME_ZONE );
70 formattedTimestamp = dateFormat.format( time );
71 }
72
73 public String formattedTimestamp()
74 {
75 return formattedTimestamp;
76 }
77 }