You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by aw...@apache.org on 2009/04/18 00:17:56 UTC
svn commit: r766167 -
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/BasicHttpFetcher.java
Author: awiner
Date: Fri Apr 17 22:17:55 2009
New Revision: 766167
URL: http://svn.apache.org/viewvc?rev=766167&view=rev
Log:
SHINDIG-1018: BasicHttpFetcher hard-codes the connection timeout
- Adds a setConnectionTimeoutMs() method
- Patch from Jordan Zimmerman
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/BasicHttpFetcher.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/BasicHttpFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/BasicHttpFetcher.java?rev=766167&r1=766166&r2=766167&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/BasicHttpFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/BasicHttpFetcher.java Fri Apr 17 22:17:55 2009
@@ -17,17 +17,6 @@
*/
package org.apache.shindig.gadgets.http;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.Proxy;
-import java.net.Socket;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.Inflater;
-import java.util.zip.InflaterInputStream;
-
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
@@ -42,6 +31,17 @@
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.Proxy;
+import java.net.Socket;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.Inflater;
+import java.util.zip.InflaterInputStream;
+
import com.google.common.collect.Maps;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -57,10 +57,11 @@
*/
@Singleton
public class BasicHttpFetcher implements HttpFetcher {
- private static final int CONNECT_TIMEOUT_MS = 5000;
+ private static final int DEFAULT_CONNECT_TIMEOUT_MS = 5000;
private static final int DEFAULT_MAX_OBJECT_SIZE = 1024 * 1024;
private Provider<Proxy> proxyProvider;
+ private volatile int connectionTimeoutMs;
/**
* Creates a new fetcher for fetching HTTP objects. Not really suitable
@@ -70,8 +71,10 @@
*
* @param maxObjSize Maximum size, in bytes, of object to fetch. Except this
* isn't actually implemented.
+ * @param connectionTimeoutMs timeout, in milliseconds, for requests.
*/
- public BasicHttpFetcher(int maxObjSize) {
+ public BasicHttpFetcher(int maxObjSize, int connectionTimeoutMs) {
+ this.connectionTimeoutMs = connectionTimeoutMs;
}
/**
@@ -79,7 +82,7 @@
*/
@Inject
public BasicHttpFetcher() {
- this(DEFAULT_MAX_OBJECT_SIZE);
+ this(DEFAULT_MAX_OBJECT_SIZE, DEFAULT_CONNECT_TIMEOUT_MS);
}
// TODO Re-add Inject annotation once shindig is upgraded to guice 2.0, because at the moment this causes problems
@@ -91,6 +94,15 @@
}
/**
+ * Change the connection timeout for fetches.
+ *
+ * @param connectionTimeoutMs new connection timeout in milliseconds
+ */
+ public void setConnectionTimeoutMs(int connectionTimeoutMs) {
+ this.connectionTimeoutMs = connectionTimeoutMs;
+ }
+
+ /**
* @param httpMethod
* @param responseCode
* @return A HttpResponse object made by consuming the response of the
@@ -173,7 +185,7 @@
}
httpMethod.setFollowRedirects(false);
- httpMethod.getParams().setSoTimeout(CONNECT_TIMEOUT_MS);
+ httpMethod.getParams().setSoTimeout(connectionTimeoutMs);
httpMethod.setRequestHeader("Content-Length", String.valueOf(request.getPostBodyLength()));
httpMethod.setRequestHeader("Accept-Encoding", "gzip, deflate");