From c67b2436bc52bd803ca76aeb3b9e5455c13df5cd Mon Sep 17 00:00:00 2001 From: Ashish Singhi Date: Wed, 10 Sep 2014 10:35:36 +0530 Subject: [PATCH] HBASE-11873 Hbase Version CLI enhancement --- .../java/org/apache/hadoop/hbase/VersionAnnotation.java | 6 ++++++ .../main/java/org/apache/hadoop/hbase/util/VersionInfo.java | 13 +++++++++++-- hbase-common/src/saveVersion.sh | 9 ++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java index db2a1d5..34f0336 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java @@ -57,4 +57,10 @@ public @interface VersionAnnotation { * @return the revision number as a string (eg. "451451") */ String revision(); + + /** + * Get a checksum of the source files from which HBase was compiled. + * @return a string that uniquely identifies the source + **/ + String srcChecksum(); } diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java index 8921935..70b0c62 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java @@ -93,11 +93,20 @@ public class VersionInfo { static String[] versionReport() { return new String[] { "HBase " + getVersion(), - "Subversion " + getUrl() + " -r " + getRevision(), - "Compiled by " + getUser() + " on " + getDate() + "Source code repository " + getUrl() + " -r " + getRevision(), + "Compiled by " + getUser() + " on " + getDate(), + "From source with checksum " + getSrcChecksum() }; } + /** + * Get the checksum of the source files from which Hadoop was compiled. + * @return a string that uniquely identifies the source + **/ + public static String getSrcChecksum() { + return version != null ? version.srcChecksum() : "Not Available"; + } + public static void writeTo(PrintWriter out) { for (String line : versionReport()) { out.println(line); diff --git a/hbase-common/src/saveVersion.sh b/hbase-common/src/saveVersion.sh index 5edb8ea..8baabba 100644 --- a/hbase-common/src/saveVersion.sh +++ b/hbase-common/src/saveVersion.sh @@ -41,6 +41,12 @@ else revision="Unknown" url="file://$cwd" fi +which md5sum > /dev/null +if [ "$?" = "0" ] ; then + srcChecksum=`find src/main/java -name '*.java' | LC_ALL=C sort | xargs md5sum | md5sum | cut -d ' ' -f 1` +else + srcChecksum="Not Available" +fi popd mkdir -p "$outputDirectory/org/apache/hadoop/hbase" @@ -49,7 +55,8 @@ cat >"$outputDirectory/org/apache/hadoop/hbase/package-info.java" <