From 8d1013bc54489d248563d4530fe63dd075f55663 Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Thu, 27 Jun 2013 13:23:18 +0000 Subject: QPID-4943: Allow setting client connection property 'qpid.close_when_no_route' as string and boolean git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1497347 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/protocol/AMQProtocolEngine.java | 4 +- .../server/protocol/AMQProtocolEngineTest.java | 72 ++++++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/AMQProtocolEngineTest.java (limited to 'qpid/java') diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java index 1b24671575..ef3fc97ab8 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java @@ -1085,10 +1085,10 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _clientProperties = clientProperties; if (_clientProperties != null) { - Boolean closeWhenNoRoute = _clientProperties.getBoolean(ConnectionStartProperties.QPID_CLOSE_WHEN_NO_ROUTE); + String closeWhenNoRoute = _clientProperties.getString(ConnectionStartProperties.QPID_CLOSE_WHEN_NO_ROUTE); if (closeWhenNoRoute != null) { - _closeWhenNoRoute = closeWhenNoRoute; + _closeWhenNoRoute = Boolean.parseBoolean(closeWhenNoRoute); if(_logger.isDebugEnabled()) { _logger.debug("Client set closeWhenNoRoute=" + _closeWhenNoRoute + " for protocol engine " + this); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/AMQProtocolEngineTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/AMQProtocolEngineTest.java new file mode 100644 index 0000000000..cd2a0959dc --- /dev/null +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/AMQProtocolEngineTest.java @@ -0,0 +1,72 @@ +package org.apache.qpid.server.protocol; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.qpid.framing.FieldTable; +import org.apache.qpid.properties.ConnectionStartProperties; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.Port; +import org.apache.qpid.server.model.Transport; +import org.apache.qpid.server.util.BrokerTestHelper; +import org.apache.qpid.test.utils.QpidTestCase; +import org.apache.qpid.transport.network.NetworkConnection; + +public class AMQProtocolEngineTest extends QpidTestCase +{ + private Broker _broker; + private Port _port; + private NetworkConnection _network; + private Transport _transport; + + public void setUp() throws Exception + { + super.setUp(); + BrokerTestHelper.setUp(); + _broker = BrokerTestHelper.createBrokerMock(); + when(_broker.getAttribute(Broker.CONNECTION_CLOSE_WHEN_NO_ROUTE)).thenReturn(true); + + _port = mock(Port.class); + _network = mock(NetworkConnection.class); + _transport = Transport.TCP; + } + + public void tearDown() throws Exception + { + try + { + super.tearDown(); + } + finally + { + BrokerTestHelper.tearDown(); + } + } + + public void testSetClientPropertiesForNoRouteProvidedAsString() + { + AMQProtocolEngine engine = new AMQProtocolEngine(_broker, _network, 0, _port, _transport); + assertTrue("Unexpected closeWhenNoRoute before client properties set", engine.isCloseWhenNoRoute()); + + Map clientProperties = new HashMap(); + clientProperties.put(ConnectionStartProperties.QPID_CLOSE_WHEN_NO_ROUTE, Boolean.FALSE.toString()); + engine.setClientProperties(FieldTable.convertToFieldTable(clientProperties)); + + assertFalse("Unexpected closeWhenNoRoute after client properties set", engine.isCloseWhenNoRoute()); + } + + public void testSetClientPropertiesForNoRouteProvidedAsBoolean() + { + AMQProtocolEngine engine = new AMQProtocolEngine(_broker, _network, 0, _port, _transport); + assertTrue("Unexpected closeWhenNoRoute before client properties set", engine.isCloseWhenNoRoute()); + + Map clientProperties = new HashMap(); + clientProperties.put(ConnectionStartProperties.QPID_CLOSE_WHEN_NO_ROUTE, Boolean.FALSE); + engine.setClientProperties(FieldTable.convertToFieldTable(clientProperties)); + + assertFalse("Unexpected closeWhenNoRoute after client properties set", engine.isCloseWhenNoRoute()); + } +} -- cgit v1.2.1