summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2017-12-19 15:24:38 +0000
committerArne Juul <arnej@yahoo-inc.com>2017-12-20 12:17:02 +0000
commitdca3de1b712ffbdf81556609af40fc6d1a52fce6 (patch)
tree978f825be05e76ffafdefea4b8d6fc39ddc632e5
parent2be1c34825fda8bdf9711c1e7522989fe3a8a45e (diff)
add optional constructor with Context object
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java1
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java35
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);
}