diff options
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.java | 35 |
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); } |