summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-02-02 18:57:08 +0000
committerKeith Wall <kwall@apache.org>2012-02-02 18:57:08 +0000
commit317c8a127c4393a3f32820345ae77fbe21d49f73 (patch)
tree3e958ec83e9fbbd4188066c0d859a18523ea4800
parente621511c02b50ef28d5b36bc5b978b17a59b3f30 (diff)
downloadqpid-python-317c8a127c4393a3f32820345ae77fbe21d49f73.tar.gz
QPID-3802: Broker command line processing --help (-h) and --version (-v) no longer work
Applied patch from Andrew MacBean <andymacbean@gmail.com> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1239759 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java3
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java126
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java22
3 files changed, 99 insertions, 52 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
index 5b39df4c94..1f96a24701 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
@@ -30,9 +30,6 @@ import java.util.Set;
public class BrokerOptions
{
- /** serialVersionUID */
- private static final long serialVersionUID = 8051825964945442234L;
-
public static final String DEFAULT_CONFIG_FILE = "etc/config.xml";
public static final String DEFAULT_LOG_CONFIG_FILE = "etc/log4j.xml";
public static final String QPID_HOME = "QPID_HOME";
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
index 6f06500033..ee7426a31f 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
@@ -28,7 +28,8 @@ import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.log4j.Logger;
-
+import org.apache.qpid.common.QpidProperties;
+import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.server.Broker.InitException;
import org.apache.qpid.server.registry.ApplicationRegistry;
@@ -125,7 +126,7 @@ public class Main
OPTIONS.addOption(OPTION_JMX_PORT_CONNECTOR_SERVER);
}
- private CommandLine commandLine;
+ protected CommandLine _commandLine;
public static void main(String[] args)
{
@@ -161,7 +162,7 @@ public class Main
{
try
{
- commandLine = new PosixParser().parse(OPTIONS, args);
+ _commandLine = new PosixParser().parse(OPTIONS, args);
return true;
}
@@ -177,66 +178,93 @@ public class Main
protected void execute() throws Exception
{
- BrokerOptions options = new BrokerOptions();
- String configFile = commandLine.getOptionValue(OPTION_CONFIG_FILE.getOpt());
- if(configFile != null)
+ if (_commandLine.hasOption(OPTION_HELP.getOpt()))
{
- options.setConfigFile(configFile);
+ final HelpFormatter formatter = new HelpFormatter();
+ formatter.printHelp("Qpid", OPTIONS, true);
}
-
- String logWatchConfig = commandLine.getOptionValue(OPTION_LOG_WATCH.getOpt());
- if(logWatchConfig != null)
+ else if (_commandLine.hasOption(OPTION_VERSION.getOpt()))
{
- options.setLogWatchFrequency(Integer.parseInt(logWatchConfig));
- }
+ final StringBuilder protocol = new StringBuilder("AMQP version(s) [major.minor]: ");
+ boolean first = true;
+ for (final ProtocolVersion pv : ProtocolVersion.getSupportedProtocolVersions())
+ {
+ if (first)
+ {
+ first = false;
+ }
+ else
+ {
+ protocol.append(", ");
+ }
- String logConfig = commandLine.getOptionValue(OPTION_LOG_CONFIG_FILE.getOpt());
- if(logConfig != null)
- {
- options.setLogConfigFile(logConfig);
+ protocol.append(pv.getMajorVersion()).append('-').append(pv.getMinorVersion());
+ }
+ System.out.println(QpidProperties.getVersionString() + " (" + protocol + ")");
}
-
- String jmxPortRegistryServer = commandLine.getOptionValue(OPTION_JMX_PORT_REGISTRY_SERVER.getOpt());
- if(jmxPortRegistryServer != null)
+ else
{
- options.setJmxPortRegistryServer(Integer.parseInt(jmxPortRegistryServer));
- }
+ BrokerOptions options = new BrokerOptions();
+ String configFile = _commandLine.getOptionValue(OPTION_CONFIG_FILE.getOpt());
+ if(configFile != null)
+ {
+ options.setConfigFile(configFile);
+ }
- String jmxPortConnectorServer = commandLine.getOptionValue(OPTION_JMX_PORT_CONNECTOR_SERVER.getLongOpt());
- if(jmxPortConnectorServer != null)
- {
- options.setJmxPortConnectorServer(Integer.parseInt(jmxPortConnectorServer));
- }
+ String logWatchConfig = _commandLine.getOptionValue(OPTION_LOG_WATCH.getOpt());
+ if(logWatchConfig != null)
+ {
+ options.setLogWatchFrequency(Integer.parseInt(logWatchConfig));
+ }
- String bindAddr = commandLine.getOptionValue(OPTION_BIND.getOpt());
- if (bindAddr != null)
- {
- options.setBind(bindAddr);
- }
+ String logConfig = _commandLine.getOptionValue(OPTION_LOG_CONFIG_FILE.getOpt());
+ if(logConfig != null)
+ {
+ options.setLogConfigFile(logConfig);
+ }
- String[] portStr = commandLine.getOptionValues(OPTION_PORT.getOpt());
- if(portStr != null)
- {
- parsePortArray(options, portStr, false);
- for(ProtocolExclusion pe : ProtocolExclusion.values())
+ String jmxPortRegistryServer = _commandLine.getOptionValue(OPTION_JMX_PORT_REGISTRY_SERVER.getOpt());
+ if(jmxPortRegistryServer != null)
{
- parsePortArray(options, commandLine.getOptionValues(pe.getExcludeName()), pe);
+ options.setJmxPortRegistryServer(Integer.parseInt(jmxPortRegistryServer));
}
- }
- String[] sslPortStr = commandLine.getOptionValues(OPTION_SSLPORT.getOpt());
- if(sslPortStr != null)
- {
- parsePortArray(options, sslPortStr, true);
- for(ProtocolExclusion pe : ProtocolExclusion.values())
+ String jmxPortConnectorServer = _commandLine.getOptionValue(OPTION_JMX_PORT_CONNECTOR_SERVER.getLongOpt());
+ if(jmxPortConnectorServer != null)
{
- parsePortArray(options, commandLine.getOptionValues(pe.getExcludeName()), pe);
+ options.setJmxPortConnectorServer(Integer.parseInt(jmxPortConnectorServer));
}
- }
-
- setExceptionHandler();
-
- startBroker(options);
+
+ String bindAddr = _commandLine.getOptionValue(OPTION_BIND.getOpt());
+ if (bindAddr != null)
+ {
+ options.setBind(bindAddr);
+ }
+
+ String[] portStr = _commandLine.getOptionValues(OPTION_PORT.getOpt());
+ if(portStr != null)
+ {
+ parsePortArray(options, portStr, false);
+ for(ProtocolExclusion pe : ProtocolExclusion.values())
+ {
+ parsePortArray(options, _commandLine.getOptionValues(pe.getExcludeName()), pe);
+ }
+ }
+
+ String[] sslPortStr = _commandLine.getOptionValues(OPTION_SSLPORT.getOpt());
+ if(sslPortStr != null)
+ {
+ parsePortArray(options, sslPortStr, true);
+ for(ProtocolExclusion pe : ProtocolExclusion.values())
+ {
+ parsePortArray(options, _commandLine.getOptionValues(pe.getExcludeName()), pe);
+ }
+ }
+
+ setExceptionHandler();
+
+ startBroker(options);
+ }
}
protected void setExceptionHandler()
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java
index bdb25a484f..31d5028536 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server;
+import org.apache.commons.cli.CommandLine;
import org.apache.qpid.test.utils.QpidTestCase;
import java.util.EnumSet;
@@ -145,6 +146,22 @@ public class MainTest extends QpidTestCase
assertEquals(9, options.getLogWatchFrequency());
}
+ public void testVersion()
+ {
+ final TestMain main = new TestMain("-v".split("\\s"));
+
+ assertNotNull("Command line not parsed correctly", main.getCommandLine());
+ assertTrue("Parsed command line didnt pick up version option", main.getCommandLine().hasOption("v"));
+ }
+
+ public void testHelp()
+ {
+ final TestMain main = new TestMain("-h".split("\\s"));
+
+ assertNotNull("Command line not parsed correctly", main.getCommandLine());
+ assertTrue("Parsed command line didnt pick up help option", main.getCommandLine().hasOption("h"));
+ }
+
private BrokerOptions startDummyMain(String commandLine)
{
return (new TestMain(commandLine.split("\\s"))).getOptions();
@@ -174,5 +191,10 @@ public class MainTest extends QpidTestCase
{
return _options;
}
+
+ public CommandLine getCommandLine()
+ {
+ return _commandLine;
+ }
}
}