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