summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-05-22 14:03:25 +0000
committerAlex Rudyy <orudyy@apache.org>2013-05-22 14:03:25 +0000
commit3464ce41e0ce966e89f50fc6d4ebe607178da08e (patch)
tree9edec61a5bcd856d0ca8a8031cdcf0f8412a45c8
parent8b3deee37e700b333e44c7e8c92b6c6604cbd7a6 (diff)
downloadqpid-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
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java5
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java8
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java15
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java6
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;
}