You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by le...@apache.org on 2013/02/09 23:50:59 UTC
svn commit: r1444462 - in /gora/trunk: CHANGES.txt bin/gora
gora-core/src/main/java/org/apache/gora/GoraVersionAnnotation.java
gora-core/src/main/java/org/apache/gora/util/VersionInfo.java
Author: lewismc
Date: Sat Feb 9 22:50:58 2013
New Revision: 1444462
URL: http://svn.apache.org/r1444462
Log:
GORA-190 Add version switch to bin/gora script
Added:
gora/trunk/gora-core/src/main/java/org/apache/gora/GoraVersionAnnotation.java
gora/trunk/gora-core/src/main/java/org/apache/gora/util/VersionInfo.java
Modified:
gora/trunk/CHANGES.txt
gora/trunk/bin/gora
Modified: gora/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/gora/trunk/CHANGES.txt?rev=1444462&r1=1444461&r2=1444462&view=diff
==============================================================================
--- gora/trunk/CHANGES.txt (original)
+++ gora/trunk/CHANGES.txt Sat Feb 9 22:50:58 2013
@@ -6,6 +6,8 @@ Gora Change Log
trunk (current development)
+* GORA-190 Add "version" switch to bin/gora script (lewismc)
+
* GORA-169 Implement correct logging for KeySpaces and attributes in CassandraMappingManager (lewismc)
* GORA-27 Optionally add license headers to generated files (lewismc + rmarroquin)
Modified: gora/trunk/bin/gora
URL: http://svn.apache.org/viewvc/gora/trunk/bin/gora?rev=1444462&r1=1444461&r2=1444462&view=diff
==============================================================================
--- gora/trunk/bin/gora (original)
+++ gora/trunk/bin/gora Sat Feb 9 22:50:58 2013
@@ -49,6 +49,7 @@ if [ $# = 0 ]; then
echo " logmanager Run the tutorial log manager"
echo " loganalytics Run the tutorial log analytics"
echo " junit Run the given JUnit test"
+ echo " version Print Gora version to terminal"
echo " or"
echo " MODULE CLASSNAME run the class named CLASSNAME in module MODULE"
echo "Most commands print help when invoked w/o parameters."
@@ -132,6 +133,10 @@ elif [ "$COMMAND" = "junit" ] ; then
MODULE=*
CLASSPATH=$CLASSPATH:$GORA_HOME/$MODULE/target/test-classes/
CLASS=junit.textui.TestRunner
+elif [ "$COMMAND" = "version" ] ; then
+ MODULE=gora-core
+ CLASSPATH=$CLASSPATH:$GORA_HOME/$MODULE/target/classes/
+ CLASS=org.apache.gora.util.VersionInfo
else
MODULE="$COMMAND"
CLASS=$1
Added: gora/trunk/gora-core/src/main/java/org/apache/gora/GoraVersionAnnotation.java
URL: http://svn.apache.org/viewvc/gora/trunk/gora-core/src/main/java/org/apache/gora/GoraVersionAnnotation.java?rev=1444462&view=auto
==============================================================================
--- gora/trunk/gora-core/src/main/java/org/apache/gora/GoraVersionAnnotation.java (added)
+++ gora/trunk/gora-core/src/main/java/org/apache/gora/GoraVersionAnnotation.java Sat Feb 9 22:50:58 2013
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.gora;
+
+import java.lang.annotation.*;
+
+/**
+ * A package attribute that captures the version of Gora that was compiled.
+ * This implementation reflects that used in Apache Hadoop.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.PACKAGE)
+public @interface GoraVersionAnnotation {
+
+ /**
+ * Get the Gora version
+ * @return the version string e.g. "X.Y"
+ */
+ String version();
+
+ /**
+ * Get the username .
+ * @return the username of the person that compiled Gora
+ */
+ String user();
+
+ /**
+ * Get the date when Gora was compiled.
+ * @return the date in unix 'date' format
+ */
+ String date();
+
+ /**
+ * Get the url for the subversion repository.
+ * @return the appropriate Gora URL in SVN
+ */
+ String url();
+
+ /**
+ * Get the subversion revision.
+ * @return the revision number as a string (eg. "451451")
+ */
+ String revision();
+
+ /**
+ * Get a checksum of the source files from which
+ * Gora was compiled.
+ * @return a string that uniquely identifies the source
+ **/
+ String srcChecksum();
+}
Added: gora/trunk/gora-core/src/main/java/org/apache/gora/util/VersionInfo.java
URL: http://svn.apache.org/viewvc/gora/trunk/gora-core/src/main/java/org/apache/gora/util/VersionInfo.java?rev=1444462&view=auto
==============================================================================
--- gora/trunk/gora-core/src/main/java/org/apache/gora/util/VersionInfo.java (added)
+++ gora/trunk/gora-core/src/main/java/org/apache/gora/util/VersionInfo.java Sat Feb 9 22:50:58 2013
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.gora.util;
+
+import org.apache.gora.GoraVersionAnnotation;
+
+/**
+ * This class finds the package info for Gora and the GoraVersionAnnotation
+ * information.
+ */
+public class VersionInfo {
+ private static Package myPackage;
+ private static GoraVersionAnnotation version;
+
+ static {
+ myPackage = GoraVersionAnnotation.class.getPackage();
+ version = myPackage.getAnnotation(GoraVersionAnnotation.class);
+ }
+
+ /**
+ * Get the meta-data for the Gora package.
+ * @return
+ */
+ static Package getPackage() {
+ return myPackage;
+ }
+
+ /**
+ * Get the Gora version.
+ * @return the Gora version string, eg. "X.Y"
+ */
+ 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 Gora was compiled.
+ * @return the compilation date in unix date format
+ */
+ public static String getDate() {
+ return version != null ? version.date() : "Unknown";
+ }
+
+ /**
+ * The user that compiled Gora.
+ * @return the username of the user
+ */
+ public static String getUser() {
+ return version != null ? version.user() : "Unknown";
+ }
+
+ /**
+ * Get the subversion URL for the root Gora directory.
+ */
+ public static String getUrl() {
+ return version != null ? version.url() : "Unknown";
+ }
+
+ /**
+ * Get the checksum of the source files from which Gora was
+ * built.
+ **/
+ public static String getSrcChecksum() {
+ return version != null ? version.srcChecksum() : "Unknown";
+ }
+
+ /**
+ * Returns the buildVersion which includes version,
+ * revision, user and date.
+ */
+ public static String getBuildVersion(){
+ return VersionInfo.getVersion() +
+ " from " + VersionInfo.getRevision() +
+ " by " + VersionInfo.getUser() +
+ " source checksum " + VersionInfo.getSrcChecksum();
+ }
+
+ public static void main(String[] args) {
+ System.out.println("Gora " + getVersion());
+ System.out.println("Subversion " + getUrl() + " -r " + getRevision());
+ System.out.println("Compiled by " + getUser() + " on " + getDate());
+ System.out.println("From source with checksum " + getSrcChecksum());
+
+ }
+}