diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-06-07 09:10:29 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-06-08 11:45:30 +0200 |
commit | c4ee8c6f7fad73483a38692bc2411a1422f7644b (patch) | |
tree | 99902a70d495fb6205b3147e67133f6133cdf13c /config-model/src | |
parent | 2f8e6ec5550e0078c07cd8fcfbdaaa4e3b9f0065 (diff) |
Remove feed handler setup
Diffstat (limited to 'config-model/src')
3 files changed, 7 insertions, 128 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 8534e1f65a7..637958a35d6 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 @@ -3,10 +3,8 @@ package com.yahoo.vespa.model.clients; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.container.bundle.BundleInstantiationSpecification; -import com.yahoo.container.handler.threadpool.ContainerThreadpoolConfig; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.ContainerCluster; -import com.yahoo.vespa.model.container.ContainerThreadpool; import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SystemBindingPattern; import com.yahoo.vespa.model.container.component.UserBindingPattern; @@ -24,19 +22,8 @@ public class ContainerDocumentApi { public ContainerDocumentApi(ContainerCluster<?> cluster, Options options) { addRestApiHandler(cluster, options); - addFeedHandler(cluster, options); } - private static void addFeedHandler(ContainerCluster<?> cluster, Options options) { - String bindingSuffix = ContainerCluster.RESERVED_URI_PREFIX + "/feedapi"; - var handler = newVespaClientHandler("com.yahoo.vespa.http.server.FeedHandler", bindingSuffix, options); - cluster.addComponent(handler); - var executor = new Threadpool("feedapi-handler", cluster, options.feedApiThreadpoolOptions); - handler.inject(executor); - handler.addComponent(executor); - } - - private static void addRestApiHandler(ContainerCluster<?> cluster, Options options) { var handler = newVespaClientHandler("com.yahoo.document.restapi.resource.DocumentV1ApiHandler", DOCUMENT_V1_PREFIX + "/*", options); cluster.addComponent(handler); @@ -47,10 +34,9 @@ public class ContainerDocumentApi { cluster.addComponent(oldHandlerDummy); } - private static Handler<AbstractConfigProducer<?>> newVespaClientHandler( - String componentId, - String bindingSuffix, - Options options) { + private static Handler<AbstractConfigProducer<?>> newVespaClientHandler(String componentId, + String bindingSuffix, + Options options) { Handler<AbstractConfigProducer<?>> handler = handlerComponentSpecification(componentId); if (options.bindings.isEmpty()) { handler.addServerBindings( @@ -73,33 +59,11 @@ public class ContainerDocumentApi { } public static final class Options { + private final Collection<String> bindings; - private final ContainerThreadpool.UserOptions feedApiThreadpoolOptions; - public Options(Collection<String> bindings, ContainerThreadpool.UserOptions feedApiThreadpoolOptions) { + public Options(Collection<String> bindings) { this.bindings = Collections.unmodifiableCollection(bindings); - this.feedApiThreadpoolOptions = feedApiThreadpoolOptions; - } - } - - private static class Threadpool extends ContainerThreadpool { - - private final ContainerCluster<?> cluster; - - Threadpool(String name, - ContainerCluster<?> cluster, - ContainerThreadpool.UserOptions threadpoolOptions) { - super(name, threadpoolOptions); - this.cluster = cluster; - } - - @Override - public void getConfig(ContainerThreadpoolConfig.Builder builder) { - super.getConfig(builder); - - // User options overrides below configuration - if (hasUserOptions()) return; - builder.maxThreads(-4).minThreads(-4).queueSize(500); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/DocumentApiOptionsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/DocumentApiOptionsBuilder.java index 2ef31469c45..9ce42fb80e8 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/DocumentApiOptionsBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/DocumentApiOptionsBuilder.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.model.container.xml; import com.yahoo.text.XML; import com.yahoo.vespa.model.clients.ContainerDocumentApi; -import com.yahoo.vespa.model.container.ContainerThreadpool; import org.w3c.dom.Element; import java.util.ArrayList; @@ -20,13 +19,7 @@ public class DocumentApiOptionsBuilder { public static ContainerDocumentApi.Options build(Element spec) { - return new ContainerDocumentApi.Options(getBindings(spec), threadpoolOptions(spec, "http-client-api")); - } - - private static ContainerThreadpool.UserOptions threadpoolOptions(Element spec, String elementName) { - Element element = XML.getChild(spec, elementName); - if (element == null) return null; - return ContainerThreadpool.UserOptions.fromXml(element).orElse(null); + return new ContainerDocumentApi.Options(getBindings(spec)); } private static List<String> getBindings(Element spec) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java index b4242336c5c..507d7cc1522 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java @@ -2,20 +2,15 @@ package com.yahoo.vespa.model.container.xml; import com.yahoo.config.model.builder.xml.test.DomBuilderTest; -import com.yahoo.config.model.test.MockApplicationPackage; -import com.yahoo.config.model.test.MockRoot; -import com.yahoo.container.handler.threadpool.ContainerThreadpoolConfig; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SystemBindingPattern; -import com.yahoo.vespa.model.container.component.UserBindingPattern; import org.junit.Test; import org.w3c.dom.Element; import java.util.Collection; import java.util.HashMap; import java.util.Map; -import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -40,29 +35,6 @@ public class ContainerDocumentApiBuilderTest extends ContainerModelBuilderTestBa } @Test - public void custom_bindings_are_allowed() { - Element elem = DomBuilderTest.parse( - "<container id='cluster1' version='1.0'>", - " <document-api>", - " <binding>http://*/document-api/</binding>", - " </document-api>", - nodesXml, - "</container>"); - createModel(root, elem); - - verifyCustomBindings("com.yahoo.vespa.http.server.FeedHandler"); - } - - private void verifyCustomBindings(String id) { - Handler<?> handler = getHandlers("cluster1").get(id); - - assertTrue(handler.getServerBindings().contains(UserBindingPattern.fromHttpPath("/document-api/reserved-for-internal-use/feedapi"))); - assertTrue(handler.getServerBindings().contains(UserBindingPattern.fromHttpPath("/document-api/reserved-for-internal-use/feedapi/"))); - - assertEquals(2, handler.getServerBindings().size()); - } - - @Test public void requireThatHandlersAreSetup() { Element elem = DomBuilderTest.parse( "<container id='cluster1' version='1.0'>", @@ -76,57 +48,7 @@ public class ContainerDocumentApiBuilderTest extends ContainerModelBuilderTestBa assertNotNull(handlerMap.get("com.yahoo.container.handler.VipStatusHandler")); assertNotNull(handlerMap.get("com.yahoo.container.handler.observability.ApplicationStatusHandler")); assertNotNull(handlerMap.get("com.yahoo.container.jdisc.state.StateHandler")); - - assertNotNull(handlerMap.get("com.yahoo.vespa.http.server.FeedHandler")); - assertTrue(handlerMap.get("com.yahoo.vespa.http.server.FeedHandler").getServerBindings() - .contains(SystemBindingPattern.fromHttpPath("/reserved-for-internal-use/feedapi"))); - assertTrue(handlerMap.get("com.yahoo.vespa.http.server.FeedHandler").getServerBindings() - .contains(SystemBindingPattern.fromHttpPath("/reserved-for-internal-use/feedapi"))); - assertEquals(2, handlerMap.get("com.yahoo.vespa.http.server.FeedHandler").getServerBindings().size()); - } - - @Test - public void feeding_api_have_separate_threadpools() { - Element elem = DomBuilderTest.parse( - "<container id='cluster1' version='1.0'>", - " <document-api />", - nodesXml, - "</container>"); - root = new MockRoot("root", new MockApplicationPackage.Builder().build()); - createModel(root, elem); - Map<String, Handler<?>> handlers = getHandlers("cluster1"); - Handler<?> feedApiHandler = handlers.get("com.yahoo.vespa.http.server.FeedHandler"); - Set<String> injectedComponentIds = feedApiHandler.getInjectedComponentIds(); - assertTrue(injectedComponentIds.contains("threadpool@feedapi-handler")); - - ContainerThreadpoolConfig config = root.getConfig( - ContainerThreadpoolConfig.class, "cluster1/component/com.yahoo.vespa.http.server.FeedHandler/threadpool@feedapi-handler"); - assertEquals(-4, config.maxThreads()); - assertEquals(-4, config.minThreads()); - } - - @Test - public void threadpools_configuration_can_be_overridden() { - Element elem = DomBuilderTest.parse( - "<container id='cluster1' version='1.0'>", - " <document-api>", - " <http-client-api>", - " <threadpool>", - " <max-threads>50</max-threads>", - " <min-threads>25</min-threads>", - " <queue-size>1000</queue-size>", - " </threadpool>", - " </http-client-api>", - " </document-api>", - nodesXml, - "</container>"); - createModel(root, elem); - - ContainerThreadpoolConfig feedThreadpoolConfig = root.getConfig( - ContainerThreadpoolConfig.class, "cluster1/component/com.yahoo.vespa.http.server.FeedHandler/threadpool@feedapi-handler"); - assertEquals(50, feedThreadpoolConfig.maxThreads()); - assertEquals(25, feedThreadpoolConfig.minThreads()); - assertEquals(1000, feedThreadpoolConfig.queueSize()); + assertNotNull(handlerMap.get("com.yahoo.document.restapi.resource.DocumentV1ApiHandler")); } } |