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