You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2009/04/13 15:09:34 UTC
svn commit: r764433 - in /qpid/branches/0.5-fix/qpid: ./ java/
java/broker/src/main/java/org/apache/qpid/server/configuration/
java/broker/src/test/java/org/apache/qpid/server/configuration/ java/lib/
Author: ritchiem
Date: Mon Apr 13 13:09:33 2009
New Revision: 764433
URL: http://svn.apache.org/viewvc?rev=764433&view=rev
Log:
Merge branch 'QPID-1612'
merged from trunk r747363
Added:
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
- copied unchanged from r747363, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
qpid/branches/0.5-fix/qpid/java/lib/commons-beanutils-core-1.8.0.jar
- copied unchanged from r747363, qpid/trunk/qpid/java/lib/commons-beanutils-core-1.8.0.jar
qpid/branches/0.5-fix/qpid/java/lib/commons-configuration-1.6.jar
- copied unchanged from r747363, qpid/trunk/qpid/java/lib/commons-configuration-1.6.jar
qpid/branches/0.5-fix/qpid/java/lib/commons-digester-1.8.1.jar
- copied unchanged from r747363, qpid/trunk/qpid/java/lib/commons-digester-1.8.1.jar
Removed:
qpid/branches/0.5-fix/qpid/java/lib/commons-configuration-1.2.jar
Modified:
qpid/branches/0.5-fix/qpid/ (props changed)
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
qpid/branches/0.5-fix/qpid/java/build.deps
Propchange: qpid/branches/0.5-fix/qpid/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 13:09:33 2009
@@ -1 +1 @@
-/qpid/trunk/qpid:742626,743015,743028-743029,743304,743306,743311,743357,744113
+/qpid/trunk/qpid:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363
Modified: qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java?rev=764433&r1=764432&r2=764433&view=diff
==============================================================================
--- qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java (original)
+++ qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java Mon Apr 13 13:09:33 2009
@@ -25,12 +25,18 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
+import org.apache.commons.configuration.CombinedConfiguration;
import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.ConfigurationFactory;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
+import org.apache.commons.configuration.ConfigurationFactory.DigesterConfigurationFactory;
+import org.apache.commons.configuration.tree.ExpressionEngine;
public class ServerConfiguration
{
@@ -45,24 +51,57 @@
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;
+
+ // Map of environment variables to config items
+ private static final Map<String, String> envVarMap = new HashMap<String, String>();
+
+ {
+ envVarMap.put("QPID_PORT", "connector.port");
+ envVarMap.put("QPID_ENABLEDIRECTBUFFERS", "advanced.enableDirectBuffers");
+ envVarMap.put("QPID_SSLPORT", "connector.ssl.port");
+ envVarMap.put("QPID_NIO", "connector.qpidnio");
+ envVarMap.put("QPID_WRITEBIASED", "advanced.useWriteBiasedPool");
+ envVarMap.put("QPID_JMXPORT", "management.jmxport");
+ envVarMap.put("QPID_FRAMESIZE", "advanced.framesize");
+ envVarMap.put("QPID_MSGAUTH", "security.msg-auth");
+ envVarMap.put("QPID_AUTOREGISTER", "auto_register");
+ envVarMap.put("QPID_MANAGEMENTENABLED", "management.enabled");
+ envVarMap.put("QPID_HEARTBEATDELAY", "heartbeat.delay");
+ envVarMap.put("QPID_HEARTBEATTIMEOUTFACTOR", "heartbeat.timeoutFactor");
+ envVarMap.put("QPID_MAXIMUMMESSAGEAGE", "maximumMessageAge");
+ envVarMap.put("QPID_MAXIMUMMESSAGECOUNT", "maximumMessageCount");
+ envVarMap.put("QPID_MAXIMUMQUEUEDEPTH", "maximumQueueDepth");
+ envVarMap.put("QPID_MAXIMUMMESSAGESIZE", "maximumMessageSize");
+ envVarMap.put("QPID_MINIMUMALERTREPEATGAP", "minimumAlertRepeatGap");
+ envVarMap.put("QPID_SOCKETRECEIVEBUFFER", "connector.socketReceiveBuffer");
+ envVarMap.put("QPID_SOCKETWRITEBUFFER", "connector.socketWriteBuffer");
+ envVarMap.put("QPID_TCPNODELAY", "connector.tcpNoDelay");
+ envVarMap.put("QPID_ENABLEPOOLEDALLOCATOR", "advanced.enablePooledAllocator");
+ }
public ServerConfiguration(File configurationURL) throws ConfigurationException
{
- this(config(configurationURL));
+ this(parseConfig(configurationURL));
}
public ServerConfiguration(Configuration conf) throws ConfigurationException
{
_config = conf;
+
+ substituteEnvironmentVariables();
+
_jmxPort = _config.getInt("management.jmxport", 8999);
-
_securityConfiguration = new SecurityConfiguration(conf.subset("security"));
+ setupVirtualHosts(conf);
+ }
+
+ private void setupVirtualHosts(Configuration conf) throws ConfigurationException
+ {
List vhosts = conf.getList("virtualhosts");
Iterator i = vhosts.iterator();
while (i.hasNext())
@@ -85,17 +124,32 @@
}
}
- public static String[] objListToStringArray(List objList)
+ private void substituteEnvironmentVariables()
{
- String[] networkStrings = new String[objList.size()];
- int i = 0;
- for (Object network : objList)
+ for (Entry<String, String> var : envVarMap.entrySet())
{
- networkStrings[i++] = (String) network;
+ String val = System.getenv(var.getKey());
+ if (val != null)
+ {
+ _config.setProperty(var.getValue(), val);
+ }
}
- return networkStrings;
}
+ private final static Configuration parseConfig(File file) throws ConfigurationException
+ {
+ ConfigurationFactory factory = new ConfigurationFactory();
+ factory.setConfigurationFileName(file.getAbsolutePath());
+ Configuration conf = factory.getConfiguration();
+ Iterator keys = conf.getKeys();
+ if (!keys.hasNext())
+ {
+ keys = null;
+ conf = flatConfig(file);
+ }
+ return conf;
+ }
+
// 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
@@ -105,8 +159,8 @@
return super.interpolate(obj);
}
}
-
- private final static Configuration config(File url) throws ConfigurationException
+
+ private final static Configuration flatConfig(File file) throws ConfigurationException
{
// We have to override the interpolate methods so that
// interpolation takes place accross the entirety of the
@@ -121,7 +175,7 @@
return conf.interpolate(o);
}
});
- conf.addConfiguration(new XMLConfiguration(url)
+ conf.addConfiguration(new XMLConfiguration(file)
{
protected String interpolate(String o)
{
@@ -393,13 +447,13 @@
return _config.getString("virtualhosts.default");
}
- public void setHousekeepingExpiredMessageCheckPeriod(long _housekeepingExpiredMessageCheckPeriod)
+ public void setHousekeepingExpiredMessageCheckPeriod(long value)
{
- this._housekeepingExpiredMessageCheckPeriod = _housekeepingExpiredMessageCheckPeriod;
+ _config.setProperty("housekeeping.expiredMessageCheckPeriod", value);
}
public long getHousekeepingExpiredMessageCheckPeriod()
{
- return _housekeepingExpiredMessageCheckPeriod;
+ return _config.getLong("housekeeping.expiredMessageCheckPeriod", DEFAULT_HOUSEKEEPING_PERIOD);
}
}
Modified: qpid/branches/0.5-fix/qpid/java/build.deps
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/build.deps?rev=764433&r1=764432&r2=764433&view=diff
==============================================================================
--- qpid/branches/0.5-fix/qpid/java/build.deps (original)
+++ qpid/branches/0.5-fix/qpid/java/build.deps Mon Apr 13 13:09:33 2009
@@ -1,9 +1,11 @@
backport-util-concurrent=lib/backport-util-concurrent-2.2.jar
+commons-beanutils-core=lib/commons-beanutils-core-1.8.0.jar
commons-cli=lib/commons-cli-1.0.jar
commons-codec=lib/commons-codec-1.3.jar
commons-collections=lib/commons-collections-3.2.jar
-commons-configuration=lib/commons-configuration-1.2.jar
+commons-configuration=lib/commons-configuration-1.6.jar
+commons-digester=lib/commons-digester-1.8.1.jar
commons-lang=lib/commons-lang-2.2.jar
commons-logging=lib/commons-logging-1.0.4.jar
commons-pool=lib/commons-pool-1.4.jar
@@ -65,8 +67,9 @@
felix.libs=${osgi-core} ${felix-framework}
common.libs=${slf4j-api} ${backport-util-concurrent} ${mina-core} \
- ${mina-filter-ssl} ${commons-codec} ${commons-lang} ${commons-collections} \
- ${commons-configuration}
+ ${mina-filter-ssl} ${commons-beanutils-core} ${commons-codec} \
+ ${commons-lang} ${commons-collections} ${commons-configuration} \
+ ${commons-digester}
client.libs=${common.libs} ${geronimo-jms}
tools.libs=${client.libs}
broker.libs=${common.libs} ${commons-cli} ${commons-logging} ${log4j} \
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org