summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2021-12-17 10:44:29 +0100
committerGitHub <noreply@github.com>2021-12-17 10:44:29 +0100
commit4742c7748896d71b9ad686c681ad3a7a603a65ab (patch)
tree84f157fa9385be73fd546aabe7ef8cf3087f5c57
parentda221b81f17026e4c7489d9c7dd84f659cb807a4 (diff)
parent7f618cd283ff6a9c954abef6ff786cf9b3609141 (diff)
Merge pull request #20562 from vespa-engine/move-context-to-superclass_take2
Move context to superclass take2
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java5
-rw-r--r--container-core/abi-spec.json20
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java37
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; }
+
+ }
}