summaryrefslogtreecommitdiff
path: root/java/management/tools/qpid-cli/src
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2009-01-07 13:41:40 +0000
committerAidan Skinner <aidan@apache.org>2009-01-07 13:41:40 +0000
commitfe2608cba7e91c06c344100a19453891c3914323 (patch)
tree5e68899c1c33dad0e393893cbbf3d495749d6fc7 /java/management/tools/qpid-cli/src
parent76ee84c52925636a638f39d62962c3eb111b9221 (diff)
downloadqpid-python-fe2608cba7e91c06c344100a19453891c3914323.tar.gz
QPID-1548: Make the CLI depend on management-common, use the login logic there.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@732332 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/management/tools/qpid-cli/src')
-rw-r--r--java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java25
-rw-r--r--java/management/tools/qpid-cli/src/org/apache/qpid/Connector.java9
-rw-r--r--java/management/tools/qpid-cli/src/org/apache/qpid/ConnectorFactory.java32
-rw-r--r--java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionConstants.java2
-rw-r--r--java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfiguration.java30
5 files changed, 70 insertions, 28 deletions
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 bba942a127..713233c92a 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
@@ -96,7 +96,8 @@ public class CommandLineInterpreter {
commandlineoptionparser = new CommandLineOptionParser(args);
JMXConfiguration config = new JMXConfiguration(commandlineoptionparser.getAlloptions());
- conn = ConnectorFactory.getConnector(config.gethostname(), config.getport());
+ conn = ConnectorFactory.getConnector(config.gethostname(), config.getport(),
+ config.getUsername(), config.getPassword());
jmxc = conn.getConnector();
mbsc = conn.getMBeanServerConnection();
if (config.checkoptionsetting("r", commandlineoptionparser.getAlloptions())) {
@@ -123,7 +124,7 @@ public class CommandLineInterpreter {
}
}
} catch (Exception ex) {
- connectionrefuse();
+ connectionrefuse(ex);
return;
}
/* In this point connection has been established */
@@ -183,9 +184,23 @@ public class CommandLineInterpreter {
return t;
}
- private static void connectionrefuse() {
- System.out.println("Cannot connect with the broker in given host with given port");
- System.out.println("Please check the host name and the port given");
+ private static void connectionrefuse(Exception e) {
+ String message = e.getLocalizedMessage();
+ if (e instanceof SecurityException)
+ {
+ message = " authentication failed, please check username and password";
+ }
+ else
+ {
+ Throwable cause = e.getCause();
+ while (cause != null)
+ {
+ message = cause.getMessage();
+ cause = cause.getCause();
+ }
+ }
+
+ System.out.println("Cannot connect with the broker: " + message);
}
public static String[] oneshotmode(String[] args,CommandLineOptionParser commandlineoptionparser,JMXConnector jmxc,MBeanServerConnection mbsc) throws Exception
diff --git a/java/management/tools/qpid-cli/src/org/apache/qpid/Connector.java b/java/management/tools/qpid-cli/src/org/apache/qpid/Connector.java
index d3357e31b7..c649390d97 100644
--- a/java/management/tools/qpid-cli/src/org/apache/qpid/Connector.java
+++ b/java/management/tools/qpid-cli/src/org/apache/qpid/Connector.java
@@ -45,25 +45,18 @@ import java.io.IOException;
public class Connector {
- private JMXServiceURL url = null;
private JMXConnector jmxc = null;
private MBeanServerConnection mbsc = null;
- public Connector(JMXServiceURL url, JMXConnector jmxc, MBeanServerConnection mbsc) {
+ public Connector(JMXConnector jmxc, MBeanServerConnection mbsc) {
-
- this.url = url;
this.jmxc = jmxc;
this.mbsc = mbsc;
}
- public JMXServiceURL getURL() {
- return url;
- }
-
public JMXConnector getConnector() {
return jmxc;
}
diff --git a/java/management/tools/qpid-cli/src/org/apache/qpid/ConnectorFactory.java b/java/management/tools/qpid-cli/src/org/apache/qpid/ConnectorFactory.java
index a94003dc45..f9de1e8768 100644
--- a/java/management/tools/qpid-cli/src/org/apache/qpid/ConnectorFactory.java
+++ b/java/management/tools/qpid-cli/src/org/apache/qpid/ConnectorFactory.java
@@ -37,12 +37,13 @@
*/
package org.apache.qpid;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXServiceURL;
-import javax.management.remote.JMXConnector;
-import javax.management.MBeanServerConnection;
import java.io.IOException;
+import javax.management.MBeanServerConnection;
+import javax.management.remote.JMXConnector;
+
+import org.apache.qpid.management.common.JMXConnnectionFactory;
+
/**
* Created by IntelliJ IDEA.
* User: lahiru
@@ -52,20 +53,21 @@ import java.io.IOException;
*/
public class ConnectorFactory {
- public static Connector getConnector(String host, String port) {
+ private static final long TIMEOUT = 30 * 1000;
- String url_string = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi";
- JMXServiceURL url;
- JMXConnector jmxc;
- MBeanServerConnection mbsc;
+ public static Connector getConnector(String host, String port, String username, String password) throws Exception {
+
+ JMXConnector jmxc = null;
+ MBeanServerConnection mbsc = null;
try {
- url = new JMXServiceURL(url_string);
- jmxc = JMXConnectorFactory.connect(url, null);
+ jmxc = JMXConnnectionFactory.getJMXConnection(TIMEOUT, host, Integer.parseInt(port), username, password);
mbsc = jmxc.getMBeanServerConnection();
-
- } catch (IOException e) {
- throw new RuntimeException(e);
+ }
+ catch (NumberFormatException e)
+ {
+ System.out.println("Illegal port entered:"+port);
+ System.exit(1);
}
- return new Connector(url, jmxc, mbsc);
+ return new Connector(jmxc, mbsc);
}
}
diff --git a/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionConstants.java b/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionConstants.java
index fe84e2ebd2..da21c7663c 100644
--- a/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionConstants.java
+++ b/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionConstants.java
@@ -46,6 +46,8 @@ public interface CommandLineOptionConstants {
String PORT_OPTION = "p";
String INTERVAL_OPTION = "i";
String REPORT_OPTION = "r";
+ String USER_OPTION = "u";
+ String PASSWORD_OPTION = "w";
}
diff --git a/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfiguration.java b/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfiguration.java
index 622f9d78bd..20c6c28291 100644
--- a/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfiguration.java
+++ b/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfiguration.java
@@ -49,6 +49,8 @@ public class JMXConfiguration {
private String outputpath = ".";
private String report_file = "report.output";
private boolean isreport_mode = false;
+ private String username = null;
+ private String password = null;
public JMXConfiguration(Map map) {
if (checkoptionsetting(CommandLineOptionConstants.JMXCommandLineOptionConstants.HOST_OPTION, map)) {
@@ -61,6 +63,14 @@ public class JMXConfiguration {
this.report_file = optionchecker(CommandLineOptionConstants.JMXCommandLineOptionConstants.REPORT_OPTION, map);
}
+ if (checkoptionsetting(CommandLineOptionConstants.JMXCommandLineOptionConstants.USER_OPTION, map)) {
+
+ this.setUsername(optionchecker(CommandLineOptionConstants.JMXCommandLineOptionConstants.USER_OPTION, map));
+ }
+
+ if (checkoptionsetting(CommandLineOptionConstants.JMXCommandLineOptionConstants.PASSWORD_OPTION, map)) {
+ this.setPassword(optionchecker(CommandLineOptionConstants.JMXCommandLineOptionConstants.PASSWORD_OPTION, map));
+ }
}
@@ -145,4 +155,24 @@ public class JMXConfiguration {
return false;
}
+ public void setUsername(String username)
+ {
+ this.username = username;
+ }
+
+ public String getUsername()
+ {
+ return username;
+ }
+
+ public void setPassword(String password)
+ {
+ this.password = password;
+ }
+
+ public String getPassword()
+ {
+ return password;
+ }
+
}