diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-08-12 16:44:50 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-08-12 16:44:50 +0000 |
| commit | 3ebbcab976ada9ea97e530770c0003b4b475efce (patch) | |
| tree | b9d65e645d2eb299c1250e61ce4b3b81f6420056 /qpid/java/client | |
| parent | 097470826d8089c37ba5fd13f67badd84aa6c549 (diff) | |
| download | qpid-python-3ebbcab976ada9ea97e530770c0003b4b475efce.tar.gz | |
QPID-4051: use the connecttimeout option value from the BrokerDetails object to control the connect() timeout via the produced ConnectionSettings object
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1372147 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client')
3 files changed, 29 insertions, 12 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java index 987404cb80..89273599b9 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java @@ -245,13 +245,13 @@ public class AMQBrokerDetails implements BrokerDetails _options.put(key, value); } - public long getTimeout() + private int lookupConnectTimeout() { if (_options.containsKey(OPTIONS_CONNECT_TIMEOUT)) { try { - return Long.parseLong(_options.get(OPTIONS_CONNECT_TIMEOUT)); + return Integer.parseInt(_options.get(OPTIONS_CONNECT_TIMEOUT)); } catch (NumberFormatException nfe) { @@ -290,11 +290,6 @@ public class AMQBrokerDetails implements BrokerDetails } } - public void setTimeout(long timeout) - { - setProperty(OPTIONS_CONNECT_TIMEOUT, Long.toString(timeout)); - } - public String toString() { StringBuffer sb = new StringBuffer(); @@ -460,6 +455,8 @@ public class AMQBrokerDetails implements BrokerDetails getBooleanProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY,true)); } + conSettings.setConnectTimeout(lookupConnectTimeout()); + return conSettings; } } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java b/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java index 71d7ffd2a3..4a7fca1efa 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java @@ -59,7 +59,7 @@ public interface BrokerDetails public static final String URL_FORMAT_EXAMPLE = "<transport>://<hostname>[:<port Default=\"" + DEFAULT_PORT + "\">][?<option>='<value>'[,<option>='<value>']]"; - public static final long DEFAULT_CONNECT_TIMEOUT = 30000L; + public static final int DEFAULT_CONNECT_TIMEOUT = 30000; public static final boolean USE_SSL_DEFAULT = false; // pulled these properties from the new BrokerDetails class in the qpid package @@ -101,10 +101,6 @@ public interface BrokerDetails */ public void setProperties(Map<String,String> props); - long getTimeout(); - - void setTimeout(long timeout); - boolean getBooleanProperty(String propName); String toString(); diff --git a/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java b/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java index 506185cbaf..412c458247 100644 --- a/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java +++ b/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java @@ -24,6 +24,7 @@ import junit.framework.TestCase; import org.apache.qpid.client.AMQBrokerDetails; import org.apache.qpid.jms.BrokerDetails; +import org.apache.qpid.transport.ConnectionSettings; import org.apache.qpid.url.URLSyntaxException; public class BrokerDetailsTest extends TestCase @@ -49,6 +50,29 @@ public class BrokerDetailsTest extends TestCase assertFalse("value should be false", Boolean.valueOf(broker.getProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY))); } + public void testDefaultConnectTimeout() throws URLSyntaxException + { + String brokerURL = "tcp://localhost:5672"; + AMQBrokerDetails broker = new AMQBrokerDetails(brokerURL); + + ConnectionSettings settings = broker.buildConnectionSettings(); + + assertEquals("unexpected default connect timeout value", BrokerDetails.DEFAULT_CONNECT_TIMEOUT, settings.getConnectTimeout()); + } + + public void testOverridingConnectTimeout() throws URLSyntaxException + { + int timeout = 2 * BrokerDetails.DEFAULT_CONNECT_TIMEOUT; + assertTrue(timeout != BrokerDetails.DEFAULT_CONNECT_TIMEOUT); + + String brokerURL = "tcp://localhost:5672?" + BrokerDetails.OPTIONS_CONNECT_TIMEOUT + "='" + timeout + "'"; + AMQBrokerDetails broker = new AMQBrokerDetails(brokerURL); + + ConnectionSettings settings = broker.buildConnectionSettings(); + + assertEquals("unexpected connect timeout value", timeout, settings.getConnectTimeout()); + } + public void testMultiParameters() throws URLSyntaxException { String url = "tcp://localhost:5672?timeout='200',immediatedelivery='true'"; |
