summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-06-07 09:10:29 +0200
committergjoranv <gv@verizonmedia.com>2022-06-08 11:45:30 +0200
commitc4ee8c6f7fad73483a38692bc2411a1422f7644b (patch)
tree99902a70d495fb6205b3147e67133f6133cdf13c
parent2f8e6ec5550e0078c07cd8fcfbdaaa4e3b9f0065 (diff)
Remove feed handler setup
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java46
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/DocumentApiOptionsBuilder.java9
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java80
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"));
}
}