commit 8c667bdbc005397eed2968b9e0359a805d6627ad Author: Reuben Kuhnert Date: Wed Mar 30 08:30:44 2016 -0500 Clean up Beeline object instantiation Change-Id: Id3a4c629f04e7b3b2f13ebd320d46be137da96de diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java index 4ab6aa82fbf1b0308e7178f4527c70adacb20214..690ff1e0b65eaac8c34c2da64810373f00aa85d5 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java @@ -118,7 +118,6 @@ private boolean exit = false; private final DatabaseConnections connections = new DatabaseConnections(); public static final String COMMAND_PREFIX = "!"; - private final Completer beeLineCommandCompleter; private Collection drivers = null; private final BeeLineOpts opts = new BeeLineOpts(this, System.getProperties()); private String lastProgress = null; @@ -130,7 +129,7 @@ private PrintStream errorStream = new PrintStream(System.err, true); private ConsoleReader consoleReader; private List batch = null; - private final Reflector reflector; + private final Reflector reflector = new Reflector(this); private String dbName = null; private String currentDatabase = null; @@ -266,6 +265,7 @@ null) }; + private final Completer beeLineCommandCompleter = new BeeLineCommandCompleter(Arrays.asList(commandHandlers)); static final SortedSet KNOWN_DRIVERS = new TreeSet(Arrays.asList( new String[] { @@ -503,21 +503,7 @@ public BeeLine() { } public BeeLine(boolean isBeeLine) { - beeLineCommandCompleter = new BeeLineCommandCompleter(BeeLineCommandCompleter.getCompleters - (this)); - reflector = new Reflector(this); this.isBeeLine = isBeeLine; - // attempt to dynamically load signal handler - /* TODO disable signal handler - try { - Class handlerClass = - Class.forName("org.apache.hive.beeline.SunSignalHandler"); - signalHandler = (BeeLineSignalHandler) - handlerClass.newInstance(); - } catch (Throwable t) { - // ignore and leave cancel functionality disabled - } - */ } DatabaseConnection getDatabaseConnection() { diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineCommandCompleter.java b/beeline/src/java/org/apache/hive/beeline/BeeLineCommandCompleter.java index 6a872bc3480f7ad867cd82d6ecdbb29176d430e0..87e751889ab0d48f7601d3fa0fcf352c3444d663 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLineCommandCompleter.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLineCommandCompleter.java @@ -27,24 +27,26 @@ import jline.console.completer.StringsCompleter; class BeeLineCommandCompleter extends AggregateCompleter { - - public BeeLineCommandCompleter(List completers) { - super(completers); + public BeeLineCommandCompleter(Iterable handlers) { + super(getCompleters(handlers)); } - public static List getCompleters(BeeLine beeLine){ + public static List getCompleters(Iterable handlers){ List completers = new LinkedList(); - for (int i = 0; i < beeLine.commandHandlers.length; i++) { - String[] cmds = beeLine.commandHandlers[i].getNames(); - for (int j = 0; cmds != null && j < cmds.length; j++) { - List compl = new LinkedList(); - compl.add(new StringsCompleter(BeeLine.COMMAND_PREFIX + cmds[j])); - compl.addAll(Arrays.asList(beeLine.commandHandlers[i].getParameterCompleters())); - compl.add(new NullCompleter()); // last param no complete - completers.add(new AggregateCompleter(compl.toArray(new Completer[0]))); + for (CommandHandler handler : handlers) { + String[] commandNames = handler.getNames(); + if (commandNames != null) { + for (String commandName : commandNames) { + List compl = new LinkedList(); + compl.add(new StringsCompleter(BeeLine.COMMAND_PREFIX + commandName)); + compl.addAll(Arrays.asList(handler.getParameterCompleters())); + compl.add(new NullCompleter()); // last param no complete + completers.add(new AggregateCompleter(compl.toArray(new Completer[compl.size()]))); + } } } + return completers; } } \ No newline at end of file