hgomez 2005/07/26 05:10:47
Modified: src/java/org/apache/xmlrpc CommonsXmlRpcTransport.java Log: Add Timeout support for underlying HttpClient Revision Changes Path 1.8 +34 -9 ws-xmlrpc/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java Index: CommonsXmlRpcTransport.java =================================================================== RCS file: /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/CommonsXmlRpcTransport.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- CommonsXmlRpcTransport.java 28 Apr 2005 09:05:06 -0000 1.7 +++ CommonsXmlRpcTransport.java 26 Jul 2005 12:10:46 -0000 1.8 @@ -46,6 +46,13 @@ */ public class CommonsXmlRpcTransport implements XmlRpcTransport { + private URL url; + private HttpClient client; + private final Header userAgentHeader = new Header("User-Agent", XmlRpc.version); + private boolean http11 = false; // defaults to HTTP 1.0 + private boolean gzip = false; + private boolean rgzip = false; + private Credentials creds; protected PostMethod method; @@ -53,6 +60,7 @@ public CommonsXmlRpcTransport(URL url, HttpClient client) { this.url = url; + if (client == null) { HttpClient newClient = new HttpClient(); @@ -69,14 +77,6 @@ this(url, null); } - private URL url; - private HttpClient client; - private final Header userAgentHeader = new Header("User-Agent", XmlRpc.version); - private boolean http11 = false; // defaults to HTTP 1.0 - private boolean gzip = false; - private boolean rgzip = false; - private Credentials creds; - public InputStream sendXmlRpc(byte[] request) throws IOException, XmlRpcClientException { method = new PostMethod(url.toString()); @@ -167,6 +167,31 @@ } /** + * Sets the socket timeout (<tt>SO_TIMEOUT</tt>) in milliseconds which is the + * timeout for waiting for data. A timeout value of zero is interpreted as an + * infinite timeout. + * + * @param newTimeoutInMilliseconds Timeout in milliseconds + */ + public void setTimeout(int timeout) + { + client.setTimeout(timeout); + } + + /** + * Sets the timeout until a connection is etablished. A timeout value of + * zero means the timeout is not used. The default value is zero. + * + * @param newTimeoutInMilliseconds Timeout in milliseconds. + * + * @see HttpConnection#setConnectionTimeout(int) + */ + public void setConnectionTimeout(int ctimeout) + { + client.setConnectionTimeout(ctimeout); + } + + /** * Sets Authentication for this client, very basic for now user/password * * @param user