You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2012/08/12 18:44:51 UTC

svn commit: r1372147 - in /qpid/trunk/qpid/java: client/src/main/java/org/apache/qpid/client/ client/src/main/java/org/apache/qpid/jms/ client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/ common/src/main/java/org/apache/qpid/transport/...

Author: robbie
Date: Sun Aug 12 16:44:50 2012
New Revision: 1372147

URL: http://svn.apache.org/viewvc?rev=1372147&view=rev
Log:
QPID-4051: use the connecttimeout option value from the BrokerDetails object to control the connect() timeout via the produced ConnectionSettings object

Modified:
    qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java
    qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java
    qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java
    qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
    qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java

Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java?rev=1372147&r1=1372146&r2=1372147&view=diff
==============================================================================
--- qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java (original)
+++ qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java Sun Aug 12 16:44:50 2012
@@ -245,13 +245,13 @@ public class AMQBrokerDetails implements
         _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
     	}
     }    
 
-    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
                     getBooleanProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY,true));
         }
 
+        conSettings.setConnectTimeout(lookupConnectTimeout());
+
         return conSettings;
     }
 }

Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java?rev=1372147&r1=1372146&r2=1372147&view=diff
==============================================================================
--- qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java (original)
+++ qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java Sun Aug 12 16:44:50 2012
@@ -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();

Modified: qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java?rev=1372147&r1=1372146&r2=1372147&view=diff
==============================================================================
--- qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java (original)
+++ qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java Sun Aug 12 16:44:50 2012
@@ -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 T
         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'";

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java?rev=1372147&r1=1372146&r2=1372147&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java Sun Aug 12 16:44:50 2012
@@ -60,6 +60,7 @@ public class ConnectionSettings
     private int maxChannelCount = 32767;
     private int maxFrameSize = 65535;
     private int heartbeatInterval;
+    private int connectTimeout = 30000;
     private int readBufferSize = QpidProperty.intProperty(65535, RECEIVE_BUFFER_SIZE_PROP_NAME, LEGACY_RECEIVE_BUFFER_SIZE_PROP_NAME).get();
     private int writeBufferSize = QpidProperty.intProperty(65535, SEND_BUFFER_SIZE_PROP_NAME, LEGACY_SEND_BUFFER_SIZE_PROP_NAME).get();;
     private long transportTimeout = 60000;
@@ -345,6 +346,16 @@ public class ConnectionSettings
         this.trustStoreType = trustStoreType;
     }
 
+    public int getConnectTimeout()
+    {
+        return connectTimeout;
+    }
+
+    public void setConnectTimeout(int connectTimeout)
+    {
+        this.connectTimeout = connectTimeout;
+    }
+
     public int getReadBufferSize()
     {
         return readBufferSize;

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java?rev=1372147&r1=1372146&r2=1372147&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java Sun Aug 12 16:44:50 2012
@@ -75,7 +75,7 @@ public class IoNetworkTransport implemen
 
             InetAddress address = InetAddress.getByName(settings.getHost());
 
-            _socket.connect(new InetSocketAddress(address, settings.getPort()), TIMEOUT);
+            _socket.connect(new InetSocketAddress(address, settings.getPort()), settings.getConnectTimeout());
         }
         catch (SocketException e)
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org