You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cu...@apache.org on 2006/10/03 23:30:39 UTC

svn commit: r452633 - in /lucene/hadoop/trunk: ./ bin/ src/ src/java/org/apache/hadoop/ src/java/org/apache/hadoop/util/ src/webapps/dfs/ src/webapps/job/ src/webapps/task/

Author: cutting
Date: Tue Oct  3 14:30:38 2006
New Revision: 452633

URL: http://svn.apache.org/viewvc?view=rev&rev=452633
Log:
HADOOP-567.  Record version and revision information in builds.  Contributed by Owen.

Added:
    lucene/hadoop/trunk/src/java/org/apache/hadoop/HadoopVersionAnnotation.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/util/VersionInfo.java
    lucene/hadoop/trunk/src/saveVersion.sh   (with props)
Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/bin/hadoop
    lucene/hadoop/trunk/build.xml
    lucene/hadoop/trunk/src/webapps/dfs/dfshealth.jsp
    lucene/hadoop/trunk/src/webapps/job/jobtracker.jsp
    lucene/hadoop/trunk/src/webapps/task/tasktracker.jsp

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=452633&r1=452632&r2=452633
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Tue Oct  3 14:30:38 2006
@@ -116,6 +116,14 @@
     Since these formats are always sorted, block compression can
     provide a big advantage.  (cutting)
 
+29. HADOOP-567. Record version and revision information in builds.  A
+    package manifest is added to the generated jar file containing
+    version information, and a VersionInfo utility is added that
+    includes further information, including the build date and user,
+    and the subversion revision and repository.  A 'bin/hadoop
+    version' comand is added to show this information, and it is also
+    added to various web interfaces.  (omalley via cutting)
+
 
 Release 0.6.2 - 2006-09-18
 

Modified: lucene/hadoop/trunk/bin/hadoop
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/bin/hadoop?view=diff&rev=452633&r1=452632&r2=452633
==============================================================================
--- lucene/hadoop/trunk/bin/hadoop (original)
+++ lucene/hadoop/trunk/bin/hadoop Tue Oct  3 14:30:38 2006
@@ -33,6 +33,7 @@
   echo "  jobtracker        run the MapReduce job Tracker node" 
   echo "  tasktracker       run a MapReduce task Tracker node" 
   echo "  job               manipulate MapReduce jobs" 
+  echo "  version           print the version"
   echo "  jar <jar>         run a jar file"
   echo "  distcp <srcurl> <desturl> copy file or directories recursively"
   echo " or"
@@ -131,6 +132,8 @@
   CLASS=org.apache.hadoop.mapred.TaskTracker
 elif [ "$COMMAND" = "job" ] ; then
   CLASS=org.apache.hadoop.mapred.JobClient
+elif [ "$COMMAND" = "version" ] ; then
+  CLASS=org.apache.hadoop.util.VersionInfo
 elif [ "$COMMAND" = "jar" ] ; then
   CLASS=org.apache.hadoop.util.RunJar
 elif [ "$COMMAND" = "distcp" ] ; then

Modified: lucene/hadoop/trunk/build.xml
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/build.xml?view=diff&rev=452633&r1=452632&r2=452633
==============================================================================
--- lucene/hadoop/trunk/build.xml (original)
+++ lucene/hadoop/trunk/build.xml Tue Oct  3 14:30:38 2006
@@ -120,6 +120,10 @@
       <fileset dir="${conf.dir}" includes="**/*.template"/>
       <mapper type="glob" from="*.template" to="*"/>
     </copy>
+
+    <exec executable="sh">
+       <arg line="src/saveVersion.sh ${version}"/>
+    </exec>
   </target>
 
   <!-- ====================================================== -->
@@ -218,6 +222,13 @@
     </tar>
     <jar jarfile="${build.dir}/${final.name}.jar"
          basedir="${build.classes}">
+      <manifest>
+        <section name="org/apache/hadoop">
+          <attribute name="Implementation-Title" value="Hadoop"/>
+          <attribute name="Implementation-Version" value="${version}"/>
+          <attribute name="Implementation-Vendor" value="Apache"/>
+        </section>
+      </manifest>
       <fileset file="${conf.dir}/hadoop-default.xml"/>
       <fileset file="${conf.dir}/mapred-default.xml"/>
       <fileset file="${conf.dir}/commons-logging.properties"/>

