diff options
author | Alex Rudyy <orudyy@apache.org> | 2013-01-18 17:54:08 +0000 |
---|---|---|
committer | Alex Rudyy <orudyy@apache.org> | 2013-01-18 17:54:08 +0000 |
commit | 64ef7fbb6ef5a568f98633fc43091dfc2eee1c53 (patch) | |
tree | 7732d0138b868fce96c19f11c96592990913cd1c | |
parent | 30a00c3a56c5d428dd99f9955ab48a1db82adf7e (diff) | |
download | qpid-python-64ef7fbb6ef5a568f98633fc43091dfc2eee1c53.tar.gz |
QPID-4390: Remove attributes which have default values from initial store. Improve Virtual host adapter code to return virtual host implementation attributes only when virtual host implementation is created
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-config-qpid-4390@1435274 13f79535-47bb-0310-9956-ffa450edef68
3 files changed, 66 insertions, 53 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java index 08301f8435..d52296c5dd 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java @@ -35,6 +35,7 @@ import java.util.Set; import java.util.UUID; import org.apache.commons.configuration.CompositeConfiguration; +import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.SystemConfiguration; import org.apache.qpid.AMQException; @@ -119,10 +120,10 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual { throw new IllegalConfigurationException("Virtual host name must be specified"); } - Map<String, Object> actualAttributes = getActualAttributes(); - String configurationFile = (String) actualAttributes.get(CONFIG_PATH); - String storePath = (String) actualAttributes.get(STORE_PATH); - String storeType = (String) actualAttributes.get(STORE_TYPE); + + String configurationFile = (String) getAttribute(CONFIG_PATH); + String storePath = (String) getAttribute(STORE_PATH); + String storeType = (String) getAttribute(STORE_TYPE); boolean invalidAttributes = false; if (configurationFile == null) { @@ -782,10 +783,19 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual { // TODO } - else if(SUPPORTED_EXCHANGE_TYPES.equals(name)) + else if (_virtualHost != null) + { + return getAttributeFromVirtualHostImplementation(name); + } + return super.getAttribute(name); + } + + private Object getAttributeFromVirtualHostImplementation(String name) + { + if(SUPPORTED_EXCHANGE_TYPES.equals(name)) { List<String> types = new ArrayList<String>(); - for(ExchangeType type : _virtualHost.getExchangeFactory().getRegisteredTypes()) + for(@SuppressWarnings("rawtypes") ExchangeType type : _virtualHost.getExchangeFactory().getRegisteredTypes()) { types.add(type.getName().asString()); } @@ -938,27 +948,9 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual { VirtualHostRegistry virtualHostRegistry = _broker.getVirtualHostRegistry(); String virtualHostName = getName(); - String configurationFile = (String)getAttribute(CONFIG_PATH); - VirtualHostConfiguration configuration = null; try { - if (configurationFile == null) - { - final MyConfiguration basicConfiguration = new MyConfiguration(); - PropertiesConfiguration config = new PropertiesConfiguration(); - config.addProperty("store.type", (String)getAttribute(STORE_TYPE)); - config.addProperty("store.environment-path", (String)getAttribute(STORE_PATH)); - basicConfiguration.addConfiguration(config); - - CompositeConfiguration compositeConfiguration = new CompositeConfiguration(); - compositeConfiguration.addConfiguration(new SystemConfiguration()); - compositeConfiguration.addConfiguration(basicConfiguration); - configuration = new VirtualHostConfiguration(virtualHostName, compositeConfiguration , _broker); - } - else - { - configuration = new VirtualHostConfiguration(virtualHostName, new File(configurationFile) , _broker); - } + VirtualHostConfiguration configuration = createVirtualHostConfiguration(virtualHostName); _virtualHost = new VirtualHostImpl(_broker.getVirtualHostRegistry(), _brokerStatisticsGatherer, _broker.getSecurityManager(), configuration); } catch (Exception e) @@ -1006,6 +998,30 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual return false; } + private VirtualHostConfiguration createVirtualHostConfiguration(String virtualHostName) throws ConfigurationException + { + VirtualHostConfiguration configuration; + String configurationFile = (String)getAttribute(CONFIG_PATH); + if (configurationFile == null) + { + final MyConfiguration basicConfiguration = new MyConfiguration(); + PropertiesConfiguration config = new PropertiesConfiguration(); + config.addProperty("store.type", (String)getAttribute(STORE_TYPE)); + config.addProperty("store.environment-path", (String)getAttribute(STORE_PATH)); + basicConfiguration.addConfiguration(config); + + CompositeConfiguration compositeConfiguration = new CompositeConfiguration(); + compositeConfiguration.addConfiguration(new SystemConfiguration()); + compositeConfiguration.addConfiguration(basicConfiguration); + configuration = new VirtualHostConfiguration(virtualHostName, compositeConfiguration , _broker); + } + else + { + configuration = new VirtualHostConfiguration(virtualHostName, new File(configurationFile) , _broker); + } + return configuration; + } + @Override public SecurityManager getSecurityManager() { diff --git a/qpid/java/broker/src/main/resources/default.json b/qpid/java/broker/src/main/resources/default.json index db82508b55..35f6c1640f 100644 --- a/qpid/java/broker/src/main/resources/default.json +++ b/qpid/java/broker/src/main/resources/default.json @@ -23,21 +23,6 @@ "name": "Broker", "defaultAuthenticationProvider" : "defaultAuthenticationProvider", "defaultVirtualHost" : "default", - "aclFile" : null, - "alertThresholdQueueDepth" : 0, - "alertThresholdMessageCount" : 0, - "alertThresholdMessageSize" : 0, - "alertThresholdMessageAge" : 0, - "alertRepeatGap" : 30000, - "heartBeatDelay" : 0, - "sessionCountLimit" : 256, - "deadLetterQueueEnabled" : false, - "maximumDeliveryAttempts" : 0, - "housekeepingCheckPeriod" : 30000, - "queueFlowControlSizeBytes" : 0, - "queueFlowResumeSizeBytes" : 0, - "statisticsReportingPeriod" : 0, - "statisticsReportingResetEnabled" : false, "authenticationproviders" : [ { "type" : "AuthenticationProvider", "name" : "defaultAuthenticationProvider", @@ -46,38 +31,29 @@ } ], "ports" : [ { "type" : "Port", - "name" : "8080", "port" : 8080, - "transports" : [ "TCP" ], + "name" : "8080", "protocols" : [ "HTTP" ] }, { "type" : "Port", "name" : "5672", - "port" : 5672, - "tcpNoDelay" : true, - "transports" : [ "TCP" ], - "protocols" : [ "AMQP_0_8", "AMQP_0_9", "AMQP_0_9_1", "AMQP_0_10", "AMQP_1_0" ], - "wantClientAuth" : false, - "needClientAuth" : false, - "receiveBufferSize" : 262144, - "sendBufferSize" : 262144 + "port" : 5672 }, { "type" : "Port", "name" : "9099", "port" : 9099, - "transports" : [ "TCP" ], "protocols" : [ "JMX_RMI" ] }, { "type" : "Port", "name" : "8999", "port" : 8999, - "transports" : [ "TCP" ], "protocols" : [ "RMI" ] } ], "virtualhosts" : [ { "type" : "VirtualHost", "name" : "default", - "configuration" : "${QPID_HOME}/etc/virtualhosts.xml" + "storeType" : "DERBY", + "storePath" : "${QPID_WORK}/store" } ], "plugins" : [ { "type" : "Plugin", diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java index 6434f08d58..57d219f85f 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java @@ -57,6 +57,27 @@ public class VirtualHostRecovererTest extends TestCase assertEquals("Unexpected name", getName(), host.getName()); } + public void testCreateVirtualHostFromStoreConfigAtrributes() + { + StatisticsGatherer statisticsGatherer = mock(StatisticsGatherer.class); + SecurityManager securityManager = mock(SecurityManager.class); + ConfigurationEntry entry = mock(ConfigurationEntry.class); + Broker parent = mock(Broker.class); + when(parent.getSecurityManager()).thenReturn(securityManager); + + VirtualHostRecoverer recoverer = new VirtualHostRecoverer(statisticsGatherer); + Map<String, Object> attributes = new HashMap<String, Object>(); + attributes.put(VirtualHost.NAME, getName()); + attributes.put(VirtualHost.STORE_PATH, "/path/to/virtualhost/store"); + attributes.put(VirtualHost.STORE_TYPE, "DERBY"); + when(entry.getAttributes()).thenReturn(attributes); + + VirtualHost host = recoverer.create(null, entry, parent); + + assertNotNull("Null is returned", host); + assertEquals("Unexpected name", getName(), host.getName()); + } + public void testCreateWithoutMandatoryAttributesResultsInException() { Map<String, Object> attributes = new HashMap<String, Object>(); |