summaryrefslogtreecommitdiff
path: root/java/broker/src
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2009-04-23 16:05:34 +0000
committerAidan Skinner <aidan@apache.org>2009-04-23 16:05:34 +0000
commiteffe800bcc434d1704311197769a6e0004c26b97 (patch)
treec67d7930bf9b96bb67570c41618fe997cecec18c /java/broker/src
parent9f9f598a5c969cdc43c6cf3ed9c4a309c5933ab5 (diff)
downloadqpid-python-effe800bcc434d1704311197769a6e0004c26b97.tar.gz
QPID-1826: Ensure that server-wide configuration variables in virtualhosts.xml are honored. Add sample-flattened parse tree from M4 and test to ensure that values are parsed appropriately.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@767951 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java125
-rw-r--r--java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java18
2 files changed, 89 insertions, 54 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
index 24add696b3..9d7936f0c6 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
@@ -47,7 +47,7 @@ import sun.misc.SignalHandler;
public class ServerConfiguration implements SignalHandler
{
- private static Configuration _config;
+ private Configuration _config;
private static final int DEFAULT_FRAME_SIZE = 65536;
private static final int DEFAULT_BUFFER_READ_LIMIT_SIZE = 262144;
@@ -113,11 +113,11 @@ public class ServerConfiguration implements SignalHandler
public ServerConfiguration(Configuration conf) throws ConfigurationException
{
- _config = conf;
+ setConfig(conf);
substituteEnvironmentVariables();
- _jmxPort = _config.getInt("management.jmxport", 8999);
+ _jmxPort = getConfig().getInt("management.jmxport", 8999);
_securityConfiguration = new SecurityConfiguration(conf.subset("security"));
setupVirtualHosts(conf);
@@ -150,6 +150,13 @@ public class ServerConfiguration implements SignalHandler
VirtualHostConfiguration vhostConfig = new VirtualHostConfiguration(name, conf.subset("virtualhosts.virtualhost."+name));
_virtualHosts.put(vhostConfig.getName(), vhostConfig);
}
+ // Grab things other than the virtualhosts themselves
+ Iterator keys = vhostConfiguration.getKeys();
+ while (keys.hasNext())
+ {
+ String key = (String) keys.next();
+ conf.setProperty(key, vhostConfiguration.getProperty(key));
+ }
}
}
}
@@ -161,7 +168,7 @@ public class ServerConfiguration implements SignalHandler
String val = System.getenv(var.getKey());
if (val != null)
{
- _config.setProperty(var.getValue(), val);
+ getConfig().setProperty(var.getValue(), val);
}
}
}
@@ -246,6 +253,16 @@ public class ServerConfiguration implements SignalHandler
}
}
+ public void setConfig(Configuration _config)
+ {
+ this._config = _config;
+ }
+
+ public Configuration getConfig()
+ {
+ return _config;
+ }
+
public String getQpidWork()
{
return System.getProperty("QPID_WORK", System.getProperty("java.io.tmpdir"));
@@ -263,7 +280,7 @@ public class ServerConfiguration implements SignalHandler
public boolean getPlatformMbeanserver()
{
- return _config.getBoolean("management.platform-mbeanserver", true);
+ return getConfig().getBoolean("management.platform-mbeanserver", true);
}
public String[] getVirtualHosts()
@@ -273,7 +290,7 @@ public class ServerConfiguration implements SignalHandler
public String getPluginDirectory()
{
- return _config.getString("plugin-directory");
+ return getConfig().getString("plugin-directory");
}
public VirtualHostConfiguration getVirtualHostConfig(String name)
@@ -283,84 +300,84 @@ public class ServerConfiguration implements SignalHandler
public List<String> getPrincipalDatabaseNames()
{
- return _config.getList("security.principal-databases.principal-database.name");
+ return getConfig().getList("security.principal-databases.principal-database.name");
}
public List<String> getPrincipalDatabaseClass()
{
- return _config.getList("security.principal-databases.principal-database.class");
+ return getConfig().getList("security.principal-databases.principal-database.class");
}
public List<String> getPrincipalDatabaseAttributeNames(int index)
{
String name = "security.principal-databases.principal-database(" + index + ")." + "attributes.attribute.name";
- return _config.getList(name);
+ return getConfig().getList(name);
}
public List<String> getPrincipalDatabaseAttributeValues(int index)
{
String name = "security.principal-databases.principal-database(" + index + ")." + "attributes.attribute.value";
- return _config.getList(name);
+ return getConfig().getList(name);
}
public List<String> getManagementPrincipalDBs()
{
- return _config.getList("security.jmx.principal-database");
+ return getConfig().getList("security.jmx.principal-database");
}
public List<String> getManagementAccessList()
{
- return _config.getList("security.jmx.access");
+ return getConfig().getList("security.jmx.access");
}
public int getFrameSize()
{
- return _config.getInt("advanced.framesize", DEFAULT_FRAME_SIZE);
+ return getConfig().getInt("advanced.framesize", DEFAULT_FRAME_SIZE);
}
public boolean getProtectIOEnabled()
{
- return _config.getBoolean("broker.connector.protectio.enabled", false);
+ return getConfig().getBoolean("broker.connector.protectio.enabled", false);
}
public int getBufferReadLimit()
{
- return _config.getInt("broker.connector.protectio.readBufferLimitSize", DEFAULT_BUFFER_READ_LIMIT_SIZE);
+ return getConfig().getInt("broker.connector.protectio.readBufferLimitSize", DEFAULT_BUFFER_READ_LIMIT_SIZE);
}
public int getBufferWriteLimit()
{
- return _config.getInt("broker.connector.protectio.writeBufferLimitSize", DEFAULT_BUFFER_WRITE_LIMIT_SIZE);
+ return getConfig().getInt("broker.connector.protectio.writeBufferLimitSize", DEFAULT_BUFFER_WRITE_LIMIT_SIZE);
}
public boolean getSynchedClocks()
{
- return _config.getBoolean("advanced.synced-clocks", false);
+ return getConfig().getBoolean("advanced.synced-clocks", false);
}
public boolean getMsgAuth()
{
- return _config.getBoolean("security.msg-auth", false);
+ return getConfig().getBoolean("security.msg-auth", false);
}
public String getJMXPrincipalDatabase()
{
- return _config.getString("security.jmx.principal-database");
+ return getConfig().getString("security.jmx.principal-database");
}
public String getManagementKeyStorePath()
{
- return _config.getString("management.ssl.keyStorePath", null);
+ return getConfig().getString("management.ssl.keyStorePath", null);
}
public boolean getManagementSSLEnabled()
{
- return _config.getBoolean("management.ssl.enabled", true);
+ return getConfig().getBoolean("management.ssl.enabled", true);
}
public String getManagementKeyStorePassword()
{
- return _config.getString("management.ssl.keyStorePassword");
+ return getConfig().getString("management.ssl.keyStorePassword");
}
public SecurityConfiguration getSecurityConfiguration()
@@ -370,158 +387,158 @@ public class ServerConfiguration implements SignalHandler
public boolean getQueueAutoRegister()
{
- return _config.getBoolean("queue.auto_register", true);
+ return getConfig().getBoolean("queue.auto_register", true);
}
public boolean getManagementEnabled()
{
- return _config.getBoolean("management.enabled", true);
+ return getConfig().getBoolean("management.enabled", true);
}
public void setManagementEnabled(boolean enabled)
{
- _config.setProperty("management.enabled", enabled);
+ getConfig().setProperty("management.enabled", enabled);
}
public int getHeartBeatDelay()
{
- return _config.getInt("heartbeat.delay", 5);
+ return getConfig().getInt("heartbeat.delay", 5);
}
public double getHeartBeatTimeout()
{
- return _config.getDouble("heartbeat.timeoutFactor", 2.0);
+ return getConfig().getDouble("heartbeat.timeoutFactor", 2.0);
}
public int getDeliveryPoolSize()
{
- return _config.getInt("delivery.poolsize", 0);
+ return getConfig().getInt("delivery.poolsize", 0);
}
public long getMaximumMessageAge()
{
- return _config.getLong("maximumMessageAge", 0);
+ return getConfig().getLong("maximumMessageAge", 0);
}
public long getMaximumMessageCount()
{
- return _config.getLong("maximumMessageCount", 0);
+ return getConfig().getLong("maximumMessageCount", 0);
}
public long getMaximumQueueDepth()
{
- return _config.getLong("maximumQueueDepth", 0);
+ return getConfig().getLong("maximumQueueDepth", 0);
}
public long getMaximumMessageSize()
{
- return _config.getLong("maximumMessageSize", 0);
+ return getConfig().getLong("maximumMessageSize", 0);
}
public long getMinimumAlertRepeatGap()
{
- return _config.getLong("minimumAlertRepeatGap", 0);
+ return getConfig().getLong("minimumAlertRepeatGap", 0);
}
public int getProcessors()
{
- return _config.getInt("connector.processors", 4);
+ return getConfig().getInt("connector.processors", 4);
}
public int getPort()
{
- return _config.getInt("connector.port", DEFAULT_PORT);
+ return getConfig().getInt("connector.port", DEFAULT_PORT);
}
public String getBind()
{
- return _config.getString("connector.bind", "wildcard");
+ return getConfig().getString("connector.bind", "wildcard");
}
public int getReceiveBufferSize()
{
- return _config.getInt("connector.socketReceiveBuffer", 32767);
+ return getConfig().getInt("connector.socketReceiveBuffer", 32767);
}
public int getWriteBufferSize()
{
- return _config.getInt("connector.socketWriteBuffer", 32767);
+ return getConfig().getInt("connector.socketWriteBuffer", 32767);
}
public boolean getTcpNoDelay()
{
- return _config.getBoolean("connector.tcpNoDelay", true);
+ return getConfig().getBoolean("connector.tcpNoDelay", true);
}
public boolean getEnableExecutorPool()
{
- return _config.getBoolean("advanced.filterchain[@enableExecutorPool]", false);
+ return getConfig().getBoolean("advanced.filterchain[@enableExecutorPool]", false);
}
public boolean getEnablePooledAllocator()
{
- return _config.getBoolean("advanced.enablePooledAllocator", false);
+ return getConfig().getBoolean("advanced.enablePooledAllocator", false);
}
public boolean getEnableDirectBuffers()
{
- return _config.getBoolean("advanced.enableDirectBuffers", false);
+ return getConfig().getBoolean("advanced.enableDirectBuffers", false);
}
public boolean getEnableSSL()
{
- return _config.getBoolean("connector.ssl.enabled", false);
+ return getConfig().getBoolean("connector.ssl.enabled", false);
}
public boolean getSSLOnly()
{
- return _config.getBoolean("connector.ssl.sslOnly", true);
+ return getConfig().getBoolean("connector.ssl.sslOnly", true);
}
public int getSSLPort()
{
- return _config.getInt("connector.ssl.port", DEFAUL_SSL_PORT);
+ return getConfig().getInt("connector.ssl.port", DEFAUL_SSL_PORT);
}
public String getKeystorePath()
{
- return _config.getString("connector.ssl.keystorePath", "none");
+ return getConfig().getString("connector.ssl.keystorePath", "none");
}
public String getKeystorePassword()
{
- return _config.getString("connector.ssl.keystorePassword", "none");
+ return getConfig().getString("connector.ssl.keystorePassword", "none");
}
public String getCertType()
{
- return _config.getString("connector.ssl.certType", "SunX509");
+ return getConfig().getString("connector.ssl.certType", "SunX509");
}
public boolean getQpidNIO()
{
- return _config.getBoolean("connector.qpidnio", false);
+ return getConfig().getBoolean("connector.qpidnio", false);
}
public boolean getUseBiasedWrites()
{
- return _config.getBoolean("advanced.useWriteBiasedPool", false);
+ return getConfig().getBoolean("advanced.useWriteBiasedPool", false);
}
public String getDefaultVirtualHost()
{
- return _config.getString("virtualhosts.default");
+ return getConfig().getString("virtualhosts.default");
}
public void setHousekeepingExpiredMessageCheckPeriod(long value)
{
- _config.setProperty("housekeeping.expiredMessageCheckPeriod", value);
+ getConfig().setProperty("housekeeping.expiredMessageCheckPeriod", value);
}
public long getHousekeepingCheckPeriod()
{
- return _config.getLong("housekeeping.checkPeriod",
- _config.getLong("housekeeping.expiredMessageCheckPeriod",
+ return getConfig().getLong("housekeeping.checkPeriod",
+ getConfig().getLong("housekeeping.expiredMessageCheckPeriod",
DEFAULT_HOUSEKEEPING_PERIOD));
}
}
diff --git a/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java b/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
index 0152fc5122..fabd4ce923 100644
--- a/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
+++ b/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
@@ -24,8 +24,10 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
+import java.util.Iterator;
import java.util.List;
+import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.SystemConfiguration;
@@ -924,4 +926,20 @@ public class ServerConfigurationTest extends TestCase
assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost));
}
+ public void testnewParserOutputVsOldParserOutput() throws ConfigurationException
+ {
+ String configDir = System.getProperty("QPID_HOME")+"/etc";
+
+ XMLConfiguration oldConfig = new XMLConfiguration(configDir +"/sample-parsed-config.xml");
+ Configuration newConfig = new ServerConfiguration(new File(configDir+"/persistent_config-config-test.xml")).getConfig();
+
+ Iterator xmlKeys = oldConfig.getKeys();
+ while (xmlKeys.hasNext())
+ {
+ String key = (String) xmlKeys.next();
+ assertEquals("Incorrect value for "+key, oldConfig.getProperty(key), newConfig.getProperty(key));
+ }
+ }
+
+
}