Added: lucene/hadoop/trunk/src/java/org/apache/hadoop/HadoopVersionAnnotation.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/HadoopVersionAnnotation.java?view=auto&rev=452633
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/HadoopVersionAnnotation.java (added)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/HadoopVersionAnnotation.java Tue Oct  3 14:30:38 2006
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop;
+
+import java.lang.annotation.*;
+
+/**
+ * A package attribute that captures the version of Hadoop that was compiled.
+ * @author Owen O'Malley
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.PACKAGE)
+public @interface HadoopVersionAnnotation {
+ 
+  /**
+   * Get the Hadoop version
+   * @return the version string "0.6.3-dev"
+   */
+  String version();
+  
+  /**
+   * Get the username that compiled Hadoop.
+   */
+  String user();
+  
+  /**
+   * Get the date when Hadoop was compiled.
+   * @return the date in unix 'date' format
+   */
+  String date();
+  
+  /**
+   * Get the url for the subversion repository.
+   */
+  String url();
+  
+  /**
+   * Get the subversion revision.
+   * @return the revision number as a string (eg. "451451")
+   */
+  String revision();
+}

Added: lucene/hadoop/trunk/src/java/org/apache/hadoop/util/VersionInfo.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/util/VersionInfo.java?view=auto&rev=452633
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/util/VersionInfo.java (added)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/util/VersionInfo.java Tue Oct  3 14:30:38 2006
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.util;
+
+import org.apache.hadoop.HadoopVersionAnnotation;
+
+/**
+ * This class finds the package info for Hadoop and the HadoopVersionAnnotation
+ * information.
+ * @author Owen O'Malley
+ */
+public class VersionInfo {
+  private static Package myPackage;
+  private static HadoopVersionAnnotation version;
+  
+  static {
+    myPackage = HadoopVersionAnnotation.class.getPackage();
+    version = myPackage.getAnnotation(HadoopVersionAnnotation.class);
+  }
+
+  /**
+   * Get the meta-data for the Hadoop package.
+   * @return
+   */
+  static Package getPackage() {
+    return myPackage;
+  }
+  
+  /**
+   * Get the Hadoop version.
+   * @return the Hadoop version string, eg. "0.6.3-dev"
+   */
+  public static String getVersion() {
+    return version != null ? version.version() : "Unknown";
+  }
+  
+  /**
+   * Get the subversion revision number for the root directory
+   * @return the revision number, eg. "451451"
+   */
+  public static String getRevision() {
+    return version != null ? version.revision() : "Unknown";
+  }
+  
+  /**
+   * The date that Hadoop was compiled.
+   * @return the compilation date in unix date format
+   */
+  public static String getDate() {
+    return version != null ? version.date() : "Unknown";
+  }
+  
+  /**
+   * The user that compiled Hadoop.
+   * @return the username of the user
+   */
+  public static String getUser() {
+    return version != null ? version.user() : "Unknown";
+  }
+  
+  /**
+   * Get the subversion URL for the root Hadoop directory.
+   */
+  public static String getUrl() {
+    return version != null ? version.url() : "Unknown";
+  }
+  
+  public static void main(String[] args) {
+    System.out.println("Hadoop " + getVersion());
+    System.out.println("Subversion " + getUrl() + " -r " + getRevision());
+    System.out.println("Compiled by " + getUser() + " on " + getDate());
+  }
+}

Added: lucene/hadoop/trunk/src/saveVersion.sh
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/saveVersion.sh?view=auto&rev=452633
==============================================================================
--- lucene/hadoop/trunk/src/saveVersion.sh (added)
+++ lucene/hadoop/trunk/src/saveVersion.sh Tue Oct  3 14:30:38 2006
@@ -0,0 +1,20 @@
+#!/bin/sh
+# This file is used to generate the BuildStamp.java class that
+# records the user, url, revision and timestamp.
+version=$1
+revision=`svn info | sed -n -e 's/Last Changed Rev: \(.*\)/\1/p'`
+url=`svn info | sed -n -e 's/URL: \(.*\)/\1/p'`
+user=`whoami`
+date=`date`
+mkdir -p build/src/org/apache/hadoop
+cat << EOF | \
+  sed -e "s/VERSION/$version/" -e "s/USER/$user/" -e "s/DATE/$date/" \
+      -e "s|URL|$url|" -e "s/REV/$revision/" \
+      > build/src/org/apache/hadoop/package-info.java
+/*
+ * Generated by src/saveVersion.sh
+ */
+@HadoopVersionAnnotation(version="VERSION", revision="REV", 
+                         user="USER", date="DATE", url="URL")
+package org.apache.hadoop;
+EOF

