From 8ec93cf4ee590ca42b2cfc6387889f603f97668b Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Mon, 6 Apr 2015 10:55:32 +0000 Subject: QPID-6442: [Java Broker] Compare the Broker#defaultVirtualHost against the virtualhost name, not the virtualhost node name. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1671509 13f79535-47bb-0310-9956-ffa450edef68 --- .../DefaultVirtualHostAliasImpl.java | 5 ++++- .../server/virtualhostalias/HostNameAliasImpl.java | 4 +++- .../apache/qpid/server/util/BrokerTestHelper.java | 5 +++-- .../virtualhostalias/VirtualHostAliasTest.java | 20 ++++++++++++++------ 4 files changed, 24 insertions(+), 10 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java index cab9794375..e4872a2ba6 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java @@ -26,6 +26,7 @@ import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.DefaultVirtualHostAlias; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.Port; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.model.VirtualHostNode; public final class DefaultVirtualHostAliasImpl @@ -48,7 +49,9 @@ public final class DefaultVirtualHostAliasImpl String defaultHostName = broker.getDefaultVirtualHost(); for(VirtualHostNode vhn : broker.getVirtualHostNodes()) { - if(vhn.getName().equals(defaultHostName)) + VirtualHost vh = vhn.getVirtualHost(); + + if(vh != null && vh.getName().equals(defaultHostName)) { return vhn; } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java index 0a1c2abd75..4efb472a39 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java @@ -42,6 +42,7 @@ import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.HostNameAlias; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.Port; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.model.VirtualHostNode; import org.apache.qpid.server.model.port.AmqpPort; @@ -90,7 +91,8 @@ public class HostNameAliasImpl String defaultHostName = broker.getDefaultVirtualHost(); for (VirtualHostNode vhn : broker.getVirtualHostNodes()) { - if (vhn.getName().equals(defaultHostName)) + VirtualHost vh = vhn.getVirtualHost(); + if (vh != null && vh.getName().equals(defaultHostName)) { return vhn; } diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java index 15be5c0282..84d2050450 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java @@ -122,13 +122,14 @@ public class BrokerTestHelper return createVirtualHost(attributes, broker); } - public static VirtualHostImpl createVirtualHost(final Map attributes, + private static VirtualHostImpl createVirtualHost(final Map attributes, final Broker broker) { ConfiguredObjectFactory objectFactory = broker.getObjectFactory(); VirtualHostNode virtualHostNode = mock(VirtualHostNode.class); - when(virtualHostNode.getName()).thenReturn((String) attributes.get(VirtualHostNode.NAME)); + String virtualHostNodeName = String.format("%s_%s", attributes.get(VirtualHostNode.NAME), "_node"); + when(virtualHostNode.getName()).thenReturn( virtualHostNodeName); when(virtualHostNode.getTaskExecutor()).thenReturn(TASK_EXECUTOR); when(virtualHostNode.getChildExecutor()).thenReturn(TASK_EXECUTOR); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhostalias/VirtualHostAliasTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhostalias/VirtualHostAliasTest.java index 1a7e2cdc0d..e555982397 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhostalias/VirtualHostAliasTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhostalias/VirtualHostAliasTest.java @@ -61,7 +61,10 @@ public class VirtualHostAliasTest extends QpidTestCase _vhosts = new HashMap<>(); for(String name : new String[] { "red", "blue", "purple", "black" }) { - _vhosts.put(name, BrokerTestHelper.createVirtualHost(name, _broker)); + VirtualHostImpl virtualHost = BrokerTestHelper.createVirtualHost(name, _broker); + VirtualHostNode vhn = virtualHost.getParent(VirtualHostNode.class); + assertNotSame(vhn.getName(), virtualHost.getName()); + _vhosts.put(name, virtualHost); } ConfiguredObjectFactory objectFactory = _broker.getObjectFactory(); when(_broker.getDefaultVirtualHost()).thenReturn("black"); @@ -75,7 +78,7 @@ public class VirtualHostAliasTest extends QpidTestCase } - public void testDefaultAliases() + public void testDefaultAliases_VirtualHostNameAlias() { VirtualHostImpl vhost = _port.getVirtualHost("red"); @@ -90,20 +93,25 @@ public class VirtualHostAliasTest extends QpidTestCase vhost = _port.getVirtualHost("orange!"); assertNull(vhost); + } + + public void testDefaultAliases_DefaultVirtualHostAlias() + { // test the default vhost resolution - vhost = _port.getVirtualHost(""); + VirtualHostImpl vhost = _port.getVirtualHost(""); assertNotNull(vhost); assertEquals(_vhosts.get("black"), vhost); + } - + public void testDefaultAliases_HostNameAlias() + { // 127.0.0.1 should always resolve and thus return the default vhost - vhost = _port.getVirtualHost("127.0.0.1"); + VirtualHostImpl vhost = _port.getVirtualHost("127.0.0.1"); assertNotNull(vhost); assertEquals(_vhosts.get("black"), vhost); - } public void testPatternMatching() -- cgit v1.2.1