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