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 st...@apache.org on 2007/12/13 06:44:02 UTC

svn commit: r603824 - in /lucene/hadoop/trunk/src/contrib/hbase: CHANGES.txt src/java/org/apache/hadoop/hbase/Shell.java src/java/org/apache/hadoop/hbase/shell/ShellSecurityManager.java

Author: stack
Date: Wed Dec 12 21:43:59 2007
New Revision: 603824

URL: http://svn.apache.org/viewvc?rev=603824&view=rev
Log:
HADOOP-2047 Add an '--master=X' and '--html' command-line parameters to shell

Modified:
    lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
    lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/Shell.java
    lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/shell/ShellSecurityManager.java

Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt?rev=603824&r1=603823&r2=603824&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt Wed Dec 12 21:43:59 2007
@@ -116,6 +116,7 @@
    HADOOP-2370 Allow column families with an unlimited number of versions
                (Edward Yoon via Stack)
    HADOOP-2407 Keeping MapFile.Reader open is expensive: Part 2
+   HADOOP-2047 Add an '--master=X' and '--html' command-line parameters to shell
 
 Release 0.15.1
 Branch 0.15

Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/Shell.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/Shell.java?rev=603824&r1=603823&r2=603824&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/Shell.java (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/Shell.java Wed Dec 12 21:43:59 2007
@@ -27,9 +27,11 @@
 
 import org.apache.hadoop.hbase.shell.Command;
 import org.apache.hadoop.hbase.shell.HelpCommand;
-import org.apache.hadoop.hbase.shell.ShellSecurityManager;
 import org.apache.hadoop.hbase.shell.ReturnMsg;
+import org.apache.hadoop.hbase.shell.ShellSecurityManager;
+import org.apache.hadoop.hbase.shell.TableFormatter;
 import org.apache.hadoop.hbase.shell.TableFormatterFactory;
+import org.apache.hadoop.hbase.shell.formatter.HtmlTableFormatter;
 import org.apache.hadoop.hbase.shell.generated.ParseException;
 import org.apache.hadoop.hbase.shell.generated.Parser;
 import org.apache.hadoop.hbase.shell.generated.TokenMgrError;
@@ -37,12 +39,15 @@
 /**
  * An hbase shell.
  * 
- * @see <a href="http://wiki.apache.org/lucene-hadoop/Hbase/HbaseShell">HbaseShell</a>
+ * @see <a
+ *      href="http://wiki.apache.org/lucene-hadoop/Hbase/HbaseShell">HbaseShell</a>
  */
 public class Shell {
   /** audible keyboard bells */
   public static final boolean DEFAULT_BELL_ENABLED = true;
-  
+  public static String MASTER_ADDRESS = null;
+  public static String HTML_OPTION = null;
+
   /** Return the boolean value indicating whether end of command or not */
   static boolean isEndOfCommand(String line) {
     return (line.lastIndexOf(';') > -1) ? true : false;
@@ -57,50 +62,64 @@
    * @param watch true if execution time should be computed and returned
    * @param start start of time interval
    * @param end end of time interval
-   * @return a string of code execution time. */
+   * @return a string of code execution time.
+   */
   public static String executeTime(boolean watch, long start, long end) {
-    return watch?
-      " (" + String.format("%.2f", Double.valueOf((end - start) * 0.001)) +
-        " sec)":
-      "";
+    return watch ? " ("
+        + String.format("%.2f", Double.valueOf((end - start) * 0.001)) + " sec)"
+        : "";
   }
- 
+
   /**
    * Main method
+   * 
    * @param args not used
    * @throws IOException
    */
-  public static void main(String args[])  throws IOException {
+  public static void main(String args[]) throws IOException {
+    argumentParsing(args);
     HBaseConfiguration conf = new HBaseConfiguration();
     ConsoleReader reader = new ConsoleReader();
     System.setSecurityManager(new ShellSecurityManager());
     reader.setBellEnabled(conf.getBoolean("hbaseshell.jline.bell.enabled",
-      DEFAULT_BELL_ENABLED));
+        DEFAULT_BELL_ENABLED));
     Writer out = new OutputStreamWriter(System.out, "UTF-8");
-    TableFormatterFactory tff = new TableFormatterFactory(out, conf);
-    HelpCommand help = new HelpCommand(out, tff.get());
-    if(args.length == 0) help.printVersion();
+    TableFormatter tableFormater = new TableFormatterFactory(out, conf).get();
+    if (MASTER_ADDRESS != null) {
+      conf.set("hbase.master", MASTER_ADDRESS.substring(9, MASTER_ADDRESS.length()));
+    }
+    if (HTML_OPTION != null) {
+      tableFormater = new HtmlTableFormatter(out);
+      System.out.println("--html");
+    }
+
+    HelpCommand help = new HelpCommand(out, tableFormater);
+    if (args.length == 0 || !args[0].equals("7")) {
+      help.printVersion();
+    }
     StringBuilder queryStr = new StringBuilder();
     String extendedLine;
     while ((extendedLine = reader.readLine(getPrompt(queryStr))) != null) {
       if (isEndOfCommand(extendedLine)) {
         queryStr.append(" " + extendedLine);
         long start = System.currentTimeMillis();
-        Parser parser = new Parser(queryStr.toString(), out, tff.get());
+        Parser parser = new Parser(queryStr.toString(), out, tableFormater);
         ReturnMsg rs = null;
         try {
           Command cmd = parser.terminatedCommand();
           if (cmd != null) {
-              rs = cmd.execute(conf);
+            rs = cmd.execute(conf);
           }
-        }  catch (ParseException pe) {
+        } catch (ParseException pe) {
           String[] msg = pe.getMessage().split("[\n]");
-          System.out.println("Syntax error : Type 'help;' for usage.\nMessage : " + msg[0]);
+          System.out.println("Syntax error : Type 'help;' for usage.\nMessage : "
+              + msg[0]);
         } catch (TokenMgrError te) {
           String[] msg = te.getMessage().split("[\n]");
-          System.out.println("Lexical error : Type 'help;' for usage.\nMessage : " + msg[0]);
-        } 
-        
+          System.out.println("Lexical error : Type 'help;' for usage.\nMessage : "
+              + msg[0]);
+        }
+
         long end = System.currentTimeMillis();
         if (rs != null && rs.getType() > -1)
           System.out.println(rs.getMsg()
@@ -111,5 +130,15 @@
       }
     }
     System.out.println();
+  }
+
+  private static void argumentParsing(String[] args) {
+    for (int i = 0; i < args.length; i++) {
+      if (args[i].toLowerCase().startsWith("--master:")) {
+        MASTER_ADDRESS = args[i];
+      } else if (args[i].toLowerCase().startsWith("--html")) {
+        HTML_OPTION = args[i];
+      }
+    }
   }
 }

Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/shell/ShellSecurityManager.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/shell/ShellSecurityManager.java?rev=603824&r1=603823&r2=603824&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/shell/ShellSecurityManager.java (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/shell/ShellSecurityManager.java Wed Dec 12 21:43:59 2007
@@ -47,7 +47,7 @@
       // I didn't figure out How can catch the ExitException in shell main.
       // So, I just Re-launching the shell.
       Shell shell = new Shell();
-      String[] args = new String[] { String.valueOf(status) };
+      String[] args = new String[] { String.valueOf(7) };
       try {
         shell.main(args);
       } catch (IOException e) {