diff options
author | Alex Rudyy <orudyy@apache.org> | 2013-05-22 14:03:25 +0000 |
---|---|---|
committer | Alex Rudyy <orudyy@apache.org> | 2013-05-22 14:03:25 +0000 |
commit | 3464ce41e0ce966e89f50fc6d4ebe607178da08e (patch) | |
tree | 9edec61a5bcd856d0ca8a8031cdcf0f8412a45c8 | |
parent | 8b3deee37e700b333e44c7e8c92b6c6604cbd7a6 (diff) | |
download | qpid-python-3464ce41e0ce966e89f50fc6d4ebe607178da08e.tar.gz |
QPID-4876: Throw an exception when virtual host configuration is not found in virtual host file
merged from trunk r1485163
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.22@1485215 13f79535-47bb-0310-9956-ffa450edef68
4 files changed, 25 insertions, 9 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java index 26907ea255..aff84e5832 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java @@ -68,12 +68,11 @@ public class VirtualHostConfiguration extends AbstractConfiguration { Configuration virtualHostConfig = XmlConfigurationUtilities.parseConfig(configurationFile); - // check if it is an old virtual host configuration file which has an element of the same name as virtual host + // check for the element with the same name as virtual host Configuration config = virtualHostConfig.subset("virtualhost." + XmlConfigurationUtilities.escapeTagName(name)); if (config.isEmpty()) { - // assume it is a new configuration which does not have an element of the same name as the virtual host - configuration = virtualHostConfig; + throw new IllegalConfigurationException("No configuration found for virtual host '" + name + "' in " + configurationFile.getAbsolutePath()); } else { diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java index 4f60e7e253..478013f61f 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java @@ -132,12 +132,14 @@ public class VirtualHostTest extends TestCase public void testReplicaState() { - File configPath = TestFileUtils.createTempFile(this, ".xml", - "<virtualhost><store><class>" + ReplicaMessageStore.class.getName() + "</class></store></virtualhost>"); + String hostName = getName(); + File configPath = TestFileUtils.createTempFile(this, ".xml", "<virtualhosts><virtualhost><" + hostName + + "><store><class>" + ReplicaMessageStore.class.getName() + "</class></store></" + hostName + + "></virtualhost></virtualhosts>"); try { Map<String, Object> attributes = new HashMap<String, Object>(); - attributes.put(VirtualHost.NAME, getName()); + attributes.put(VirtualHost.NAME, hostName); attributes.put(VirtualHost.CONFIG_PATH, configPath.getAbsolutePath()); VirtualHost host = createHost(attributes); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java index 4e58eae1d2..739efecd90 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java @@ -179,6 +179,21 @@ public class VirtualHostImplTest extends QpidTestCase } } + public void testCreateVirtualHostWithoutConfigurationInConfigFile() throws Exception + { + File config = writeConfigFile(getName(), getName(), getName() +".direct", false, new String[0]); + String hostName = getName() + "-not-existing"; + try + { + createVirtualHost(hostName, config); + fail("virtualhost creation should have failed due to illegal configuration"); + } + catch (RuntimeException e) + { + assertEquals("No configuration found for virtual host '" + hostName + "' in " + config.getAbsolutePath(), e.getMessage()); + } + } + private void customBindingTestImpl(final String[] routingKeys) throws Exception { String exchangeName = getName() +".direct"; diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java index c65f8bbd08..2fe1485906 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java @@ -129,7 +129,7 @@ public class VirtualHostRestTest extends QpidRestTestCase public void testPutCreateVirtualHostUsingConfigPath() throws Exception { - String hostName = getTestName(); + String hostName = getName(); File configFile = TestFileUtils.createTempFile(this, hostName + "-config.xml"); String configPath = configFile.getAbsolutePath(); String storeLocation = getStoreLocation(hostName); @@ -576,9 +576,9 @@ public class VirtualHostRestTest extends QpidRestTestCase throws ConfigurationException { XMLConfiguration testConfiguration = new XMLConfiguration(); - testConfiguration.setProperty("virtualhosts.virtualhost." + hostName + ".store.class", + testConfiguration.setProperty("virtualhost." + hostName + ".store.class", getTestProfileMessageStoreClassName()); - testConfiguration.setProperty("virtualhosts.virtualhost." + hostName + ".store.environment-path", storeLocation); + testConfiguration.setProperty("virtualhost." + hostName + ".store.environment-path", storeLocation); testConfiguration.save(configFile); return testConfiguration; } |