aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/util
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2012-12-23 00:21:57 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2012-12-23 00:21:57 +0100
commiteaa0a2a0828037227312970668eba7bf951b4049 (patch)
treeeced0d4f6c1b53abe0b2af527ecba3bd493684cd /src/main/java/io/trygvis/esper/testing/util
parent78e7933c0af1d11d9476c5ee213c64ad87066f55 (diff)
downloadesper-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.java24
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 {