summaryrefslogtreecommitdiff
path: root/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java')
-rwxr-xr-xqpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java151
1 files changed, 26 insertions, 125 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
index 91dcf48001..2ffca48f56 100755
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
@@ -22,7 +22,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -48,8 +47,6 @@ import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
@@ -66,10 +63,10 @@ import org.apache.qpid.server.BrokerOptions;
import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.plugin.MessageStoreFactory;
import org.apache.qpid.server.protocol.AmqpProtocolVersion;
-import org.apache.qpid.server.store.MessageStoreConstants;
-import org.apache.qpid.server.store.MessageStoreCreator;
+import org.apache.qpid.server.store.MemoryMessageStore;
+import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.virtualhost.StandardVirtualHostFactory;
import org.apache.qpid.url.URLSyntaxException;
import org.apache.qpid.util.FileUtils;
import org.apache.qpid.util.SystemUtils;
@@ -101,15 +98,12 @@ public class QpidBrokerTestCase extends QpidTestCase
private Map<String, String> _propertiesSetForBroker = new HashMap<String, String>();
private Map<Integer, TestBrokerConfiguration> _brokerConfigurations;
- private XMLConfiguration _testVirtualhosts = new XMLConfiguration();
protected static final String INDEX = "index";
protected static final String CONTENT = "content";
private static final String DEFAULT_INITIAL_CONTEXT = "org.apache.qpid.jndi.PropertiesFileInitialContextFactory";
- private static Map<String, String> supportedStoresClassToTypeMapping = new HashMap<String, String>();
-
static
{
String initialContext = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
@@ -118,17 +112,9 @@ public class QpidBrokerTestCase extends QpidTestCase
{
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, DEFAULT_INITIAL_CONTEXT);
}
-
- MessageStoreCreator messageStoreCreator = new MessageStoreCreator();
- Collection<MessageStoreFactory> factories = messageStoreCreator.getFactories();
- for (MessageStoreFactory messageStoreFactory : factories)
- {
- supportedStoresClassToTypeMapping.put(messageStoreFactory.createMessageStore().getClass().getName(), messageStoreFactory.getType());
- }
}
// system properties
- private static final String TEST_VIRTUALHOSTS = "test.virtualhosts";
private static final String BROKER_LANGUAGE = "broker.language";
protected static final String BROKER_TYPE = "broker.type";
private static final String BROKER_COMMAND = "broker.command";
@@ -249,7 +235,16 @@ public class QpidBrokerTestCase extends QpidTestCase
configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.PORT, actualPort);
configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_RMI_PORT, Port.PORT, getManagementPort(actualPort));
configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.PORT, getManagementPort(actualPort) + JMXPORT_CONNECTORSERVER_OFFSET);
+
+ String workDir = System.getProperty("QPID_WORK") + File.separator + TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST + File.separator + actualPort;
+ Map<String, Object> virtualHostSettings = configuration.getObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST);
+
+ @SuppressWarnings("unchecked")
+ Map<String, Object> storeSettings = (Map<String, Object>)virtualHostSettings.get(VirtualHost.MESSAGE_STORE_SETTINGS);
+ storeSettings.put(MessageStore.STORE_PATH, workDir);
+ configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, storeSettings);
}
+
return configuration;
}
@@ -420,7 +415,7 @@ public class QpidBrokerTestCase extends QpidTestCase
{
int actualPort = getPort(port);
TestBrokerConfiguration configuration = getBrokerConfiguration(actualPort);
- startBroker(actualPort, configuration, _testVirtualhosts, managementMode);
+ startBroker(actualPort, configuration, managementMode);
}
protected File getBrokerCommandLog4JFile()
@@ -434,16 +429,14 @@ public class QpidBrokerTestCase extends QpidTestCase
_logger.info("Modified log config file to: " + file);
}
- public void startBroker(int port, TestBrokerConfiguration testConfiguration, XMLConfiguration virtualHosts) throws Exception
+ public void startBroker(int port, TestBrokerConfiguration testConfiguration) throws Exception
{
- startBroker(port, testConfiguration, virtualHosts, false);
+ startBroker(port, testConfiguration, false);
}
- public void startBroker(int port, TestBrokerConfiguration testConfiguration, XMLConfiguration virtualHosts, boolean managementMode) throws Exception
+ public void startBroker(int port, TestBrokerConfiguration testConfiguration, boolean managementMode) throws Exception
{
port = getPort(port);
- String testConfig = saveTestConfiguration(port, testConfiguration);
- String virtualHostsConfig = saveTestVirtualhosts(port, virtualHosts);
if(_brokers.get(port) != null)
{
@@ -451,11 +444,10 @@ public class QpidBrokerTestCase extends QpidTestCase
}
Set<Integer> portsUsedByBroker = guessAllPortsUsedByBroker(port);
+ String testConfig = saveTestConfiguration(port, testConfiguration);
if (_brokerType.equals(BrokerType.INTERNAL) && !existingInternalBroker())
{
- _logger.info("Set test.virtualhosts property to: " + virtualHostsConfig);
- setSystemProperty(TEST_VIRTUALHOSTS, virtualHostsConfig);
setSystemProperty(BrokerProperties.PROPERTY_USE_CUSTOM_RMI_SOCKET_FACTORY, "false");
BrokerOptions options = new BrokerOptions();
@@ -549,7 +541,6 @@ public class QpidBrokerTestCase extends QpidTestCase
setSystemProperty("root.logging.level");
setSystemProperty(BrokerProperties.PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_EXCLUDES);
setSystemProperty(BrokerProperties.PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_INCLUDES);
- setSystemProperty(TEST_VIRTUALHOSTS, virtualHostsConfig);
// Add all the specified system properties to QPID_OPTS
if (!_propertiesSetForBroker.isEmpty())
@@ -651,25 +642,6 @@ public class QpidBrokerTestCase extends QpidTestCase
return _output + File.separator + getTestQueueName() + "-" + port + "-config";
}
- public String getTestVirtualhostsFile(int port)
- {
- return _output + File.separator + getTestQueueName() + "-" + port + "-virtualhosts.xml";
- }
-
- private String relativeToQpidHome(String file)
- {
- _logger.debug("Converting path to be relative to QPID_HOME: " + file);
-
- final String qpidHome = System.getProperty(QPID_HOME,"QPID_HOME");
- _logger.debug("QPID_HOME is: " + qpidHome);
-
- if(!file.startsWith(qpidHome)) {
- throw new RuntimeException("Provided path is not a child of the QPID_HOME directory: " + qpidHome);
- }
-
- return file.replace(qpidHome + File.separator,"");
- }
-
protected String getPathRelativeToWorkingDirectory(String file)
{
File configLocation = new File(file);
@@ -715,23 +687,6 @@ public class QpidBrokerTestCase extends QpidTestCase
return relative;
}
- protected String saveTestVirtualhosts(int port, XMLConfiguration virtualHostConfiguration) throws ConfigurationException
- {
- // Specify the test virtualhosts file
- String testVirtualhosts = getTestVirtualhostsFile(port);
- String relative = relativeToQpidHome(testVirtualhosts);
-
- _logger.info("Path to virtualhosts configuration: " + testVirtualhosts);
-
- // Create the file if configuration does not exist
- if (virtualHostConfiguration.isEmpty())
- {
- virtualHostConfiguration.addProperty("__ignore", "true");
- }
- virtualHostConfiguration.save(testVirtualhosts);
- return relative;
- }
-
protected void cleanBrokerWork(final String qpidWork)
{
if (qpidWork != null)
@@ -872,68 +827,34 @@ public class QpidBrokerTestCase extends QpidTestCase
* Creates a new virtual host within the test virtualhost file.
* @param brokerPort broker port
* @param virtualHostName virtual host name
- *
- * @throws ConfigurationException
*/
- protected void createTestVirtualHost(int brokerPort, String virtualHostName) throws ConfigurationException
+ protected void createTestVirtualHost(int brokerPort, String virtualHostName)
{
- String storeClassName = getTestProfileMessageStoreClassName();
-
- _testVirtualhosts.setProperty("virtualhost.name(-1)", virtualHostName);
- _testVirtualhosts.setProperty("virtualhost." + virtualHostName + ".store.class", storeClassName);
-
+ String storeType = getTestProfileMessageStoreType();
String storeDir = null;
if (System.getProperty("profile", "").startsWith("java-dby-mem"))
{
storeDir = ":memory:";
}
- else if (!MEMORY_STORE_CLASS_NAME.equals(storeClassName))
- {
- storeDir = "${QPID_WORK}" + File.separator + virtualHostName + "-store";
- }
-
- if (storeDir != null)
+ else if (!MemoryMessageStore.TYPE.equals(storeType))
{
- _testVirtualhosts.setProperty("virtualhost." + virtualHostName + ".store." + MessageStoreConstants.ENVIRONMENT_PATH_PROPERTY, storeDir);
+ storeDir = "${QPID_WORK}" + File.separator + virtualHostName + File.separator + brokerPort;
}
// add new virtual host configuration to the broker store
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(VirtualHost.NAME, virtualHostName);
- attributes.put(VirtualHost.CONFIG_PATH, System.getProperty("broker.virtualhosts-config"));
+ attributes.put(VirtualHost.TYPE, StandardVirtualHostFactory.TYPE);
+ Map<String, Object> messageStoreSettings = new HashMap<String, Object>();
+ messageStoreSettings.put(MessageStore.STORE_TYPE, storeType);
+ messageStoreSettings.put(MessageStore.STORE_PATH, storeDir);
+ attributes.put(VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings );
int port = getPort(brokerPort);
getBrokerConfiguration(port).addVirtualHostConfiguration(attributes);
}
/**
- * Set a configuration Property for this test run.
- *
- * This creates a new configuration based on the current configuration
- * with the specified property change.
- *
- * Multiple calls to this method will result in multiple temporary
- * configuration files being created.
- *
- * @param property the configuration property to set
- * @param value the new value
- *
- * @throws ConfigurationException when loading the current config file
- */
- public void setVirtualHostConfigurationProperty(String property, String value) throws ConfigurationException
- {
- // Choose which file to write the property to based on prefix.
- if (property.startsWith("virtualhosts"))
- {
- _testVirtualhosts.setProperty(StringUtils.substringAfter(property, "virtualhosts."), value);
- }
- else
- {
- throw new ConfigurationException("Cannot set broker configuration as property");
- }
- }
-
- /**
* Set a System property that is to be applied only to the external test
* broker.
*
@@ -1468,24 +1389,4 @@ public class QpidBrokerTestCase extends QpidTestCase
return FAILING_PORT;
}
- public XMLConfiguration getTestVirtualhosts()
- {
- return _testVirtualhosts;
- }
-
- public void setTestVirtualhosts(XMLConfiguration testVirtualhosts)
- {
- _testVirtualhosts = testVirtualhosts;
- }
-
- public String getTestProfileMessageStoreType()
- {
- final String storeClass = getTestProfileMessageStoreClassName();
- /* if (storeClass == null)
- {
- return "Memory";
- }*/
- return supportedStoresClassToTypeMapping.get(storeClass);
- }
-
}