diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-23 00:21:57 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-23 00:21:57 +0100 |
commit | eaa0a2a0828037227312970668eba7bf951b4049 (patch) | |
tree | eced0d4f6c1b53abe0b2af527ecba3bd493684cd /src/main/java/io/trygvis/esper/testing/util | |
parent | 78e7933c0af1d11d9476c5ee213c64ad87066f55 (diff) | |
download | esper-testing-eaa0a2a0828037227312970668eba7bf951b4049.tar.gz esper-testing-eaa0a2a0828037227312970668eba7bf951b4049.tar.bz2 esper-testing-eaa0a2a0828037227312970668eba7bf951b4049.tar.xz esper-testing-eaa0a2a0828037227312970668eba7bf951b4049.zip |
o Storing the raw bytes with the parsed data from Jenkins.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/util')
-rw-r--r-- | src/main/java/io/trygvis/esper/testing/util/HttpClient.java | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/util/HttpClient.java b/src/main/java/io/trygvis/esper/testing/util/HttpClient.java index a194cd1..69c74fe 100644 --- a/src/main/java/io/trygvis/esper/testing/util/HttpClient.java +++ b/src/main/java/io/trygvis/esper/testing/util/HttpClient.java @@ -3,14 +3,15 @@ package io.trygvis.esper.testing.util; import fj.*; import fj.data.*; import io.trygvis.esper.testing.*; +import org.apache.commons.io.*; import org.apache.http.conn.scheme.*; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.tsccm.*; import org.apache.http.params.*; import org.codehaus.httpcache4j.*; import org.codehaus.httpcache4j.cache.*; +import org.codehaus.httpcache4j.payload.*; import org.codehaus.httpcache4j.resolver.*; -import org.h2.util.*; import org.slf4j.*; import java.io.*; @@ -39,13 +40,13 @@ public class HttpClient<A> { try { return f.f(inputStream); } finally { - IOUtils.closeSilently(inputStream); + IOUtils.closeQuietly(inputStream); } } }; } - public Option<A> fetch(URI uri) { + public Option<P2<A, byte[]>> fetch(URI uri) { HTTPResponse response = null; try { @@ -57,10 +58,25 @@ public class HttpClient<A> { return none(); } - return f.f(response); + final ByteArrayOutputStream buffer = new ByteArrayOutputStream(1024 * 1024); + + IOUtils.copy(response.getPayload().getInputStream(), buffer); + + final byte[] bytes = buffer.toByteArray(); + + response = new HTTPResponse(new ByteArrayPayload(new ByteArrayInputStream(bytes), response.getPayload().getMimeType()), response.getStatusLine(), response.getHeaders()); + + return f.f(response).map(new F<A, P2<A, byte[]>>() { + public P2<A, byte[]> f(A a) { + return P.p(a, bytes); + } + }); } catch (HTTPException e) { logger.warn("Error while fetching: " + uri, e); return none(); + } catch (IOException e) { + logger.warn("Error while fetching: " + uri, e); + return none(); } finally { if (response != null) { try { |