Author: lindner
Date: Thu Nov 20 17:38:33 2008
New Revision: 719445
URL: http://svn.apache.org/viewvc?rev=719445&view=rev
Log:
SHINDIG-701 | Configurable Proxy Provider. Patch from Rodrigo Gallardo
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=719445&r1=719444&r2=719445&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
Thu Nov 20 17:38:33 2008
@@ -19,7 +19,10 @@
import com.google.common.collect.Maps;
import com.google.inject.Inject;
+import com.google.inject.Provider;
import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
@@ -28,6 +31,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
+import java.net.Proxy;
import java.net.URL;
import java.util.List;
import java.util.Map;
@@ -46,6 +50,7 @@
private static final int DEFAULT_MAX_OBJECT_SIZE = 1024 * 1024;
private final HttpCache cache;
+ private Provider<Proxy> proxyProvider;
/**
* Creates a new fetcher for fetching HTTP objects. Not really suitable
@@ -68,6 +73,11 @@
this(cache, DEFAULT_MAX_OBJECT_SIZE);
}
+ @Inject(optional=true)
+ public void setProxyProvider(Provider<Proxy> proxyProvider) {
+ this.proxyProvider = proxyProvider;
+ }
+
/**
* Initializes the connection.
*
@@ -77,7 +87,8 @@
*/
private HttpURLConnection getConnection(HttpRequest request) throws
IOException {
URL url = new URL(request.getUri().toString());
- HttpURLConnection fetcher = (HttpURLConnection)url.openConnection();
+ HttpURLConnection fetcher = (HttpURLConnection) ( proxyProvider == null ?
+ url.openConnection() : url.openConnection(proxyProvider.get()));
fetcher.setConnectTimeout(CONNECT_TIMEOUT_MS);
fetcher.setRequestProperty("Accept-Encoding", "gzip, deflate");
fetcher.setInstanceFollowRedirects(request.getFollowRedirects());
@@ -125,7 +136,7 @@
} else if (encoding.equalsIgnoreCase("deflate")) {
Inflater inflater = new Inflater(true);
is = new InflaterInputStream(baseIs, inflater);
- }
+ }
byte[] body = IOUtils.toByteArray(is);
return new HttpResponseBuilder()