Author: kwall
Date: Thu Feb  2 18:57:08 2012
New Revision: 1239759

URL: http://svn.apache.org/viewvc?rev=1239759&view=rev
Log:
QPID-3802: Broker command line processing --help (-h) and --version (-v) no 
longer work

Applied patch from Andrew MacBean <[email protected]>

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
    
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java?rev=1239759&r1=1239758&r2=1239759&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
 Thu Feb  2 18:57:08 2012
@@ -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";

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?rev=1239759&r1=1239758&r2=1239759&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java 
(original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java 
Thu Feb  2 18:57:08 2012
@@ -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()

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java?rev=1239759&r1=1239758&r2=1239759&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java 
(original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java 
Thu Feb  2 18:57:08 2012
@@ -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 QpidTestCa
         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 QpidTestCa
         {
             return _options;
         }
+
+        public CommandLine getCommandLine()
+        {
+            return _commandLine;
+        }
     }
 }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to