diff options
16 files changed, 230 insertions, 48 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java index dd0fde5f7a..25322c7a71 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java @@ -124,7 +124,8 @@ public class Broker } BrokerConfigurationStoreCreator storeCreator = new BrokerConfigurationStoreCreator(); - ConfigurationEntryStore store = storeCreator.createStore(storeLocation, storeType, options.getInitialConfigurationLocation(), options.isOverwriteConfigurationStore()); + ConfigurationEntryStore store = storeCreator.createStore(storeLocation, storeType, options.getInitialConfigurationLocation(), + options.isOverwriteConfigurationStore(), options.getConfigProperties()); if (options.isManagementMode()) { 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 5c2a8fd090..3ba4ae6e91 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 @@ -21,6 +21,10 @@ package org.apache.qpid.server; import java.io.File; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.apache.qpid.server.configuration.BrokerProperties; import org.apache.qpid.server.configuration.ConfigurationEntryStore; @@ -29,6 +33,16 @@ import org.apache.qpid.server.util.StringUtil; public class BrokerOptions { + public static final String QPID_AMQP_PORT = "qpid.amqp_port"; + public static final String QPID_HTTP_PORT = "qpid.http_port"; + public static final String QPID_RMI_PORT = "qpid.rmi_port"; + public static final String QPID_JMX_PORT = "qpid.jmx_port"; + + public static final String DEFAULT_AMQP_PORT_NUMBER = "5672"; + public static final String DEFAULT_HTTP_PORT_NUMBER = "8080"; + public static final String DEFAULT_RMI_PORT_NUMBER = "8999"; + public static final String DEFAULT_JMX_PORT_NUMBER = "9099"; + public static final String DEFAULT_INITIAL_CONFIG_NAME = "initial-config.json"; public static final String DEFAULT_STORE_TYPE = "json"; public static final String DEFAULT_CONFIG_NAME_PREFIX = "config"; @@ -55,6 +69,7 @@ public class BrokerOptions private String _workingDir; private boolean _skipLoggingConfiguration; private boolean _overwriteConfigurationStore; + private Map<String, String> _configProperties = new HashMap<String,String>(); public String getLogConfigFile() { @@ -289,4 +304,41 @@ public class BrokerOptions { _skipLoggingConfiguration = skipLoggingConfiguration; } + + /** + * Sets the named configuration property to the given value. + * + * Passing a null value causes removal of a previous value, and restores any default there may have been. + */ + public void setConfigProperty(String name, String value) + { + if(value == null) + { + _configProperties.remove(name); + } + else + { + _configProperties.put(name, value); + } + } + + /** + * Get an un-editable copy of the configuration properties, representing + * the user-configured values as well as any defaults for properties + * not otherwise configured. + * + * Subsequent property changes are not reflected in this map. + */ + public Map<String,String> getConfigProperties() + { + ConcurrentHashMap<String, String> properties = new ConcurrentHashMap<String,String>(); + properties.putAll(_configProperties); + + properties.putIfAbsent(QPID_AMQP_PORT, String.valueOf(DEFAULT_AMQP_PORT_NUMBER)); + properties.putIfAbsent(QPID_HTTP_PORT, String.valueOf(DEFAULT_HTTP_PORT_NUMBER)); + properties.putIfAbsent(QPID_RMI_PORT, String.valueOf(DEFAULT_RMI_PORT_NUMBER)); + properties.putIfAbsent(QPID_JMX_PORT, String.valueOf(DEFAULT_JMX_PORT_NUMBER)); + + return Collections.unmodifiableMap(properties); + } } 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 46612613dd..03514939ec 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 @@ -60,6 +60,10 @@ public class Main " optionally specified file path, or as " + BrokerOptions.DEFAULT_INITIAL_CONFIG_NAME + " in the current directory") .withLongOpt("create-initial-config").create("cic"); + private static final Option OPTION_CONFIGURATION_PROPERTY = OptionBuilder.withArgName("name=value").hasArg() + .withDescription("set a configuration property to use when resolving variables in the broker configuration store, with format 'name=value'") + .withLongOpt("config-property").create("prop"); + private static final Option OPTION_LOG_CONFIG_FILE = OptionBuilder.withArgName("file").hasArg() .withDescription("use the specified log4j xml configuration file. By " @@ -103,6 +107,7 @@ public class Main OPTIONS.addOption(OPTION_MM_CONNECTOR_PORT); OPTIONS.addOption(OPTION_MM_HTTP_PORT); OPTIONS.addOption(OPTION_MM_PASSWORD); + OPTIONS.addOption(OPTION_CONFIGURATION_PROPERTY); } protected CommandLine _commandLine; @@ -210,6 +215,28 @@ public class Main } else { + String[] configPropPairs = _commandLine.getOptionValues(OPTION_CONFIGURATION_PROPERTY.getOpt()); + if(configPropPairs != null && configPropPairs.length > 0) + { + for(String s : configPropPairs) + { + int firstEquals = s.indexOf("="); + if(firstEquals == -1) + { + throw new IllegalArgumentException("Configuration property argument is not of the format name=value: " + s); + } + String name = s.substring(0, firstEquals); + String value = s.substring(firstEquals + 1); + + if(name.equals("")) + { + throw new IllegalArgumentException("Configuration property argument is not of the format name=value: " + s); + } + + options.setConfigProperty(name, value); + } + } + String configurationStore = _commandLine.getOptionValue(OPTION_CONFIGURATION_STORE_PATH.getOpt()); if (configurationStore != null) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java index 8ce74ff334..999602bc2d 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java @@ -61,17 +61,18 @@ public class BrokerConfigurationStoreCreator * @param storeType store type * @param initialConfigLocation initial store location * @param overwrite whether to overwrite an existing configuration store with the initial configuration + * @param configProperties a map of configuration properties the store can use to resolve configuration variables * @throws IllegalConfigurationException if store type is unknown */ - public ConfigurationEntryStore createStore(String storeLocation, String storeType, String initialConfigLocation, boolean overwrite) + public ConfigurationEntryStore createStore(String storeLocation, String storeType, String initialConfigLocation, boolean overwrite, Map<String, String> configProperties) { - ConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(initialConfigLocation, null); + ConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(initialConfigLocation, null, configProperties); ConfigurationStoreFactory factory = _factories.get(storeType.toLowerCase()); if (factory == null) { throw new IllegalConfigurationException("Unknown store type: " + storeType); } - return factory.createStore(storeLocation, initialStore, overwrite); + return factory.createStore(storeLocation, initialStore, overwrite, configProperties); } public Collection<String> getStoreTypes() diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStore.java index 5f7e68b62a..cec75e5015 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStore.java @@ -1,6 +1,7 @@ package org.apache.qpid.server.configuration.store; import java.io.File; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -15,14 +16,9 @@ public class JsonConfigurationEntryStore extends MemoryConfigurationEntryStore private File _storeFile; - public JsonConfigurationEntryStore(String storeLocation, ConfigurationEntryStore initialStore) + public JsonConfigurationEntryStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite, Map<String, String> configProperties) { - this(storeLocation, initialStore, false); - } - - public JsonConfigurationEntryStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite) - { - super(); + super(configProperties); _storeFile = new File(storeLocation); if(_storeFile.isDirectory()) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java index 6ee26c0726..24e0e3bbff 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java @@ -48,6 +48,7 @@ import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Model; import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.util.Strings; +import org.apache.qpid.util.Strings.ChainedResolver; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParser; @@ -77,18 +78,22 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore private boolean _generatedObjectIdDuringLoad; - protected MemoryConfigurationEntryStore() + private ChainedResolver _resolver; + + protected MemoryConfigurationEntryStore(Map<String, String> configProperties) { _objectMapper = new ObjectMapper(); _objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); _objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true); _entries = new HashMap<UUID, ConfigurationEntry>(); _relationshipClasses = buildRelationshipClassMap(); + _resolver = new Strings.ChainedResolver(Strings.SYSTEM_RESOLVER, + new Strings.MapResolver(configProperties)); } - MemoryConfigurationEntryStore(String json) + MemoryConfigurationEntryStore(String json, Map<String, String> configProperties) { - this(); + this(configProperties); if (json == null || "".equals(json)) { createRootEntry(); @@ -99,9 +104,9 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore } } - public MemoryConfigurationEntryStore(String initialStoreLocation, ConfigurationEntryStore initialStore) + public MemoryConfigurationEntryStore(String initialStoreLocation, ConfigurationEntryStore initialStore, Map<String, String> configProperties) { - this(); + this(configProperties); if (initialStore == null && (initialStoreLocation == null || "".equals(initialStoreLocation) )) { throw new IllegalConfigurationException("Cannot instantiate the memory broker store as neither initial store nor initial store location is provided"); @@ -609,7 +614,7 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore } else { - return Strings.expand(node.asText()); + return Strings.expand(node.asText(), _resolver); } } else if (node.isArray()) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java index 7c7d3e2071..d4e0a23b1b 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.server.configuration.store.factory; +import java.util.Map; + import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.configuration.store.JsonConfigurationEntryStore; import org.apache.qpid.server.plugin.ConfigurationStoreFactory; @@ -27,9 +29,9 @@ import org.apache.qpid.server.plugin.ConfigurationStoreFactory; public class JsonConfigurationStoreFactory implements ConfigurationStoreFactory { @Override - public ConfigurationEntryStore createStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite) + public ConfigurationEntryStore createStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite, Map<String, String> configProperties) { - return new JsonConfigurationEntryStore(storeLocation, initialStore, overwrite); + return new JsonConfigurationEntryStore(storeLocation, initialStore, overwrite, configProperties); } @Override @@ -37,5 +39,4 @@ public class JsonConfigurationStoreFactory implements ConfigurationStoreFactory { return JsonConfigurationEntryStore.STORE_TYPE; } - } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java index ed952ff475..fd52b2c93e 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.server.configuration.store.factory; +import java.util.Map; + import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.configuration.store.MemoryConfigurationEntryStore; import org.apache.qpid.server.plugin.ConfigurationStoreFactory; @@ -27,9 +29,9 @@ import org.apache.qpid.server.plugin.ConfigurationStoreFactory; public class MemoryConfigurationStoreFactory implements ConfigurationStoreFactory { @Override - public ConfigurationEntryStore createStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite) + public ConfigurationEntryStore createStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite, Map<String, String> configProperties) { - return new MemoryConfigurationEntryStore(null, initialStore); + return new MemoryConfigurationEntryStore(null, initialStore, configProperties); } @Override @@ -37,5 +39,4 @@ public class MemoryConfigurationStoreFactory implements ConfigurationStoreFacto { return MemoryConfigurationEntryStore.STORE_TYPE; } - } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java index c451ae2adc..d964578cb7 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.server.plugin; +import java.util.Map; + import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.configuration.IllegalConfigurationException; @@ -39,7 +41,8 @@ public interface ConfigurationStoreFactory * @param storeLocation store location * @param initialStore initial store * @param overwrite overwrite existing store with initial store + * @param configProperties a map of configuration properties the store can use to resolve configuration variables * @throws IllegalConfigurationException if store cannot be opened in the given location */ - public ConfigurationEntryStore createStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite); + public ConfigurationEntryStore createStore(String storeLocation, ConfigurationEntryStore initialStore, boolean overwrite, Map<String, String> configProperties); } diff --git a/qpid/java/broker/src/main/resources/initial-config.json b/qpid/java/broker/src/main/resources/initial-config.json index f8b724d351..e510c34178 100644 --- a/qpid/java/broker/src/main/resources/initial-config.json +++ b/qpid/java/broker/src/main/resources/initial-config.json @@ -29,20 +29,20 @@ } ], "ports" : [ { "name" : "AMQP", - "port" : 5672, + "port" : "${qpid.amqp_port}", "authenticationProvider" : "passwordFile" }, { "name" : "HTTP", - "port" : 8080, + "port" : "${qpid.http_port}", "authenticationProvider" : "passwordFile", "protocols" : [ "HTTP" ] }, { "name" : "RMI_REGISTRY", - "port" : 8999, + "port" : "${qpid.rmi_port}", "protocols" : [ "RMI" ] }, { "name" : "JMX_CONNECTOR", - "port" : 9099, + "port" : "${qpid.jmx_port}", "authenticationProvider" : "passwordFile", "protocols" : [ "JMX_RMI" ] }], diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java index 08031c36a4..4b7c99baf1 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java @@ -21,6 +21,7 @@ package org.apache.qpid.server; import java.io.File; +import java.util.Map; import org.apache.qpid.test.utils.QpidTestCase; @@ -226,4 +227,47 @@ public class BrokerOptionsTest extends QpidTestCase _options.setManagementModePassword("test"); assertEquals("Unexpected management mode password", "test", _options.getManagementModePassword()); } + + public void testGetDefaultConfigProperties() + { + Map<String,String> props = _options.getConfigProperties(); + + assertEquals("unexpected number of entries", 4, props.keySet().size()); + + assertEquals(BrokerOptions.DEFAULT_AMQP_PORT_NUMBER, props.get(BrokerOptions.QPID_AMQP_PORT)); + assertEquals(BrokerOptions.DEFAULT_HTTP_PORT_NUMBER, props.get(BrokerOptions.QPID_HTTP_PORT)); + assertEquals(BrokerOptions.DEFAULT_RMI_PORT_NUMBER, props.get(BrokerOptions.QPID_RMI_PORT)); + assertEquals(BrokerOptions.DEFAULT_JMX_PORT_NUMBER, props.get(BrokerOptions.QPID_JMX_PORT)); + } + + public void testSetDefaultConfigProperties() + { + String oldPort = BrokerOptions.DEFAULT_AMQP_PORT_NUMBER; + String newPort = "12345"; + + _options.setConfigProperty(BrokerOptions.QPID_AMQP_PORT, newPort); + Map<String,String> props = _options.getConfigProperties(); + assertEquals("unexpected number of entries", 4, props.keySet().size()); + assertEquals(newPort, props.get(BrokerOptions.QPID_AMQP_PORT)); + assertEquals(BrokerOptions.DEFAULT_HTTP_PORT_NUMBER, props.get(BrokerOptions.QPID_HTTP_PORT)); + assertEquals(BrokerOptions.DEFAULT_RMI_PORT_NUMBER, props.get(BrokerOptions.QPID_RMI_PORT)); + assertEquals(BrokerOptions.DEFAULT_JMX_PORT_NUMBER, props.get(BrokerOptions.QPID_JMX_PORT)); + + _options.setConfigProperty(BrokerOptions.QPID_AMQP_PORT, null); + props = _options.getConfigProperties(); + assertEquals("unexpected number of entries", 4, props.keySet().size()); + assertEquals(oldPort, props.get(BrokerOptions.QPID_AMQP_PORT)); + assertEquals(BrokerOptions.DEFAULT_HTTP_PORT_NUMBER, props.get(BrokerOptions.QPID_HTTP_PORT)); + assertEquals(BrokerOptions.DEFAULT_RMI_PORT_NUMBER, props.get(BrokerOptions.QPID_RMI_PORT)); + assertEquals(BrokerOptions.DEFAULT_JMX_PORT_NUMBER, props.get(BrokerOptions.QPID_JMX_PORT)); + + _options.setConfigProperty("name", "value"); + props = _options.getConfigProperties(); + assertEquals("unexpected number of entries", 5, props.keySet().size()); + assertEquals(oldPort, props.get(BrokerOptions.QPID_AMQP_PORT)); + assertEquals(BrokerOptions.DEFAULT_HTTP_PORT_NUMBER, props.get(BrokerOptions.QPID_HTTP_PORT)); + assertEquals(BrokerOptions.DEFAULT_RMI_PORT_NUMBER, props.get(BrokerOptions.QPID_RMI_PORT)); + assertEquals(BrokerOptions.DEFAULT_JMX_PORT_NUMBER, props.get(BrokerOptions.QPID_JMX_PORT)); + assertEquals("value", props.get("name")); + } } 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 d7579e2b2a..7e451fca86 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 @@ -21,6 +21,7 @@ package org.apache.qpid.server; import java.io.File; +import java.util.Map; import org.apache.commons.cli.CommandLine; import org.apache.qpid.server.configuration.BrokerProperties; @@ -33,6 +34,8 @@ import org.apache.qpid.test.utils.QpidTestCase; */ public class MainTest extends QpidTestCase { + private Exception _startupException; + public void testNoOptionsSpecified() { BrokerOptions options = startDummyMain(""); @@ -193,6 +196,40 @@ public class MainTest extends QpidTestCase assertNotNull(options.getManagementModePassword()); } + public void testSetConfigProperties() + { + //short name + String newPort = "12345"; + BrokerOptions options = startDummyMain("-prop name=value -prop " + BrokerOptions.QPID_AMQP_PORT + "=" + newPort); + + Map<String, String> props = options.getConfigProperties(); + + assertEquals(newPort, props.get(BrokerOptions.QPID_AMQP_PORT)); + assertEquals("value", props.get("name")); + + //long name + newPort = "678910"; + options = startDummyMain("--config-property name2=value2 --config-property " + BrokerOptions.QPID_AMQP_PORT + "=" + newPort); + + props = options.getConfigProperties(); + + assertEquals(newPort, props.get(BrokerOptions.QPID_AMQP_PORT)); + assertEquals("value2", props.get("name2")); + } + + public void testSetConfigPropertiesInvalidFormat() + { + //missing equals + startDummyMain("-prop namevalue"); + assertTrue("expected exception did not occur", + _startupException instanceof IllegalArgumentException); + + //no name specified + startDummyMain("-prop =value"); + assertTrue("expected exception did not occur", + _startupException instanceof IllegalArgumentException); + } + private BrokerOptions startDummyMain(String commandLine) { return (new TestMain(commandLine.split("\\s"))).getOptions(); @@ -208,6 +245,19 @@ public class MainTest extends QpidTestCase } @Override + protected void execute() + { + try + { + super.execute(); + } + catch(Exception re) + { + MainTest.this._startupException = re; + } + } + + @Override protected void startBroker(BrokerOptions options) { _options = options; diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java index 7555a5632c..8fc7d99246 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java @@ -22,6 +22,7 @@ package org.apache.qpid.server.configuration; import java.io.File; import java.io.StringWriter; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -73,11 +74,11 @@ public class BrokerConfigurationStoreCreatorTest extends QpidTestCase public void testCreateJsonStore() { - ConfigurationEntryStore store = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, false); + ConfigurationEntryStore store = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, false, new BrokerOptions().getConfigProperties()); assertNotNull("Store was not created", store); assertTrue("File should exists", _userStoreLocation.exists()); assertTrue("File size should be greater than 0", _userStoreLocation.length() > 0); - JsonConfigurationEntryStore jsonStore = new JsonConfigurationEntryStore(_userStoreLocation.getAbsolutePath(), null); + JsonConfigurationEntryStore jsonStore = new JsonConfigurationEntryStore(_userStoreLocation.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); Set<UUID> childrenIds = jsonStore.getRootEntry().getChildrenIds(); assertFalse("Unexpected children: " + childrenIds, childrenIds.isEmpty()); } @@ -112,11 +113,11 @@ public class BrokerConfigurationStoreCreatorTest extends QpidTestCase File _initialStoreFile = TestFileUtils.createTempFile(this, ".json", brokerJson); - ConfigurationEntryStore store = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", _initialStoreFile.getAbsolutePath(), false); + ConfigurationEntryStore store = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", _initialStoreFile.getAbsolutePath(), false, Collections.<String,String>emptyMap()); assertNotNull("Store was not created", store); assertTrue("File should exists", _userStoreLocation.exists()); assertTrue("File size should be greater than 0", _userStoreLocation.length() > 0); - JsonConfigurationEntryStore jsonStore = new JsonConfigurationEntryStore(_userStoreLocation.getAbsolutePath(), null); + JsonConfigurationEntryStore jsonStore = new JsonConfigurationEntryStore(_userStoreLocation.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); ConfigurationEntry entry = jsonStore.getRootEntry(); assertEquals("Unexpected root id", testBrokerId, entry.getId()); Map<String, Object> attributes = entry.getAttributes(); @@ -128,13 +129,13 @@ public class BrokerConfigurationStoreCreatorTest extends QpidTestCase if(overwrite) { - ConfigurationEntryStore overwrittenStore = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, true); + ConfigurationEntryStore overwrittenStore = _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "json", BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, true, new BrokerOptions().getConfigProperties()); assertNotNull("Store was not created", overwrittenStore); assertTrue("File should exists", _userStoreLocation.exists()); assertTrue("File size should be greater than 0", _userStoreLocation.length() > 0); //check the contents reflect the test store content having been overwritten with the default store - JsonConfigurationEntryStore reopenedOverwrittenStore = new JsonConfigurationEntryStore(_userStoreLocation.getAbsolutePath(), null, false); + JsonConfigurationEntryStore reopenedOverwrittenStore = new JsonConfigurationEntryStore(_userStoreLocation.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); entry = reopenedOverwrittenStore.getRootEntry(); assertFalse("Root id did not change, store content was not overwritten", testBrokerId.equals(entry.getId())); attributes = entry.getAttributes(); @@ -150,7 +151,7 @@ public class BrokerConfigurationStoreCreatorTest extends QpidTestCase { try { - _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "derby", null, false); + _storeCreator.createStore(_userStoreLocation.getAbsolutePath(), "other", null, false, Collections.<String,String>emptyMap()); fail("Store is not yet supported"); } catch(IllegalConfigurationException e) diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java index b30508ee0b..9ee93a345f 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java @@ -42,7 +42,7 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest protected ConfigurationEntryStore createStore(UUID brokerId, Map<String, Object> brokerAttributes) throws Exception { _storeFile = createStoreFile(brokerId, brokerAttributes); - JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null); + JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); return store; } @@ -83,7 +83,7 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest attributes, brokerConfigEntry.getChildrenIds(), store); store.save(updatedBrokerEntry); - JsonConfigurationEntryStore store2 = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null); + JsonConfigurationEntryStore store2 = new JsonConfigurationEntryStore(_storeFile.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); assertEquals("Unresolved default virtualhost value", defaultVhost, store2.getRootEntry().getAttributes().get(Broker.DEFAULT_VIRTUAL_HOST)); } @@ -93,7 +93,7 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest File file = TestFileUtils.createTempFile(this, ".json"); try { - new JsonConfigurationEntryStore(file.getAbsolutePath(), null); + new JsonConfigurationEntryStore(file.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); fail("Cannot create a new store without initial store"); } catch(IllegalConfigurationException e) @@ -109,7 +109,7 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest brokerAttributes.put(Broker.NAME, getTestName()); File file = createStoreFile(brokerId, brokerAttributes); - JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(file.getAbsolutePath(), null); + JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(file.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); ConfigurationEntry root = store.getRootEntry(); assertNotNull("Root entry is not found", root); assertEquals("Unexpected root entry", brokerId, root.getId()); @@ -127,10 +127,10 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest brokerAttributes.put(Broker.NAME, getTestName()); File initialStoreFile = createStoreFile(brokerId, brokerAttributes); - JsonConfigurationEntryStore initialStore = new JsonConfigurationEntryStore(initialStoreFile.getAbsolutePath(), null); + JsonConfigurationEntryStore initialStore = new JsonConfigurationEntryStore(initialStoreFile.getAbsolutePath(), null, false, Collections.<String,String>emptyMap()); File storeFile = TestFileUtils.createTempFile(this, ".json"); - JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(storeFile.getAbsolutePath(), initialStore); + JsonConfigurationEntryStore store = new JsonConfigurationEntryStore(storeFile.getAbsolutePath(), initialStore, false, Collections.<String,String>emptyMap()); ConfigurationEntry root = store.getRootEntry(); assertNotNull("Root entry is not found", root); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java index 314e673c08..1ed8433034 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java @@ -24,7 +24,7 @@ public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTe broker.putAll(brokerAttributes); ObjectMapper mapper = new ObjectMapper(); - return new MemoryConfigurationEntryStore(mapper.writeValueAsString(broker)); + return new MemoryConfigurationEntryStore(mapper.writeValueAsString(broker), Collections.<String,String>emptyMap()); } @Override @@ -38,7 +38,7 @@ public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTe { try { - new MemoryConfigurationEntryStore(null, null); + new MemoryConfigurationEntryStore(null, null, Collections.<String,String>emptyMap()); fail("Cannot create a memory store without either initial store or path to an initial store file"); } catch(IllegalConfigurationException e) @@ -49,7 +49,7 @@ public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTe public void testCreateWithNullJson() { - MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null); + MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, Collections.<String,String>emptyMap()); ConfigurationEntry root = store.getRootEntry(); assertNotNull("Root entry is not found", root); @@ -61,7 +61,7 @@ public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTe Map<String, Object> brokerAttributes = new HashMap<String, Object>(); brokerAttributes.put(Broker.NAME, getTestName()); MemoryConfigurationEntryStore initialStoreFile = (MemoryConfigurationEntryStore)createStore(brokerId, brokerAttributes); - MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, initialStoreFile); + MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, initialStoreFile, Collections.<String,String>emptyMap()); ConfigurationEntry root = store.getRootEntry(); assertNotNull("Root entry is not found", root); @@ -82,11 +82,11 @@ public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTe setTestSystemProperty("QPID_HOME", TMP_FOLDER); setTestSystemProperty("QPID_WORK", TMP_FOLDER + File.separator + "work"); } - MemoryConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, null); + MemoryConfigurationEntryStore initialStore = new MemoryConfigurationEntryStore(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, null, new BrokerOptions().getConfigProperties()); ConfigurationEntry initialStoreRoot = initialStore.getRootEntry(); assertNotNull("Initial store root entry is not found", initialStoreRoot); - MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, initialStore); + MemoryConfigurationEntryStore store = new MemoryConfigurationEntryStore(null, initialStore, Collections.<String,String>emptyMap()); ConfigurationEntry root = store.getRootEntry(); assertNotNull("Root entry is not found", root); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java index a91c9bb752..9cb1e6dfcb 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java @@ -70,7 +70,7 @@ public class TestBrokerConfiguration public TestBrokerConfiguration(String storeType, String intialStoreLocation) { - _store = new MemoryConfigurationEntryStore(intialStoreLocation, null); + _store = new MemoryConfigurationEntryStore(intialStoreLocation, null, Collections.<String,String>emptyMap()); } public boolean setBrokerAttribute(String name, Object value) |