diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-09-14 21:33:41 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-09-14 21:33:41 +0200 |
commit | f48d0f17f60ef074e131da38cb032a2af8328e84 (patch) | |
tree | 7d706e4813a80263195ff2e311a8e986dfdc9ae2 /jdisc_http_service | |
parent | a6a4e2d89afc8f299506ec3c97c9b3613dd26950 (diff) |
Propagate requestType through jdisc core response
Diffstat (limited to 'jdisc_http_service')
6 files changed, 14 insertions, 18 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/ServletFilterRequest.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/ServletFilterRequest.java index 3dccb09c971..f06f9e256ff 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/ServletFilterRequest.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/ServletFilterRequest.java @@ -18,8 +18,6 @@ import java.util.Set; /** * Servlet implementation for JDisc filter requests. - * - * @since 5.27 */ class ServletFilterRequest extends DiscFilterRequest { diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java index 53d775d4349..7085f07585a 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java @@ -44,12 +44,12 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog private final AccessLog accessLog; - public AccessLogRequestLog(final AccessLog accessLog) { + public AccessLogRequestLog(AccessLog accessLog) { this.accessLog = accessLog; } @Override - public void log(final Request request, final Response response) { + public void log(Request request, Response response) { try { AccessLogEntry accessLogEntry = Optional.ofNullable(request.getAttribute(JDiscHttpServlet.ATTRIBUTE_NAME_ACCESS_LOG_ENTRY)) .map(AccessLogEntry.class::cast) @@ -100,8 +100,8 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog accessLogEntry.addKeyValue("cipher-suite", cipherSuite); } - final long startTime = request.getTimeStamp(); - final long endTime = System.currentTimeMillis(); + long startTime = request.getTimeStamp(); + long endTime = System.currentTimeMillis(); accessLogEntry.setTimeStamp(startTime); accessLogEntry.setDurationBetweenRequestResponse(endTime - startTime); accessLogEntry.setReturnedContentSize(response.getHttpChannel().getBytesWritten()); @@ -121,7 +121,7 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog } } - private static String getRemoteAddress(final HttpServletRequest request) { + private static String getRemoteAddress(HttpServletRequest request) { return Optional.ofNullable(request.getHeader(HEADER_NAME_X_FORWARDED_FOR)) .or(() -> Optional.ofNullable(request.getHeader(HEADER_NAME_Y_RA))) .or(() -> Optional.ofNullable(request.getHeader(HEADER_NAME_YAHOOREMOTEIP))) @@ -129,7 +129,7 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog .orElseGet(request::getRemoteAddr); } - private static int getRemotePort(final HttpServletRequest request) { + private static int getRemotePort(HttpServletRequest request) { return Optional.ofNullable(request.getHeader(HEADER_NAME_X_FORWARDED_PORT)) .or(() -> Optional.ofNullable(request.getHeader(HEADER_NAME_Y_RP))) .flatMap(AccessLogRequestLog::parsePort) @@ -143,4 +143,5 @@ public class AccessLogRequestLog extends AbstractLifeCycle implements RequestLog return Optional.empty(); } } + } diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java index 81577561c5b..cc7ed7ac3e0 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java @@ -175,9 +175,6 @@ class HttpRequestDispatch { try (ResourceReference ref = References.fromResource(jdiscRequest)) { HttpRequestFactory.copyHeaders(jettyRequest, jdiscRequest); requestContentChannel = requestHandler.handleRequest(jdiscRequest, servletResponseController.responseHandler); - if (jdiscRequest.getRequestType() != null) - jettyRequest.setAttribute(HttpResponseStatisticsCollector.requestTypeAttribute, - jdiscRequest.getRequestType()); } ServletInputStream servletInputStream = jettyRequest.getInputStream(); diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletResponseController.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletResponseController.java index 0188e7c2f09..5dd6b72dc20 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletResponseController.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletResponseController.java @@ -164,6 +164,7 @@ public class ServletResponseController { private void setResponse(Response jdiscResponse) { synchronized (monitor) { + servletRequest.setAttribute(HttpResponseStatisticsCollector.requestTypeAttribute, jdiscResponse.getRequestType()); if (responseCommitted) { log.log(Level.FINE, jdiscResponse.getError(), diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java index eeae1fa74bc..a3cb31d5ecb 100644 --- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java +++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java @@ -28,7 +28,7 @@ public class HttpRequestTestCase { @Test public void requireThatSimpleServerConstructorsUseReasonableDefaults() { - final URI uri = URI.create("http://localhost/"); + URI uri = URI.create("http://localhost/"); HttpRequest request = HttpRequest.newServerRequest(mockContainer(), uri); assertTrue(request.isServerRequest()); assertEquals(uri, request.getUri()); @@ -50,9 +50,9 @@ public class HttpRequestTestCase { @Test public void requireThatSimpleClientConstructorsUseReasonableDefaults() { - final Request parent = new Request(mockContainer(), URI.create("http://localhost/")); + Request parent = new Request(mockContainer(), URI.create("http://localhost/")); - final URI uri = URI.create("http://remotehost/"); + URI uri = URI.create("http://remotehost/"); HttpRequest request = HttpRequest.newClientRequest(parent, uri); assertFalse(request.isServerRequest()); assertEquals(uri, request.getUri()); diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java index c1512c04d2b..d2f74a56c80 100644 --- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java +++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java @@ -1028,10 +1028,9 @@ public class HttpServerTest { @Override public ContentChannel handleRequest(Request request, ResponseHandler handler) { - ContentChannel channel = ResponseDispatch.newInstance(Response.Status.OK).connect(handler); - if (requestType != null) - request.setRequestType(requestType); - return channel; + Response response = new Response(OK); + response.setRequestType(requestType); + return handler.handleResponse(response); } } |