summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2009-04-13 14:18:20 +0000
committerMartin Ritchie <ritchiem@apache.org>2009-04-13 14:18:20 +0000
commit5a09f68cccab2d71122d4e15c67e6699cbda0650 (patch)
treecafe493c122cae8930748d68b35b0f69ed7c6e87
parentf4721304dfb4a53d70f653622f28bbf1af3853ee (diff)
downloadqpid-python-5a09f68cccab2d71122d4e15c67e6699cbda0650.tar.gz
QPID-1776: fix interpolation of variables.
merged from trunk r758730 git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.5-fix@764482 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java14
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java18
2 files changed, 28 insertions, 4 deletions
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
index a7c7e073c3..93661f2d9a 100644
--- 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
@@ -130,10 +130,16 @@ public class ServerConfiguration implements SignalHandler
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);
+ // Add the keys of the virtual host to the main config then bail out
+
+ Configuration myConf = vhostConfiguration.subset("virtualhost." + name);
+ Iterator k = myConf.getKeys();
+ while (k.hasNext())
+ {
+ String key = (String) k.next();
+ conf.setProperty("virtualhosts.virtualhost."+name+"."+key, myConf.getProperty(key));
+ }
+ VirtualHostConfiguration vhostConfig = new VirtualHostConfiguration(name, conf.subset("virtualhosts.virtualhost."+name), this);
_virtualHosts.put(vhostConfig.getName(), vhostConfig);
}
}
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
index ad1df1c777..2c39d006b9 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
@@ -677,6 +677,24 @@ public class ServerConfigurationTest extends TestCase
assertEquals(true, config.getQpidNIO()); // From the second file, not
// present in the first
}
+
+ public void testVariableInterpolation() throws Exception
+ {
+ File mainFile = File.createTempFile(getClass().getName(), null);
+
+ mainFile.deleteOnExit();
+
+ FileWriter out = new FileWriter(mainFile);
+ out.write("<broker>\n");
+ out.write("\t<work>foo</work>\n");
+ out.write("\t<management><ssl><keyStorePath>${work}</keyStorePath></ssl></management>\n");
+ out.write("</broker>\n");
+ out.close();
+
+ ServerConfiguration config = new ServerConfiguration(mainFile.getAbsoluteFile());
+ assertEquals("Did not get correct interpolated value",
+ "foo", config.getManagementKeyStorePath());
+ }
public void testCombinedConfigurationFirewall() throws Exception
{