You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/07/18 07:24:17 UTC
svn commit: r965160 - in /hbase/trunk: CHANGES.txt bin/hbase
src/main/java/org/apache/hadoop/hbase/rest/Main.java
Author: stack
Date: Sun Jul 18 05:24:17 2010
New Revision: 965160
URL: http://svn.apache.org/viewvc?rev=965160&view=rev
Log:
HBASE-2846 Make rest server be same as thrift and avro servers
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/bin/hbase
hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/Main.java
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=965160&r1=965159&r2=965160&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Sun Jul 18 05:24:17 2010
@@ -439,6 +439,7 @@ Release 0.21.0 - Unreleased
HBASE-2727 Splits writing one file only is untenable; need dir of recovered
edits ordered by sequenceid
HBASE-2843 Readd bloomfilter test over zealously removed by HBASE-2625
+ HBASE-2846 Make rest server be same as thrift and avro servers
IMPROVEMENTS
HBASE-1760 Cleanup TODOs in HTable
Modified: hbase/trunk/bin/hbase
URL: http://svn.apache.org/viewvc/hbase/trunk/bin/hbase?rev=965160&r1=965159&r2=965160&view=diff
==============================================================================
--- hbase/trunk/bin/hbase (original)
+++ hbase/trunk/bin/hbase Sun Jul 18 05:24:17 2010
@@ -70,6 +70,7 @@ if [ $# = 0 ]; then
echo " master run an HBase HMaster node"
echo " regionserver run an HBase HRegionServer node"
echo " thrift run an HBase Thrift server"
+ echo " rest run an HBase REST server"
echo " avro run an HBase Avro server"
echo " zookeeper run a Zookeeper server"
echo " migrate upgrade an hbase.rootdir"
@@ -239,6 +240,11 @@ elif [ "$COMMAND" = "thrift" ] ; then
if [ "$1" != "stop" ] ; then
HBASE_OPTS="$HBASE_OPTS $HBASE_THRIFT_OPTS"
fi
+elif [ "$COMMAND" = "rest" ] ; then
+ CLASS='org.apache.hadoop.hbase.rest.Main'
+ if [ "$1" != "stop" ] ; then
+ HBASE_OPTS="$HBASE_OPTS $HBASE_REST_OPTS"
+ fi
elif [ "$COMMAND" = "avro" ] ; then
CLASS='org.apache.hadoop.hbase.avro.AvroServer'
if [ "$1" != "stop" ] ; then
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/Main.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/Main.java?rev=965160&r1=965159&r2=965160&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/Main.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/Main.java Sun Jul 18 05:24:17 2010
@@ -22,9 +22,16 @@ package org.apache.hadoop.hbase.rest;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Arrays;
+import java.util.List;
+
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
@@ -40,17 +47,43 @@ import com.sun.jersey.spi.container.serv
* </ul>
*/
public class Main implements Constants {
+ private static final String DEFAULT_LISTEN_PORT = "8080";
- public static void main(String[] args) throws Exception {
- // process command line
+ private static void printUsageAndExit(Options options, int exitCode) {
+ HelpFormatter formatter = new HelpFormatter();
+ formatter.printHelp("REST", null, options,
+ "To start the REST server run 'bin/hbase-daemon.sh start rest'\n" +
+ "To shutdown the REST server run 'bin/hbase-daemon.sh stop rest' or" +
+ " send a kill signal to the rest server pid",
+ true);
+ System.exit(exitCode);
+ }
+ public static void main(String[] args) throws Exception {
+ Log LOG = LogFactory.getLog("RESTServer");
Options options = new Options();
- options.addOption("p", "port", true, "service port");
+ options.addOption("p", "port", true, "Port to bind to [default:" +
+ DEFAULT_LISTEN_PORT + "]");
CommandLineParser parser = new PosixParser();
CommandLine cmd = parser.parse(options, args);
- int port = 8080;
- if (cmd.hasOption("p")) {
- port = Integer.valueOf(cmd.getOptionValue("p"));
+ /**
+ * This is so complicated to please both bin/hbase and bin/hbase-daemon.
+ * hbase-daemon provides "start" and "stop" arguments
+ * hbase should print the help if no argument is provided
+ */
+ List<String> commandLine = Arrays.asList(args);
+ boolean stop = commandLine.contains("stop");
+ boolean start = commandLine.contains("start");
+ if (cmd.hasOption("help") || !start || stop) {
+ printUsageAndExit(options, 1);
+ }
+ // Get port to bind to
+ int port = 0;
+ try {
+ port = Integer.parseInt(cmd.getOptionValue("port", DEFAULT_LISTEN_PORT));
+ } catch (NumberFormatException e) {
+ LOG.error("Could not parse the value provided for the port option", e);
+ printUsageAndExit(options, -1);
}
// set up the Jersey servlet container for Jetty