summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java
index 0095fcece4f..4f365ebbab3 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java
@@ -35,7 +35,42 @@ public abstract class LoggingRequestHandler extends ThreadedHttpRequestHandler {
this(executor, accessLog, null);
}
+ public static class Context {
+ final Executor executor;
+ final AccessLog accessLog;
+ final Metric metric;
+ @Inject
+ public Context(Executor executor, AccessLog accessLog, Metric metric) {
+ this.executor = executor;
+ this.accessLog = accessLog;
+ this.metric = metric;
+ }
+ public Context(Context other) {
+ this.executor = other.executor;
+ this.accessLog = other.accessLog;
+ this.metric = other.metric;
+ }
+ }
+ public static Context testOnlyContext() {
+ return new Context(new Executor() {
+ @Override
+ public void execute(Runnable command) {
+ command.run();
+ }
+ },
+ AccessLog.voidAccessLog(),
+ null);
+ }
+
@Inject
+ public LoggingRequestHandler(Context ctx) {
+ this(ctx.executor, ctx.accessLog, ctx.metric);
+ }
+
+ public LoggingRequestHandler(Context ctx, boolean allowAsyncResponse) {
+ this(ctx.executor, ctx.accessLog, ctx.metric, allowAsyncResponse);
+ }
+
public LoggingRequestHandler(Executor executor, AccessLog accessLog, Metric metric) {
this(executor, accessLog, metric, false);
}