From 4746555319a2429fc047c7e7f0f0f9fd2d79cd73 Mon Sep 17 00:00:00 2001 From: HyoungJun Kim Date: Mon, 1 Sep 2014 03:33:48 +0900 Subject: [PATCH 1/3] TAJO-1022: tsql does not work as background process --- tajo-dist/src/main/bin/tajo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tajo-dist/src/main/bin/tajo b/tajo-dist/src/main/bin/tajo index f579864cfb..e52cec7a84 100755 --- a/tajo-dist/src/main/bin/tajo +++ b/tajo-dist/src/main/bin/tajo @@ -345,7 +345,7 @@ elif [ "$COMMAND" = "catalog" ] ; then elif [ "$COMMAND" = "cli" ] ; then CLASS='org.apache.tajo.cli.TajoCli' TAJO_ROOT_LOGGER_APPENDER="${TAJO_ROOT_LOGGER_APPENDER:-NullAppender}" - TAJO_OPTS="$TAJO_OPTS $TAJO_CLI_OPTS" + TAJO_OPTS="$TAJO_OPTS -Djline.terminal=jline.UnsupportedTerminal $TAJO_CLI_OPTS" elif [ "$COMMAND" = "admin" ] ; then CLASS='org.apache.tajo.client.TajoAdmin' TAJO_ROOT_LOGGER_APPENDER="${TAJO_ROOT_LOGGER_APPENDER:-NullAppender}" From 7b417ffd472f0c86cffbd4a80d96929f24e1073d Mon Sep 17 00:00:00 2001 From: HyoungJun Kim Date: Fri, 5 Sep 2014 21:44:18 +0900 Subject: [PATCH 2/3] TAJO-1022: tsql does not work as background process --- .../java/org/apache/tajo/cli/TajoCli.java | 23 ++++++++++++------- tajo-dist/src/main/bin/tajo | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java b/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java index 2f9e0b2896..eb01ab5436 100644 --- a/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java +++ b/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java @@ -21,6 +21,9 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.protobuf.ServiceException; +import jline.TerminalFactory; +import jline.TerminalFactory.Flavor; +import jline.UnsupportedTerminal; import jline.console.ConsoleReader; import org.apache.commons.cli.*; import org.apache.tajo.*; @@ -39,10 +42,7 @@ import java.lang.reflect.Constructor; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; +import java.util.*; import static org.apache.tajo.cli.ParsedResult.StatementType.META; import static org.apache.tajo.cli.ParsedResult.StatementType.STATEMENT; @@ -98,6 +98,7 @@ public class TajoCli { options.addOption("f", "file", true, "execute commands from file, then exit"); options.addOption("h", "host", true, "Tajo server host"); options.addOption("p", "port", true, "Tajo server port"); + options.addOption("B", "background", false, "execute as background process"); options.addOption("conf", "conf", true, "configuration value"); options.addOption("param", "param", true, "parameter value in SQL file"); options.addOption("help", "help", false, "help"); @@ -170,19 +171,25 @@ public Map getCommands() { } public TajoCli(TajoConf c, String [] args, InputStream in, OutputStream out) throws Exception { + CommandLineParser parser = new PosixParser(); + CommandLine cmd = parser.parse(options, args); + this.conf = new TajoConf(c); context = new TajoCliContext(conf); this.sin = in; - this.reader = new ConsoleReader(sin, out); + if (cmd.hasOption("B")) { + this.reader = new ConsoleReader(sin, out, new UnsupportedTerminal()); + } else { + this.reader = new ConsoleReader(sin, out); + } + this.reader.setExpandEvents(false); this.sout = new PrintWriter(reader.getOutput()); initFormatter(); - CommandLineParser parser = new PosixParser(); - CommandLine cmd = parser.parse(options, args); - if (cmd.hasOption("help")) { printUsage(); + return; } String hostName = null; diff --git a/tajo-dist/src/main/bin/tajo b/tajo-dist/src/main/bin/tajo index e52cec7a84..f579864cfb 100755 --- a/tajo-dist/src/main/bin/tajo +++ b/tajo-dist/src/main/bin/tajo @@ -345,7 +345,7 @@ elif [ "$COMMAND" = "catalog" ] ; then elif [ "$COMMAND" = "cli" ] ; then CLASS='org.apache.tajo.cli.TajoCli' TAJO_ROOT_LOGGER_APPENDER="${TAJO_ROOT_LOGGER_APPENDER:-NullAppender}" - TAJO_OPTS="$TAJO_OPTS -Djline.terminal=jline.UnsupportedTerminal $TAJO_CLI_OPTS" + TAJO_OPTS="$TAJO_OPTS $TAJO_CLI_OPTS" elif [ "$COMMAND" = "admin" ] ; then CLASS='org.apache.tajo.client.TajoAdmin' TAJO_ROOT_LOGGER_APPENDER="${TAJO_ROOT_LOGGER_APPENDER:-NullAppender}" From 15a2bb3d96ef56cba5e7a8514e6030f667fc6949 Mon Sep 17 00:00:00 2001 From: HyoungJun Kim Date: Fri, 5 Sep 2014 22:08:06 +0900 Subject: [PATCH 3/3] TAJO-1022: tsql does not work as background process --- tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java b/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java index eb01ab5436..7c96e34e97 100644 --- a/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java +++ b/tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java @@ -189,7 +189,7 @@ public TajoCli(TajoConf c, String [] args, InputStream in, OutputStream out) thr if (cmd.hasOption("help")) { printUsage(); - return; + System.exit(0); } String hostName = null;