diff --git a/README.md b/README.md index 29144c3b8..5cace265f 100644 --- a/README.md +++ b/README.md @@ -395,7 +395,7 @@ When you build the latest code from source, you'll have access to the latest sna net.lightbody.bmp browsermob-core - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT test ``` diff --git a/browsermob-core/pom.xml b/browsermob-core/pom.xml index f28c31717..f0f20862d 100644 --- a/browsermob-core/pom.xml +++ b/browsermob-core/pom.xml @@ -6,7 +6,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT 4.0.0 diff --git a/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java b/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java index 59a864640..1be4b6f12 100644 --- a/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java +++ b/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java @@ -163,6 +163,22 @@ public HarCaptureFilter(HttpRequest originalRequest, ChannelHandlerContext ctx, this.harEntry = new HarEntry(currentPageRef); } + @Override + public HttpObject proxyToClientResponse(HttpObject httpObject) { + if (httpObject instanceof LastHttpContent) { + if (harEntry.getResponse().getStatus() == 0) { + HarCaptureFilter.logFailedRequestIfRequired(harEntry.getRequest(), harEntry.getResponse()); + createStatsDClient(); + statsDClient.get().increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl())) + .concat("." + harEntry.getResponse().getStatus()).concat(".request_timeout")); + stopStatsDClient(); + + } + } + + return super.proxyToClientResponse(httpObject); + } + @Override public HttpResponse clientToProxyRequest(HttpObject httpObject) { // if a ServerResponseCaptureFilter is configured, delegate to it to collect the client request. if it is not diff --git a/browsermob-core/src/main/java/net/lightbody/bmp/filters/HttpConnectHarCaptureFilter.java b/browsermob-core/src/main/java/net/lightbody/bmp/filters/HttpConnectHarCaptureFilter.java index e3d9a1d54..de4829a67 100644 --- a/browsermob-core/src/main/java/net/lightbody/bmp/filters/HttpConnectHarCaptureFilter.java +++ b/browsermob-core/src/main/java/net/lightbody/bmp/filters/HttpConnectHarCaptureFilter.java @@ -1,17 +1,11 @@ package net.lightbody.bmp.filters; import com.google.common.cache.CacheBuilder; -import com.timgroup.statsd.NonBlockingStatsDClient; -import com.timgroup.statsd.StatsDClient; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.HttpObject; import io.netty.handler.codec.http.HttpRequest; import io.netty.handler.codec.http.HttpResponse; -import net.lightbody.bmp.core.har.Har; -import net.lightbody.bmp.core.har.HarEntry; -import net.lightbody.bmp.core.har.HarRequest; -import net.lightbody.bmp.core.har.HarResponse; -import net.lightbody.bmp.core.har.HarTimings; +import net.lightbody.bmp.core.har.*; import net.lightbody.bmp.filters.support.HttpConnectTiming; import net.lightbody.bmp.filters.util.HarCaptureUtil; import net.lightbody.bmp.util.HttpUtil; @@ -25,8 +19,6 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; -import static net.lightbody.bmp.filters.StatsDMetricsFilter.*; - /** * This filter captures HAR data for HTTP CONNECT requests. CONNECTs are "meta" requests that must be made before HTTPS * requests, but are not populated as separate requests in the HAR. Most information from HTTP CONNECTs (such as SSL @@ -38,7 +30,6 @@ */ public class HttpConnectHarCaptureFilter extends HttpsAwareFiltersAdapter implements ModifiedRequestAwareFilter { private static final Logger log = LoggerFactory.getLogger(HttpConnectHarCaptureFilter.class); - private static final StatsDClient statsDClient = new NonBlockingStatsDClient("automated_tests", getStatsDHost(), getStatsDPort()); /** * The currently active HAR at the time the current request is received. @@ -336,8 +327,6 @@ private HarEntry createHarEntryForFailedCONNECT(String errorMessage) { HarResponse response = HarCaptureUtil.createHarResponseForFailure(); harEntry.setResponse(response); - statsDClient.increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl())) - .concat("." + harEntry.getResponse().getStatus()).concat(".failed_connect_request")); response.setError(errorMessage); diff --git a/browsermob-core/src/test/groovy/net/lightbody/bmp/proxy/WhitelistTest.groovy b/browsermob-core/src/test/groovy/net/lightbody/bmp/proxy/WhitelistTest.groovy index 55fae8ce0..aa2d40b59 100644 --- a/browsermob-core/src/test/groovy/net/lightbody/bmp/proxy/WhitelistTest.groovy +++ b/browsermob-core/src/test/groovy/net/lightbody/bmp/proxy/WhitelistTest.groovy @@ -37,7 +37,7 @@ class WhitelistTest extends MockServerTest { @Test void testWhitelistCannotShortCircuitCONNECT() { HttpRequest request = mock(HttpRequest.class) - when(request.getMethod()).thenReturn(HttpMethod.CONNECT) + when(request.method()).thenReturn(HttpMethod.CONNECT) when(request.uri()).thenReturn('somedomain.com:443') when(request.protocolVersion()).thenReturn(HttpVersion.HTTP_1_1) diff --git a/browsermob-dist/pom.xml b/browsermob-dist/pom.xml index 159509b81..32e80f85d 100644 --- a/browsermob-dist/pom.xml +++ b/browsermob-dist/pom.xml @@ -4,7 +4,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT 4.0.0 diff --git a/browsermob-legacy/pom.xml b/browsermob-legacy/pom.xml index 36ff0d817..37b2b5635 100644 --- a/browsermob-legacy/pom.xml +++ b/browsermob-legacy/pom.xml @@ -6,7 +6,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT 4.0.0 diff --git a/browsermob-rest/pom.xml b/browsermob-rest/pom.xml index 635c2a9c4..a425e6343 100644 --- a/browsermob-rest/pom.xml +++ b/browsermob-rest/pom.xml @@ -5,7 +5,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT 4.0.0 diff --git a/mitm/pom.xml b/mitm/pom.xml index 239377c31..dc5519677 100644 --- a/mitm/pom.xml +++ b/mitm/pom.xml @@ -4,7 +4,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 8b60f486f..4389eb4d3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 net.lightbody.bmp browsermob-proxy - 2.1.28-SNAPSHOT + 2.1.29-SNAPSHOT browsermob-core browsermob-legacy @@ -176,11 +176,11 @@ false install - ${basedir}/resources/jar/littleproxy-1.1.4.jar + ${basedir}/resources/jar/littleproxy-1.1.5.jar default org.littleshoot littleproxy - 1.1.4 + 1.1.5 jar @@ -308,7 +308,7 @@ org.littleshoot littleproxy - 1.1.4 + 1.1.5 diff --git a/resources/jar/littleproxy-1.1.4.jar b/resources/jar/littleproxy-1.1.4.jar deleted file mode 100644 index 53627e2da..000000000 Binary files a/resources/jar/littleproxy-1.1.4.jar and /dev/null differ diff --git a/resources/jar/littleproxy-1.1.5.jar b/resources/jar/littleproxy-1.1.5.jar new file mode 100644 index 000000000..2f5a9198f Binary files /dev/null and b/resources/jar/littleproxy-1.1.5.jar differ