summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-09-14 21:33:41 +0200
committerJon Bratseth <bratseth@gmail.com>2020-09-14 21:33:41 +0200
commitf48d0f17f60ef074e131da38cb032a2af8328e84 (patch)
tree7d706e4813a80263195ff2e311a8e986dfdc9ae2 /jdisc_http_service
parenta6a4e2d89afc8f299506ec3c97c9b3613dd26950 (diff)
Propagate requestType through jdisc core response
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/ServletFilterRequest.java2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java13
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java3
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletResponseController.java1
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/HttpRequestTestCase.java6
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java7
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);
}
}