Propchange: lucene/hadoop/trunk/src/saveVersion.sh
------------------------------------------------------------------------------
    svn:executable = *

Modified: lucene/hadoop/trunk/src/webapps/dfs/dfshealth.jsp
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/webapps/dfs/dfshealth.jsp?view=diff&rev=452633&r1=452632&r2=452633
==============================================================================
--- lucene/hadoop/trunk/src/webapps/dfs/dfshealth.jsp (original)
+++ lucene/hadoop/trunk/src/webapps/dfs/dfshealth.jsp Tue Oct  3 14:30:38 2006
@@ -5,6 +5,7 @@
   import="java.io.*"
   import="java.util.*"
   import="org.apache.hadoop.dfs.*"
+  import="org.apache.hadoop.util.*"
   import="java.text.DateFormat"
 %>
 <%!
@@ -101,7 +102,12 @@
 <body>
 <h1>NameNode '<%=namenodeLabel%>'</h1>
 
-This NameNode has been up since <%= fsn.getStartTime()%>.<br><br>
+<b>Started:</b> <%= fsn.getStartTime()%><br>
+<b>Version:</b> <%= VersionInfo.getVersion()%>,
+                r<%= VersionInfo.getRevision()%><br>
+<b>Compiled:</b> <%= VersionInfo.getDate()%> by 
+                 <%= VersionInfo.getUser()%><br>
+
 <b><a href="/nn_browsedfscontent.jsp">Browse the filesystem</a></b>
 <hr>
 <h2>Cluster Summary</h2>

Modified: lucene/hadoop/trunk/src/webapps/job/jobtracker.jsp
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/webapps/job/jobtracker.jsp?view=diff&rev=452633&r1=452632&r2=452633
==============================================================================
--- lucene/hadoop/trunk/src/webapps/job/jobtracker.jsp (original)
+++ lucene/hadoop/trunk/src/webapps/job/jobtracker.jsp Tue Oct  3 14:30:38 2006
@@ -78,8 +78,12 @@
 <body>
 <h1><%= trackerLabel %> Hadoop Map/Reduce Administration</h1>
 
-This JobTracker has been up since <%= new Date(tracker.getStartTime())%>.<br>
-
+<b>Started:</b> <%= new Date(tracker.getStartTime())%><br>
+<b>Version:</b> <%= VersionInfo.getVersion()%>,
+                r<%= VersionInfo.getRevision()%><br>
+<b>Compiled:</b> <%= VersionInfo.getDate()%> by 
+                 <%= VersionInfo.getUser()%><br>
+                   
 <hr>
 <h2>Cluster Summary</h2>
 <center>

Modified: lucene/hadoop/trunk/src/webapps/task/tasktracker.jsp
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/webapps/task/tasktracker.jsp?view=diff&rev=452633&r1=452632&r2=452633
==============================================================================
--- lucene/hadoop/trunk/src/webapps/task/tasktracker.jsp (original)
+++ lucene/hadoop/trunk/src/webapps/task/tasktracker.jsp Tue Oct  3 14:30:38 2006
@@ -19,7 +19,11 @@
 
 <body>
 <h1><%= trackerName %> Task Tracker Status</h1>
-<img src="/static/hadoop-logo.jpg"/>
+<img src="/static/hadoop-logo.jpg"/><br>
+<b>Version:</b> <%= VersionInfo.getVersion()%>,
+                r<%= VersionInfo.getRevision()%><br>
+<b>Compiled:</b> <%= VersionInfo.getDate()%> by 
+                 <%= VersionInfo.getUser()%><br>
 
 <h2>Running tasks</h2>
 <center>