1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.util;
20
21 import org.apache.commons.logging.LogFactory;
22 import java.io.PrintWriter;
23
24 import org.apache.hadoop.hbase.classification.InterfaceAudience;
25 import org.apache.hadoop.hbase.classification.InterfaceStability;
26 import org.apache.hadoop.hbase.VersionAnnotation;
27 import org.apache.commons.logging.Log;
28
29
30
31
32
33 @InterfaceAudience.Public
34 @InterfaceStability.Evolving
35 public class VersionInfo {
36 private static final Log LOG = LogFactory.getLog(VersionInfo.class.getName());
37 private static Package myPackage;
38 private static VersionAnnotation version;
39
40 static {
41 myPackage = VersionAnnotation.class.getPackage();
42 version = myPackage.getAnnotation(VersionAnnotation.class);
43 }
44
45
46
47
48
49 static Package getPackage() {
50 return myPackage;
51 }
52
53
54
55
56
57 public static String getVersion() {
58 return version != null ? version.version() : "Unknown";
59 }
60
61
62
63
64
65 public static String getRevision() {
66 return version != null ? version.revision() : "Unknown";
67 }
68
69
70
71
72
73 public static String getDate() {
74 return version != null ? version.date() : "Unknown";
75 }
76
77
78
79
80
81 public static String getUser() {
82 return version != null ? version.user() : "Unknown";
83 }
84
85
86
87
88
89 public static String getUrl() {
90 return version != null ? version.url() : "Unknown";
91 }
92
93 static String[] versionReport() {
94 return new String[] {
95 "HBase " + getVersion(),
96 "Subversion " + getUrl() + " -r " + getRevision(),
97 "Compiled by " + getUser() + " on " + getDate()
98 };
99 }
100
101 public static void writeTo(PrintWriter out) {
102 for (String line : versionReport()) {
103 out.println(line);
104 }
105 }
106
107 public static void logVersion() {
108 for (String line : versionReport()) {
109 LOG.info(line);
110 }
111 }
112
113 public static void main(String[] args) {
114 logVersion();
115 }
116 }