summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-01-18 17:54:08 +0000
committerAlex Rudyy <orudyy@apache.org>2013-01-18 17:54:08 +0000
commit64ef7fbb6ef5a568f98633fc43091dfc2eee1c53 (patch)
tree7732d0138b868fce96c19f11c96592990913cd1c
parent30a00c3a56c5d428dd99f9955ab48a1db82adf7e (diff)
downloadqpid-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
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java66
-rw-r--r--qpid/java/broker/src/main/resources/default.json32
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java21
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>();