diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2017-12-19 15:24:38 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2017-12-20 12:17:02 +0000 |
commit | dca3de1b712ffbdf81556609af40fc6d1a52fce6 (patch) | |
tree | 978f825be05e76ffafdefea4b8d6fc39ddc632e5 | |
parent | 2be1c34825fda8bdf9711c1e7522989fe3a8a45e (diff) |
add optional constructor with Context object
-rwxr-xr-x | config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java | 1 | ||||
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 4383e55e45d..28a54771c21 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -220,6 +220,7 @@ public final class ContainerCluster addSimpleComponent("com.yahoo.container.jdisc.metric.MetricConsumerProviderProvider"); addSimpleComponent("com.yahoo.container.jdisc.metric.MetricProvider"); addSimpleComponent("com.yahoo.container.jdisc.metric.MetricUpdater"); + addSimpleComponent(com.yahoo.container.jdisc.LoggingRequestHandler.Context.class); addSimpleComponent(com.yahoo.metrics.simple.MetricManager.class.getName(), null, MetricProperties.BUNDLE_SYMBOLIC_NAME); addSimpleComponent(com.yahoo.metrics.simple.jdisc.JdiscMetricsFactory.class.getName(), null, MetricProperties.BUNDLE_SYMBOLIC_NAME); addSimpleComponent("com.yahoo.container.jdisc.state.StateMonitor"); 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); } |