aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/clients
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-09-25 13:09:42 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-09-25 13:11:53 +0200
commitcfa3aafbbff8c8da64bbce1df5885744b6389ab6 (patch)
tree5074a3b85097f05e89fd36249ad47298d0605187 /config-model/src/main/java/com/yahoo/vespa/model/clients
parent7402fb06bc996ec63c478420c25e620034be7f9b (diff)
Add feature flag to enable new restapi handler
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/clients')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
index feaa6eb5940..9018a0231db 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
@@ -41,13 +41,17 @@ public class ContainerDocumentApi {
private static void addRestApiHandler(ContainerCluster<?> cluster, Options options) {
- var handler = newVespaClientHandler(
- "com.yahoo.document.restapi.resource.RestApi", "/document/v1/*", options);
+ String handlerClassName = options.useNewRestapiHandler
+ ? "com.yahoo.document.restapi.resource.DocumentV1ApiHandler"
+ : "com.yahoo.document.restapi.resource.RestApi";
+ var handler = newVespaClientHandler(handlerClassName, "/document/v1/*", options);
cluster.addComponent(handler);
- var executor = new Threadpool(
- "restapi-handler", cluster, options.restApiThreadpoolOptions, options.feedThreadPoolSizeFactor);
- handler.inject(executor);
- handler.addComponent(executor);
+ if (!options.useNewRestapiHandler) {
+ var executor = new Threadpool(
+ "restapi-handler", cluster, options.restApiThreadpoolOptions, options.feedThreadPoolSizeFactor);
+ handler.inject(executor);
+ handler.addComponent(executor);
+ }
}
private static Handler<AbstractConfigProducer<?>> newVespaClientHandler(
@@ -76,15 +80,18 @@ public class ContainerDocumentApi {
private final ContainerThreadpool.UserOptions restApiThreadpoolOptions;
private final ContainerThreadpool.UserOptions feedApiThreadpoolOptions;
private final double feedThreadPoolSizeFactor;
+ private final boolean useNewRestapiHandler;
public Options(Collection<String> bindings,
ContainerThreadpool.UserOptions restApiThreadpoolOptions,
ContainerThreadpool.UserOptions feedApiThreadpoolOptions,
- double feedThreadPoolSizeFactor) {
+ double feedThreadPoolSizeFactor,
+ boolean useNewRestapiHandler) {
this.bindings = Collections.unmodifiableCollection(bindings);
this.restApiThreadpoolOptions = restApiThreadpoolOptions;
this.feedApiThreadpoolOptions = feedApiThreadpoolOptions;
this.feedThreadPoolSizeFactor = feedThreadPoolSizeFactor;
+ this.useNewRestapiHandler = useNewRestapiHandler;
}
}