diff options
| author | Aidan Skinner <aidan@apache.org> | 2009-01-07 13:41:40 +0000 |
|---|---|---|
| committer | Aidan Skinner <aidan@apache.org> | 2009-01-07 13:41:40 +0000 |
| commit | fe2608cba7e91c06c344100a19453891c3914323 (patch) | |
| tree | 5e68899c1c33dad0e393893cbbf3d495749d6fc7 /java/management/tools/qpid-cli/src/org | |
| parent | 76ee84c52925636a638f39d62962c3eb111b9221 (diff) | |
| download | qpid-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/org')
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; + } + } |
