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 | fe40f3e145a4941ee09403582ade3868ebdf04ea (patch) | |
| tree | edf8095f4952a6ebb75e9fbc5ff6ecf6ad2a687b /java/client | |
| parent | 0174246ad5ba705552907803313616b4efd65eeb (diff) | |
| download | qpid-python-fe40f3e145a4941ee09403582ade3868ebdf04ea.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/qpid@1372147 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client')
3 files changed, 29 insertions, 12 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java b/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java index 987404cb80..89273599b9 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java +++ b/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/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java b/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java index 71d7ffd2a3..4a7fca1efa 100644 --- a/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java +++ b/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/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java index 506185cbaf..412c458247 100644 --- a/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java +++ b/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'"; |
