summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2009-04-13 12:57:54 +0000
committerAidan Skinner <aidan@apache.org>2009-04-13 12:57:54 +0000
commitdc784a508e5c57a3e2196e2de0acb499f4d7bbb7 (patch)
tree96461ad5c02bf8c886a133141cbcd65d928a6454
parentf228f1af61ec9c334248bd0e22d14a40fdf44e08 (diff)
downloadqpid-python-dc784a508e5c57a3e2196e2de0acb499f4d7bbb7.tar.gz
QPID-1621: forgot to svn add. oops.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.5-fix@764430 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java58
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java106
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/SecurityConfiguration.java41
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java405
4 files changed, 610 insertions, 0 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java
new file mode 100644
index 0000000000..c7cf0c0892
--- /dev/null
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java
@@ -0,0 +1,58 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.configuration;
+
+import org.apache.commons.configuration.Configuration;
+
+
+public class ExchangeConfiguration
+{
+
+ private Configuration _config;
+ private String _name;
+
+ public ExchangeConfiguration(String exchName, Configuration subset)
+ {
+ _name = exchName;
+ _config = subset;
+ }
+
+ public String getName()
+ {
+ return _name;
+ }
+
+ public String getType()
+ {
+ return _config.getString("type","direct");
+ }
+
+ public boolean getDurable()
+ {
+ return _config.getBoolean("durable", false);
+ }
+
+ public boolean getAutoDelete()
+ {
+ return _config.getBoolean("autodelete",false);
+ }
+
+}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
new file mode 100644
index 0000000000..90d6caec99
--- /dev/null
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
@@ -0,0 +1,106 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.configuration;
+
+import java.util.List;
+
+import org.apache.commons.configuration.Configuration;
+
+public class QueueConfiguration
+{
+
+ // FIXME AIDAN XXX -- deal with defaults
+
+ private Configuration _config;
+ private String _name;
+
+ public QueueConfiguration(String name, Configuration config)
+ {
+ _config = config;
+ _name = name;
+ }
+
+ public boolean getDurable()
+ {
+ return _config.getBoolean("durable" ,false);
+ }
+
+ public boolean getAutoDelete()
+ {
+ return _config.getBoolean("autodelete", false);
+ }
+
+ public String getOwner()
+ {
+ return _config.getString("owner", null);
+ }
+
+ public boolean getPriority()
+ {
+ return _config.getBoolean("priority", false);
+ }
+
+ public int getPriorities()
+ {
+ return _config.getInt("priorities", -1);
+ }
+
+ public String getExchange()
+ {
+ return _config.getString("exchange", null);
+ }
+
+ public List getRoutingKeys()
+ {
+ return _config.getList("routingKey");
+ }
+
+ public String getName()
+ {
+ return _name;
+ }
+
+ public long getMaximumMessageAge()
+ {
+ return _config.getLong("maximumMessageAge", 0);
+ }
+
+ public long getMaximumQueueDepth()
+ {
+ return _config.getLong("maximumQueueDepth", 0);
+ }
+
+ public long getMaximumMessageSize()
+ {
+ return _config.getLong("maximumMessageSize", 0);
+ }
+
+ public long getMaximumMessageCount()
+ {
+ return _config.getLong("maximumMessageCount", 0);
+ }
+
+ public long getMinimumAlertRepeatGap()
+ {
+ return _config.getLong("minimumAlertRepeatGap", 0);
+ }
+
+}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/SecurityConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/SecurityConfiguration.java
new file mode 100644
index 0000000000..5d080f8df1
--- /dev/null
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/SecurityConfiguration.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *
+ */
+
+package org.apache.qpid.server.configuration;
+
+import org.apache.commons.configuration.Configuration;
+
+public class SecurityConfiguration
+{
+
+ private Configuration _conf;
+
+ public SecurityConfiguration(Configuration configuration)
+ {
+ _conf = configuration;
+ }
+
+ public Configuration getConfiguration()
+ {
+ return _conf;
+ }
+
+}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
new file mode 100644
index 0000000000..225042e9ec
--- /dev/null
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
@@ -0,0 +1,405 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.server.configuration;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.configuration.CompositeConfiguration;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.SystemConfiguration;
+import org.apache.commons.configuration.XMLConfiguration;
+
+public class ServerConfiguration
+{
+
+ private static Configuration _config;
+
+ private static final int DEFAULT_FRAME_SIZE = 65536;
+ private static final int DEFAULT_BUFFER_READ_LIMIT_SIZE = 262144;
+ private static final int DEFAULT_BUFFER_WRITE_LIMIT_SIZE = 262144;
+ private static final int DEFAULT_PORT = 5672;
+ private static final int DEFAUL_SSL_PORT = 8672;
+ private static final long DEFAULT_HOUSEKEEPING_PERIOD = 30000L;
+ private static final int DEFAULT_JMXPORT = 8999;
+
+ private long _housekeepingExpiredMessageCheckPeriod = DEFAULT_HOUSEKEEPING_PERIOD;
+ private static int _jmxPort = DEFAULT_JMXPORT;
+
+ private Map<String, VirtualHostConfiguration> _virtualHosts = new HashMap<String, VirtualHostConfiguration>();
+ private SecurityConfiguration _securityConfiguration = null;
+
+ public ServerConfiguration(File configurationURL) throws ConfigurationException
+ {
+ this(config(configurationURL));
+ }
+
+ public ServerConfiguration(Configuration conf) throws ConfigurationException
+ {
+ _config = conf;
+ _jmxPort = _config.getInt("management.jmxport", 8999);
+
+ _securityConfiguration = new SecurityConfiguration(conf.subset("security"));
+
+ List vhosts = conf.getList("virtualhosts");
+ Iterator i = vhosts.iterator();
+ while (i.hasNext())
+ {
+ Object thing = i.next();
+ if (thing instanceof String)
+ {
+ XMLConfiguration vhostConfiguration = new XMLConfiguration((String) thing);
+ List hosts = vhostConfiguration.getList("virtualhost.name");
+ for (int j = 0; j < hosts.size(); j++)
+ {
+ String name = (String) hosts.get(j);
+ CompositeConfiguration mungedConf = new CompositeConfiguration();
+ mungedConf.addConfiguration(conf.subset("virtualhosts.virtualhost."+name));
+ mungedConf.addConfiguration(vhostConfiguration.subset("virtualhost." + name));
+ VirtualHostConfiguration vhostConfig = new VirtualHostConfiguration(name, mungedConf);
+ _virtualHosts.put(vhostConfig.getName(), vhostConfig);
+ }
+ }
+ }
+ }
+
+ public static String[] objListToStringArray(List objList)
+ {
+ String[] networkStrings = new String[objList.size()];
+ int i = 0;
+ for (Object network : objList)
+ {
+ networkStrings[i++] = (String) network;
+ }
+ return networkStrings;
+ }
+
+ // Our configuration class needs to make the interpolate method
+ // public so it can be called below from the config method.
+ private static class MyConfiguration extends CompositeConfiguration
+ {
+ public String interpolate(String obj)
+ {
+ return super.interpolate(obj);
+ }
+ }
+
+ private final static Configuration config(File url) throws ConfigurationException
+ {
+ // We have to override the interpolate methods so that
+ // interpolation takes place accross the entirety of the
+ // composite configuration. Without doing this each
+ // configuration object only interpolates variables defined
+ // inside itself.
+ final MyConfiguration conf = new MyConfiguration();
+ conf.addConfiguration(new SystemConfiguration()
+ {
+ protected String interpolate(String o)
+ {
+ return conf.interpolate(o);
+ }
+ });
+ conf.addConfiguration(new XMLConfiguration(url)
+ {
+ protected String interpolate(String o)
+ {
+ return conf.interpolate(o);
+ }
+ });
+ return conf;
+ }
+
+ public void setJMXManagementPort(int mport)
+ {
+ _jmxPort = mport;
+ }
+
+ public int getJMXManagementPort()
+ {
+ return _jmxPort;
+ }
+
+ public boolean getPlatformMbeanserver()
+ {
+ return _config.getBoolean("management.platform-mbeanserver", true);
+ }
+
+ public String[] getVirtualHosts()
+ {
+ return _virtualHosts.keySet().toArray(new String[_virtualHosts.size()]);
+ }
+
+ public String getPluginDirectory()
+ {
+ return _config.getString("plugin-directory");
+ }
+
+ public VirtualHostConfiguration getVirtualHostConfig(String name)
+ {
+ return _virtualHosts.get(name);
+ }
+
+ public List<String> getPrincipalDatabaseNames()
+ {
+ return _config.getList("security.principal-databases.principal-database.name");
+ }
+
+ public List<String> getPrincipalDatabaseClass()
+ {
+ return _config.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);
+ }
+
+ public List<String> getPrincipalDatabaseAttributeValues(int index)
+ {
+ String name = "security.principal-databases.principal-database(" + index + ")." + "attributes.attribute.value";
+ return _config.getList(name);
+ }
+
+ public List<String> getManagementPrincipalDBs()
+ {
+ return _config.getList("security.jmx.principal-database");
+ }
+
+ public List<String> getManagementAccessList()
+ {
+ return _config.getList("security.jmx.access");
+ }
+
+ public int getFrameSize()
+ {
+ return _config.getInt("advanced.framesize", DEFAULT_FRAME_SIZE);
+ }
+
+ public boolean getManagementSecurityEnabled()
+ {
+ return _config.getBoolean("management.security-enabled", false);
+ }
+
+ public boolean getProtectIOEnabled()
+ {
+ return _config.getBoolean("broker.connector.protectio.enabled", false);
+ }
+
+ public int getBufferReadLimit()
+ {
+ return _config.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);
+ }
+
+ public boolean getSynchedClocks()
+ {
+ return _config.getBoolean("advanced.synced-clocks", false);
+ }
+
+ public boolean getMsgAuth()
+ {
+ return _config.getBoolean("security.msg-auth", false);
+ }
+
+ public String getJMXPrincipalDatabase()
+ {
+ return _config.getString("security.jmx.principal-database");
+ }
+
+ public String getManagementKeyStorePath()
+ {
+ return _config.getString("management.ssl.keyStorePath", null);
+ }
+
+ public boolean getManagementSSLEnabled()
+ {
+ return _config.getBoolean("management.ssl.enabled", true);
+ }
+
+ public String getManagementKeyStorePassword()
+ {
+ return _config.getString("management.ssl.keyStorePassword");
+ }
+
+ public SecurityConfiguration getSecurityConfiguration()
+ {
+ return _securityConfiguration;
+ }
+
+ public boolean getQueueAutoRegister()
+ {
+ return _config.getBoolean("queue.auto_register", true);
+ }
+
+ public boolean getManagementEnabled()
+ {
+ return _config.getBoolean("management.enabled", true);
+ }
+
+ public int getHeartBeatDelay()
+ {
+ return _config.getInt("heartbeat.delay", 5);
+ }
+
+ public double getHeartBeatTimeout()
+ {
+ return _config.getDouble("heartbeat.timeoutFactor", 2.0);
+ }
+
+ public int getDeliveryPoolSize()
+ {
+ return _config.getInt("delivery.poolsize", 0);
+ }
+
+ public long getMaximumMessageAge()
+ {
+ return _config.getLong("maximumMessageAge", 0);
+ }
+
+ public long getMaximumMessageCount()
+ {
+ return _config.getLong("maximumMessageCount", 0);
+ }
+
+ public long getMaximumQueueDepth()
+ {
+ return _config.getLong("maximumQueueDepth", 0);
+ }
+
+ public long getMaximumMessageSize()
+ {
+ return _config.getLong("maximumMessageSize", 0);
+ }
+
+ public long getMinimumAlertRepeatGap()
+ {
+ return _config.getLong("minimumAlertRepeatGap", 0);
+ }
+
+ public int getProcessors()
+ {
+ return _config.getInt("connector.processors", 4);
+ }
+
+ public int getPort()
+ {
+ return _config.getInt("connector.port", DEFAULT_PORT);
+ }
+
+ public String getBind()
+ {
+ return _config.getString("connector.bind", "wildcard");
+ }
+
+ public int getReceiveBufferSize()
+ {
+ return _config.getInt("connector.socketReceiveBuffer", 32767);
+ }
+
+ public int getWriteBufferSize()
+ {
+ return _config.getInt("connector.socketWriteBuffer", 32767);
+ }
+
+ public boolean getTcpNoDelay()
+ {
+ return _config.getBoolean("connector.tcpNoDelay", true);
+ }
+
+ public boolean getEnableExecutorPool()
+ {
+ return _config.getBoolean("advanced.filterchain[@enableExecutorPool]", false);
+ }
+
+ public boolean getEnablePooledAllocator()
+ {
+ return _config.getBoolean("advanced.enablePooledAllocator", false);
+ }
+
+ public boolean getEnableDirectBuffers()
+ {
+ return _config.getBoolean("advanced.enableDirectBuffers", false);
+ }
+
+ public boolean getEnableSSL()
+ {
+ return _config.getBoolean("connector.ssl.enabled", false);
+ }
+
+ public boolean getSSLOnly()
+ {
+ return _config.getBoolean("connector.ssl.sslOnly", true);
+ }
+
+ public int getSSLPort()
+ {
+ return _config.getInt("connector.ssl.port", DEFAUL_SSL_PORT);
+ }
+
+ public String getKeystorePath()
+ {
+ return _config.getString("connector.ssl.keystorePath", "none");
+ }
+
+ public String getKeystorePassword()
+ {
+ return _config.getString("connector.ssl.keystorePassword", "none");
+ }
+
+ public String getCertType()
+ {
+ return _config.getString("connector.ssl.certType", "SunX509");
+ }
+
+ public boolean getQpidNIO()
+ {
+ return _config.getBoolean("connector.qpidnio", false);
+ }
+
+ public boolean getUseBiasedWrites()
+ {
+ return _config.getBoolean("advanced.useWriteBiasedPool", false);
+ }
+
+ public String getDefaultVirtualHost()
+ {
+ return _config.getString("virtualhosts.default");
+ }
+
+ public void setHousekeepingExpiredMessageCheckPeriod(long _housekeepingExpiredMessageCheckPeriod)
+ {
+ this._housekeepingExpiredMessageCheckPeriod = _housekeepingExpiredMessageCheckPeriod;
+ }
+
+ public long getHousekeepingExpiredMessageCheckPeriod()
+ {
+ return _housekeepingExpiredMessageCheckPeriod;
+ }
+}