From a4c2ad8da3d30a1bde3e2053e3d3d08ac814aa2b Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Wed, 22 May 2013 11:41:53 +0000 Subject: 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@1485163 13f79535-47bb-0310-9956-ffa450edef68 --- .../server/configuration/VirtualHostConfiguration.java | 5 ++--- .../org/apache/qpid/server/model/VirtualHostTest.java | 8 +++++--- .../qpid/server/virtualhost/VirtualHostImplTest.java | 15 +++++++++++++++ .../org/apache/qpid/systest/rest/VirtualHostRestTest.java | 6 +++--- 4 files changed, 25 insertions(+), 9 deletions(-) (limited to 'qpid/java') 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", - "" + ReplicaMessageStore.class.getName() + ""); + String hostName = getName(); + File configPath = TestFileUtils.createTempFile(this, ".xml", "<" + hostName + + ">" + ReplicaMessageStore.class.getName() + ""); try { Map attributes = new HashMap(); - 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 1e49351323..1823b59ba3 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 @@ -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; } -- cgit v1.2.1