You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/02/26 13:34:14 UTC
svn commit: r1450151 - in /qpid/trunk/qpid/java:
broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/
systests/src/main/java/org/apache/qpid/test/utils/
Author: orudyy
Date: Tue Feb 26 12:34:13 2013
New Revision: 1450151
URL: http://svn.apache.org/r1450151
Log:
QPID-4602: Fix broker startup when default log4j configuration is used and fix java system tests to pass correctly log4j configuration path to the spawn broker if it contains spaces.
Modified:
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelper.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelperTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java?rev=1450151&r1=1450150&r2=1450151&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java Tue Feb 26 12:34:13 2013
@@ -187,7 +187,10 @@ public class JMXManagement extends Abstr
}
new Shutdown(_objectRegistry);
new ServerInformationMBean(_objectRegistry, _broker);
- new LoggingManagementMBean(LoggingManagementFacade.getCurrentInstance(), _objectRegistry);
+ if (LoggingManagementFacade.getCurrentInstance() != null)
+ {
+ new LoggingManagementMBean(LoggingManagementFacade.getCurrentInstance(), _objectRegistry);
+ }
_objectRegistry.start();
}
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelper.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelper.java?rev=1450151&r1=1450150&r2=1450151&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelper.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelper.java Tue Feb 26 12:34:13 2013
@@ -18,6 +18,9 @@
package org.apache.qpid.test.utils;
import java.io.File;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
/**
* Generates the command to start a broker by substituting the tokens
@@ -28,25 +31,49 @@ import java.io.File;
*/
public class BrokerCommandHelper
{
- private String _brokerCommandTemplate;
+ private final List<String> _brokerCommandTemplateAsList;
public BrokerCommandHelper(String brokerCommandTemplate)
{
- _brokerCommandTemplate = brokerCommandTemplate;
+ _brokerCommandTemplateAsList = new LinkedList<String>(Arrays.asList(brokerCommandTemplate.split("\\s+")));
}
- public String getBrokerCommand( int port, String storePath, String storeType, File logConfigFile)
+ public String[] getBrokerCommand( int port, String storePath, String storeType, File logConfigFile)
{
- return _brokerCommandTemplate
+ String[] command = new String[_brokerCommandTemplateAsList.size()];
+ int i=0;
+ for (String commandPart : _brokerCommandTemplateAsList)
+ {
+ command[i] = commandPart
.replace("@PORT", "" + port)
.replace("@STORE_PATH", storePath)
.replace("@STORE_TYPE", storeType)
.replace("@LOG_CONFIG_FILE", '"' + logConfigFile.getAbsolutePath() + '"');
+ i++;
+ }
+ return command;
}
+ private int getBrokerCommandLogOptionIndex(String logOption)
+ {
+ int logOptionIndex = _brokerCommandTemplateAsList.indexOf(logOption);
+ if(logOptionIndex == -1)
+ {
+ throw new RuntimeException("Could not find option " + logOption + " in " + _brokerCommandTemplateAsList);
+ }
+ return logOptionIndex;
+ }
+
+
public void removeBrokerCommandLog4JFile()
{
- int logArgumentPosition = _brokerCommandTemplate.indexOf("-l");
- _brokerCommandTemplate = _brokerCommandTemplate.substring(0, logArgumentPosition - 1);
+ String logOption = "-l";
+ int logOptionIndex = getBrokerCommandLogOptionIndex(logOption);
+ if (logOptionIndex + 1 >= _brokerCommandTemplateAsList.size())
+ {
+ throw new RuntimeException("Could not find log config location");
+ }
+ _brokerCommandTemplateAsList.remove(logOptionIndex);
+ _brokerCommandTemplateAsList.remove(logOptionIndex);
}
}
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelperTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelperTest.java?rev=1450151&r1=1450150&r2=1450151&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelperTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/BrokerCommandHelperTest.java Tue Feb 26 12:34:13 2013
@@ -30,21 +30,32 @@ public class BrokerCommandHelperTest ext
@Override
public void setUp()
{
- when(logConfigFile.getAbsolutePath()).thenReturn("logConfigFile");
+ when(logConfigFile.getAbsolutePath()).thenReturn("log Config File");
}
public void testGetBrokerCommand()
{
- String brokerCommand = _brokerCommandHelper.getBrokerCommand(1, "configFile", "json", logConfigFile);
- assertEquals("Unexpected broker command", "qpid -p 1 -sp configFile -st json -l \"logConfigFile\"", brokerCommand);
+ String[] brokerCommand = _brokerCommandHelper.getBrokerCommand(1, "configFile", "json", logConfigFile);
+
+ String[] expected = { "qpid", "-p", "1", "-sp", "configFile", "-st", "json", "-l", "\"log Config File\"" };
+ assertEquals("Unexpected broker command", 9, brokerCommand.length);
+ for (int i = 0; i < expected.length; i++)
+ {
+ assertEquals("Unexpected command part value at " + i,expected[i], brokerCommand[i] );
+ }
}
public void testRemoveBrokerCommandLog4JFile()
{
_brokerCommandHelper.removeBrokerCommandLog4JFile();
- String brokerCommand = _brokerCommandHelper.getBrokerCommand(1, "configFile", "json", logConfigFile);
+ String[] brokerCommand = _brokerCommandHelper.getBrokerCommand(1, "configFile", "json", logConfigFile);
- assertEquals("The broker command list should not contain a log4j config option",
- "qpid -p 1 -sp configFile -st json", brokerCommand );
+ String[] expected = { "qpid", "-p", "1", "-sp", "configFile", "-st", "json" };
+ assertEquals("Unexpected broker command", 7, brokerCommand.length);
+ for (int i = 0; i < expected.length; i++)
+ {
+ assertEquals("Unexpected command part value at " + i,expected[i], brokerCommand[i] );
+ }
}
+
}
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1450151&r1=1450150&r2=1450151&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java Tue Feb 26 12:34:13 2013
@@ -473,9 +473,9 @@ public class QpidBrokerTestCase extends
// Add the port to QPID_WORK to ensure unique working dirs for multi broker tests
final String qpidWork = getQpidWork(_brokerType, port);
- String cmd = _brokerCommandHelper.getBrokerCommand(port, testConfig, _brokerStoreType, _logConfigFile);
- _logger.info("Starting spawn broker using command: " + cmd);
- ProcessBuilder pb = new ProcessBuilder(cmd.split("\\s+"));
+ String[] cmd = _brokerCommandHelper.getBrokerCommand(port, testConfig, _brokerStoreType, _logConfigFile);
+ _logger.info("Starting spawn broker using command: " + StringUtils.join(cmd, ' '));
+ ProcessBuilder pb = new ProcessBuilder(cmd);
pb.redirectErrorStream(true);
Map<String, String> processEnv = pb.environment();
String qpidHome = System.getProperty(QPID_HOME);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org