diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-09-25 13:09:42 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-09-25 13:11:53 +0200 |
commit | cfa3aafbbff8c8da64bbce1df5885744b6389ab6 (patch) | |
tree | 5074a3b85097f05e89fd36249ad47298d0605187 /config-model/src/main/java/com/yahoo/vespa/model/clients | |
parent | 7402fb06bc996ec63c478420c25e620034be7f9b (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.java | 21 |
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; } } |