diff options
| author | Aidan Skinner <aidan@apache.org> | 2009-01-13 09:26:41 +0000 |
|---|---|---|
| committer | Aidan Skinner <aidan@apache.org> | 2009-01-13 09:26:41 +0000 |
| commit | f8dce88ed8fdbb976fe7ee79dfb189eff6804d1a (patch) | |
| tree | 21a0ee3b5b5f0f9bf8d27087dd16bbce888f2e6e /java | |
| parent | e16278048b827d9a044e8112bd8501142acf56c5 (diff) | |
| download | qpid-python-f8dce88ed8fdbb976fe7ee79dfb189eff6804d1a.tar.gz | |
QPID-1528: Use central list of commands for parsing and completing.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@734081 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
| -rw-r--r-- | java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java | 5 | ||||
| -rw-r--r-- | java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java | 28 |
2 files changed, 24 insertions, 9 deletions
diff --git a/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java b/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java index ee57ba37b2..69f261b4ba 100644 --- a/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java +++ b/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java @@ -58,6 +58,11 @@ public class CommandExecutionEngine { _commands.put(name, newCommand); } + + public static Map<String, Class<? extends Command>> getCommands() + { + return _commands; + } public void runcommand() { diff --git a/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java b/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java index 6e5159aece..d8e76172bc 100644 --- a/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java +++ b/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java @@ -22,6 +22,8 @@ package org.apache.qpid; import java.io.PrintWriter; +import java.util.HashSet; +import java.util.Set; import java.util.StringTokenizer; import javax.management.MBeanServerConnection; @@ -46,6 +48,13 @@ import org.apache.qpid.utils.JMXinfo; public class CommandLineInterpreter { + private static final String OBJECT_VIRTUALHOST = "virtualhost"; + private static final String OBJECT_USERMANAGEMENT = "usermanagement"; + private static final String OBJECT_CONNECTION = "connection"; + private static final String OBJECT_EXCHANGE = "exchange"; + private static final String OBJECT_QUEUE = "queue"; + private static final String COMMAND_QUIT = "quit"; + private static final String COMMAND_EXIT = "exit"; public static void main(String[] args) { @@ -118,13 +127,9 @@ public class CommandLineInterpreter */ for (int i = 0; i < args.length; i++) { - if (args[i].compareTo("list") == 0 || args[i].compareTo("info") == 0 - || args[i].compareTo("view") == 0 || args[i].compareTo("viewcontent") == 0 - || args[i].compareTo("delete") == 0 || args[i].compareTo("move") == 0 - || args[i].compareTo("set") == 0 || args[i].compareTo("get") == 0) + if (CommandExecutionEngine.getCommands().keySet().contains(args[i])) { oneshotmode(args, commandlineoptionparser, jmxc, mbsc); - return; } } @@ -140,13 +145,18 @@ public class CommandLineInterpreter /* prividing GNU readline features using Jline library */ PrintWriter out = new PrintWriter(System.out); - reader.addCompletor(new ArgumentCompletor(new SimpleCompletor(new String[] { "get", "set", "list", "info", - "exit", "quit", "delete", "move", "view", "viewcontent", "queue", "exchange", "connection", - "usermanagement", "virtualhost" }))); + SimpleCompletor completer = new SimpleCompletor(new String[] { + COMMAND_EXIT, COMMAND_QUIT, OBJECT_QUEUE, OBJECT_EXCHANGE, OBJECT_CONNECTION, + OBJECT_USERMANAGEMENT, OBJECT_VIRTUALHOST}); + for (String commandName : CommandExecutionEngine.getCommands().keySet()) + { + completer.addCandidateString(commandName); + } + reader.addCompletor(new ArgumentCompletor(completer)); while ((line = reader.readLine("qpid-admin-$ ")) != null) { out.flush(); - if (removeSpaces(line).equalsIgnoreCase("quit") || removeSpaces(line).equalsIgnoreCase("exit")) + if (removeSpaces(line).equalsIgnoreCase(COMMAND_QUIT) || removeSpaces(line).equalsIgnoreCase(COMMAND_EXIT)) break; else if (line.length() == 0) continue; |
