summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2009-01-13 09:26:41 +0000
committerAidan Skinner <aidan@apache.org>2009-01-13 09:26:41 +0000
commitf8dce88ed8fdbb976fe7ee79dfb189eff6804d1a (patch)
tree21a0ee3b5b5f0f9bf8d27087dd16bbce888f2e6e /java
parente16278048b827d9a044e8112bd8501142acf56c5 (diff)
downloadqpid-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.java5
-rw-r--r--java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java28
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;