Author: hgomez
Date: Mon May  8 05:53:41 2006
New Revision: 405039

URL: http://svn.apache.org/viewcvs?rev=405039&view=rev
Log:
Add support for connection and reply timeout. For now only HttpClient based 
Transport support connection and reply timeout. Lite based Transport allow only 
reply timeout

Modified:
    
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
    
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfig.java
    
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfigImpl.java

Modified: 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java?rev=405039&r1=405038&r2=405039&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
 (original)
+++ 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
 Mon May  8 05:53:41 2006
@@ -57,8 +57,15 @@
        }
 
        public Object sendRequest(XmlRpcRequest pRequest) throws 
XmlRpcException {
-               XmlRpcHttpClientConfig config = (XmlRpcHttpClientConfig) 
pRequest.getConfig();
+               XmlRpcHttpClientConfig config = (XmlRpcHttpClientConfig) 
pRequest.getConfig();      
                method = new PostMethod(config.getServerURL().toString());
+        
+        if (config.getConnectionTimeout() != 0)
+            
client.getHttpConnectionManager().getParams().setConnectionTimeout(config.getConnectionTimeout());
+        
+        if (config.getReplyTimeout() != 0)
+            
client.getHttpConnectionManager().getParams().setSoTimeout(config.getConnectionTimeout());
+        
                method.getParams().setVersion(HttpVersion.HTTP_1_1);
                return super.sendRequest(pRequest);
        }

Modified: 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java?rev=405039&r1=405038&r2=405039&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
 (original)
+++ 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
 Mon May  8 05:53:41 2006
@@ -195,7 +195,10 @@
        protected InputStream getInputStream() throws XmlRpcException {
                final byte[] buffer = new byte[2048];
                try {
-                       input = new 
BufferedInputStream(socket.getInputStream());
+            // If reply timeout specified, set the socket timeout accordingly
+            if (config.getReplyTimeout() != 0)
+                socket.setSoTimeout(config.getReplyTimeout());
+            input = new BufferedInputStream(socket.getInputStream());
                        // start reading  server response headers
                        String line = HttpUtil.readLine(input, buffer);
                        StringTokenizer tokens = new StringTokenizer(line);

Modified: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfig.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfig.java?rev=405039&r1=405038&r2=405039&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfig.java
 (original)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfig.java
 Mon May  8 05:53:41 2006
@@ -33,4 +33,15 @@
         * @throws IllegalStateException A user name is configured, but no 
password.
         */ 
        String getBasicPassword();
+    
+    /** Return the connection timeout in milliseconds
+     * @ return connection timeout in milliseconds or 0 if no set
+     */
+    int getConnectionTimeout();
+    
+    /** Return the reply timeout in milliseconds
+     * @ return reply timeout in milliseconds or 0 if no set
+     */
+    int getReplyTimeout();
+    
 }

Modified: 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfigImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfigImpl.java?rev=405039&r1=405038&r2=405039&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfigImpl.java
 (original)
+++ 
webservices/xmlrpc/trunk/common/src/main/java/org/apache/xmlrpc/common/XmlRpcHttpRequestConfigImpl.java
 Mon May  8 05:53:41 2006
@@ -26,6 +26,9 @@
        private boolean gzipRequesting;
        private String basicUserName;
        private String basicPassword;
+    private int    connectionTimeout = 0;
+    private int    replyTimeout = 0;
+    
        /** Sets, whether gzip compression is being used for
         * transmitting the request.
         * @param pCompressing True for enabling gzip compression,
@@ -71,4 +74,27 @@
        }
 
        public String getBasicPassword() { return basicPassword; }
+
+    /** Set the connection timeout in milliseconds.
+     * @param pTimeout connection timeout, 0 to disable it
+     */
+    public void setConnectionTimeout(int pTimeout) {
+        connectionTimeout = pTimeout;
+    }
+
+    public int getConnectionTimeout() {
+        return connectionTimeout;
+    }
+
+    /** Set the reply timeout in milliseconds.
+     * @param pTimeout reply timeout, 0 to disable it
+     */
+    public void setReplyTimeout(int pTimeout) {
+        replyTimeout = pTimeout;
+    }
+
+    public int getReplyTimeout() {
+        return replyTimeout;
+    }
+
 }


Reply via email to