From d02ae98fb4b23111cf2fbda326c833e11e758336 Mon Sep 17 00:00:00 2001 From: Robert Greig Date: Fri, 9 Feb 2007 10:24:35 +0000 Subject: QPID-357 : Add support for a "default" virtual host git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@505242 13f79535-47bb-0310-9956-ffa450edef68 --- java/broker/etc/virtualhosts.xml | 1 + .../configuration/VirtualHostConfiguration.java | 6 +++++- .../qpid/server/util/NullApplicationRegistry.java | 1 + .../qpid/server/virtualhost/VirtualHostRegistry.java | 19 +++++++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) (limited to 'java/broker') diff --git a/java/broker/etc/virtualhosts.xml b/java/broker/etc/virtualhosts.xml index 2a573535de..a41554f7bc 100644 --- a/java/broker/etc/virtualhosts.xml +++ b/java/broker/etc/virtualhosts.xml @@ -20,6 +20,7 @@ - --> + test localhost 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 c191bef447..15f1794908 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 @@ -174,7 +174,11 @@ public class VirtualHostConfiguration public void performBindings() throws AMQException, ConfigurationException { List virtualHostNames = _config.getList(VIRTUALHOST_PROPERTY_BASE + "name"); - + String defaultVirtualHostName = _config.getString("default"); + if(defaultVirtualHostName != null) + { + ApplicationRegistry.getInstance().getVirtualHostRegistry().setDefaultVirtualHostName(defaultVirtualHostName); + } _logger.info("Configuring " + virtualHostNames == null ? 0 : virtualHostNames.size() + " virtual hosts: " + virtualHostNames); for(Object nameObject : virtualHostNames) diff --git a/java/broker/src/main/java/org/apache/qpid/server/util/NullApplicationRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/util/NullApplicationRegistry.java index e9a3a3d048..6bd060bbfd 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/util/NullApplicationRegistry.java +++ b/java/broker/src/main/java/org/apache/qpid/server/util/NullApplicationRegistry.java @@ -65,6 +65,7 @@ public class NullApplicationRegistry extends ApplicationRegistry _virtualHostRegistry = new VirtualHostRegistry(); VirtualHost dummyHost = new VirtualHost("test",getConfiguration()); _virtualHostRegistry.registerVirtualHost(dummyHost); + _virtualHostRegistry.setDefaultVirtualHostName("test"); _authenticationManager = new NullAuthenticationManager(); _configuration.addProperty("heartbeat.delay", 10 * 60); // 10 minutes diff --git a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java index 25f67c1cf3..7fb9b23d3f 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java +++ b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java @@ -31,6 +31,9 @@ public class VirtualHostRegistry { private final Map _registry = new ConcurrentHashMap(); + + private String _defaultVirtualHostName; + public synchronized void registerVirtualHost(VirtualHost host) throws Exception { if(_registry.containsKey(host.getName())) @@ -42,9 +45,25 @@ public class VirtualHostRegistry public VirtualHost getVirtualHost(String name) { + if(name == null || name.trim().length() == 0 ) + { + name = getDefaultVirtualHostName(); + } + return _registry.get(name); } + private String getDefaultVirtualHostName() + { + return _defaultVirtualHostName; + } + + public void setDefaultVirtualHostName(String defaultVirtualHostName) + { + _defaultVirtualHostName = defaultVirtualHostName; + } + + public Collection getVirtualHosts() { return new ArrayList(_registry.values()); -- cgit v1.2.1