Repository: tajo
Updated Branches:
  refs/heads/master a5d14f808 -> 101413e31


TAJO-912: Tsql prints wrong version. (Mai Hai Thanh via hyunsik)


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/101413e3
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/101413e3
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/101413e3

Branch: refs/heads/master
Commit: 101413e319cd1be0e2570c6759e52d98aee89725
Parents: a5d14f8
Author: Hyunsik Choi <[email protected]>
Authored: Fri Jul 11 13:04:54 2014 +0900
Committer: Hyunsik Choi <[email protected]>
Committed: Fri Jul 11 13:04:54 2014 +0900

----------------------------------------------------------------------
 CHANGES                                         |  2 +
 .../java/org/apache/tajo/cli/HelpCommand.java   | 58 ++++++++++++++++----
 .../java/org/apache/tajo/TajoConstants.java     |  2 +-
 3 files changed, 51 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/101413e3/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index e25928c..c0208aa 100644
--- a/CHANGES
+++ b/CHANGES
@@ -82,6 +82,8 @@ Release 0.9.0 - unreleased
 
   BUG FIXES
 
+    TAJO-912: Tsql prints wrong version. (Mai Hai Thanh via hyunsik)
+
     TAJO-902: Unicode delimiter does not work correctly. (jinho)
 
     TAJO-905: When to_date() parses some date without day, the result will be 

http://git-wip-us.apache.org/repos/asf/tajo/blob/101413e3/tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java 
b/tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java
index 53bc404..8d908ec 100644
--- a/tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java
+++ b/tajo-client/src/main/java/org/apache/tajo/cli/HelpCommand.java
@@ -18,11 +18,18 @@
 
 package org.apache.tajo.cli;
 
-import org.apache.tajo.TajoConstants;
+import org.apache.tajo.util.VersionInfo;
 
+import java.io.IOException;
 import java.io.PrintWriter;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.ProtocolException;
+import java.net.URL;
 
 public class HelpCommand extends TajoShellCommand {
+  private String targetDocVersion = "";
+
   public HelpCommand(TajoCli.TajoCliContext context) {
     super(context);
   }
@@ -34,7 +41,10 @@ public class HelpCommand extends TajoShellCommand {
 
   @Override
   public void invoke(String[] cmd) throws Exception {
-    String docVersion = getDocumentationVersion();
+    if(targetDocVersion.equalsIgnoreCase("")) {
+      targetDocVersion = getDocumentationVersion();
+    }
+
     PrintWriter sout = context.getOutput();
     sout.println();
 
@@ -71,21 +81,49 @@ public class HelpCommand extends TajoShellCommand {
     sout.println();
 
     sout.println("Documentations");
-    sout.println("  tsql guide        http://tajo.apache.org/docs/"+ 
docVersion +"/cli.html");
-    sout.println("  Query language    http://tajo.apache.org/docs/"+ 
docVersion +"/sql_language.html");
-    sout.println("  Functions         http://tajo.apache.org/docs/"+ 
docVersion +"/functions.html");
-    sout.println("  Backup & restore  http://tajo.apache.org/docs/"+ 
docVersion +"/backup_and_restore.html");
-    sout.println("  Configuration     http://tajo.apache.org/docs/"+ 
docVersion +"/configuration.html");
+    sout.println("  tsql guide        http://tajo.apache.org/docs/"+ 
targetDocVersion +"/cli.html");
+    sout.println("  Query language    http://tajo.apache.org/docs/"+ 
targetDocVersion +"/sql_language.html");
+    sout.println("  Functions         http://tajo.apache.org/docs/"+ 
targetDocVersion +"/functions.html");
+    sout.println("  Backup & restore  http://tajo.apache.org/docs/"+ 
targetDocVersion +"/backup_and_restore.html");
+    sout.println("  Configuration     http://tajo.apache.org/docs/"+ 
targetDocVersion +"/configuration.html");
     sout.println();
   }
 
   private String getDocumentationVersion() {
-    int delimiterIdx = TajoConstants.TAJO_VERSION.indexOf("-");
+    String tajoVersion = "", docVersion = "", docDefaultVersion = "current";
+    String tajoFullVersion = VersionInfo.getVersion();
+
+    int delimiterIdx = tajoFullVersion.indexOf("-");
     if (delimiterIdx > -1) {
-      return TajoConstants.TAJO_VERSION.substring(0, delimiterIdx);
+      tajoVersion =  tajoFullVersion.substring(0, delimiterIdx);
     } else {
-      return TajoConstants.TAJO_VERSION;
+      tajoVersion = tajoFullVersion;
     }
+
+    if(tajoVersion.equalsIgnoreCase("")) {
+      docVersion = docDefaultVersion;
+    } else {
+      try {
+        URL u = new URL("http://tajo.apache.org/docs/"+ tajoVersion + "/");
+        HttpURLConnection huc =  (HttpURLConnection) u.openConnection();
+        huc.setConnectTimeout(1000);
+        huc.setReadTimeout(1000);
+        huc.setRequestMethod("HEAD");
+        if(huc.getResponseCode() == HttpURLConnection.HTTP_OK) {
+          docVersion = tajoVersion;
+        } else {
+          docVersion = docDefaultVersion;
+        }
+      } catch (MalformedURLException e0) {
+        docVersion = docDefaultVersion;
+      } catch (ProtocolException e1) {
+        docVersion = docDefaultVersion;
+      } catch (IOException e2) {
+        docVersion = docDefaultVersion;
+      }
+    }
+
+    return docVersion;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/tajo/blob/101413e3/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java 
b/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
index 028ca81..5f28f1c 100644
--- a/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
+++ b/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
@@ -19,7 +19,7 @@
 package org.apache.tajo;
 
 public class TajoConstants {
-  public static final String TAJO_VERSION = "0.8.0-SNAPSHOT";
+  public static final String TAJO_VERSION = "0.9.0-SNAPSHOT";
   public static final String SYSTEM_CONF_FILENAME = "system_conf.xml";
 
   public static final String SYSTEM_DIR_NAME = "system";

Reply via email to