diff options
author | Alex Rudyy <orudyy@apache.org> | 2013-05-22 11:41:53 +0000 |
---|---|---|
committer | Alex Rudyy <orudyy@apache.org> | 2013-05-22 11:41:53 +0000 |
commit | 9287d0deaf8cc05c323c6c06415352c75f27528c (patch) | |
tree | 89b9bfbe0595a7bd1edf482e2506304aab757867 /java | |
parent | b7c0f8d90ac6e5c789f2a93fc8c29ed25e69c707 (diff) | |
download | qpid-python-9287d0deaf8cc05c323c6c06415352c75f27528c.tar.gz |
QPID-4876: Throw an exception when virtual host configuration is not found in virtual host file
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1485163 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
4 files changed, 25 insertions, 9 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java b/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java index 26907ea255..aff84e5832 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java +++ b/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/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java b/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java index 4f60e7e253..478013f61f 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java +++ b/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/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java b/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java index 4e58eae1d2..739efecd90 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java +++ b/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/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java b/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java index 1e49351323..1823b59ba3 100644 --- a/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java +++ b/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java @@ -128,7 +128,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); @@ -575,9 +575,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; } |