diff options
author | gjoranv <gv@verizonmedia.com> | 2021-12-17 10:44:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-17 10:44:29 +0100 |
commit | 4742c7748896d71b9ad686c681ad3a7a603a65ab (patch) | |
tree | 84f157fa9385be73fd546aabe7ef8cf3087f5c57 | |
parent | da221b81f17026e4c7489d9c7dd84f659cb807a4 (diff) | |
parent | 7f618cd283ff6a9c954abef6ff786cf9b3609141 (diff) |
Merge pull request #20562 from vespa-engine/move-context-to-superclass_take2
Move context to superclass take2
4 files changed, 62 insertions, 2 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 c4f506d81ba..a9ce03d1d55 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 @@ -171,6 +171,9 @@ public abstract class ContainerCluster<CONTAINER extends Container> addCommonVespaBundles(); + // TODO Vespa 8: remove LoggingRequestHandler.Context (replaced by ThreadedHttpRequestHandler.Context) + addSimpleComponent(com.yahoo.container.jdisc.LoggingRequestHandler.Context.class); + addComponent(new StatisticsComponent()); addSimpleComponent(AccessLog.class); addComponent(new DefaultThreadpoolProvider(this, deployState.featureFlags().metricsproxyNumThreads())); @@ -178,7 +181,7 @@ public abstract class ContainerCluster<CONTAINER extends Container> 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.container.jdisc.ThreadedHttpRequestHandler.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/abi-spec.json b/container-core/abi-spec.json index c3c946ab537..174febca9df 100644 --- a/container-core/abi-spec.json +++ b/container-core/abi-spec.json @@ -875,6 +875,22 @@ ], "fields": [] }, + "com.yahoo.container.jdisc.ThreadedHttpRequestHandler$Context": { + "superClass": "java.lang.Object", + "interfaces": [], + "attributes": [ + "public" + ], + "methods": [ + "public void <init>(java.util.concurrent.Executor, com.yahoo.container.logging.AccessLog, com.yahoo.jdisc.Metric)", + "public void <init>(java.util.concurrent.Executor, com.yahoo.jdisc.Metric)", + "public void <init>(com.yahoo.container.jdisc.ThreadedHttpRequestHandler$Context)", + "public java.util.concurrent.Executor getExecutor()", + "public com.yahoo.container.logging.AccessLog getAccessLog()", + "public com.yahoo.jdisc.Metric getMetric()" + ], + "fields": [] + }, "com.yahoo.container.jdisc.ThreadedHttpRequestHandler$LazyContentChannel": { "superClass": "java.lang.Object", "interfaces": [ @@ -903,13 +919,15 @@ "methods": [ "public void <init>(java.util.concurrent.Executor)", "public void <init>(java.util.concurrent.Executor, com.yahoo.jdisc.Metric)", + "public void <init>(com.yahoo.container.jdisc.ThreadedHttpRequestHandler$Context)", "public void <init>(java.util.concurrent.Executor, com.yahoo.jdisc.Metric, boolean)", "public abstract com.yahoo.container.jdisc.HttpResponse handle(com.yahoo.container.jdisc.HttpRequest)", "public com.yahoo.container.jdisc.HttpResponse handle(com.yahoo.container.jdisc.HttpRequest, com.yahoo.jdisc.handler.ContentChannel)", "public final void handleRequest(com.yahoo.jdisc.Request, com.yahoo.jdisc.handler.BufferedContentChannel, com.yahoo.jdisc.handler.ResponseHandler)", "protected void addDateHeader(com.yahoo.container.jdisc.HttpResponse, long)", "protected com.yahoo.container.jdisc.LoggingCompletionHandler createLoggingCompletionHandler(long, long, com.yahoo.container.jdisc.HttpResponse, com.yahoo.container.jdisc.HttpRequest, com.yahoo.container.jdisc.ContentChannelOutputStream)", - "protected com.yahoo.jdisc.http.HttpRequest asHttpRequest(com.yahoo.jdisc.Request)" + "protected com.yahoo.jdisc.http.HttpRequest asHttpRequest(com.yahoo.jdisc.Request)", + "public static com.yahoo.container.jdisc.ThreadedHttpRequestHandler$Context testContext()" ], "fields": [ "public static final java.lang.String CONTENT_TYPE", 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 717bde1eb5e..b6e370dd911 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 @@ -29,6 +29,7 @@ import java.util.logging.Level; // TODO Vespa 8: Remove deprecated constructors public abstract class LoggingRequestHandler extends ThreadedHttpRequestHandler { + // TODO: Deprecate public static class Context { final Executor executor; @@ -57,6 +58,7 @@ public abstract class LoggingRequestHandler extends ThreadedHttpRequestHandler { } + // TODO: Deprecate public static Context testOnlyContext() { return new Context(new Executor() { @Override diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java index 0c3c1e2120b..722f1850013 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java @@ -2,6 +2,7 @@ package com.yahoo.container.jdisc; import com.google.inject.Inject; +import com.yahoo.container.logging.AccessLog; import com.yahoo.jdisc.Metric; import com.yahoo.jdisc.Request; import com.yahoo.jdisc.handler.BufferedContentChannel; @@ -47,6 +48,11 @@ public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler this(executor, metric, false); } + // TODO: move Inject annotation here! + public ThreadedHttpRequestHandler(Context context) { + this(context.executor, context.metric); + } + public ThreadedHttpRequestHandler(Executor executor, Metric metric, boolean allowAsyncResponse) { super(executor, metric, allowAsyncResponse); log = Logger.getLogger(this.getClass().getName()); @@ -249,5 +255,36 @@ public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler return (com.yahoo.jdisc.http.HttpRequest) request; } + public static Context testContext() { + return new Context(Runnable::run, null); + } + + public static class Context { + + final Executor executor; + final Metric metric; + + /** @deprecated Use {@link #Context(Executor, Metric)} instead */ + @Deprecated(forRemoval = true, since = "7") + public Context(Executor executor, AccessLog ignored, Metric metric) { + this(executor, metric); + } + + @Inject + public Context(Executor executor, Metric metric) { + this.executor = executor; + this.metric = metric; + } + + public Context(Context other) { + this.executor = other.executor; + this.metric = other.metric; + } + + public Executor getExecutor() { return executor; } + @Deprecated(forRemoval = true, since = "7") public AccessLog getAccessLog() { return null; } + public Metric getMetric() { return metric; } + + } } |