diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-03-07 08:16:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-07 08:16:32 +0100 |
commit | 22569edefe90ebd797dc117fa9cf2290d612121d (patch) | |
tree | bbadc13cafc7562ca17b82c0b55200b00ff83c82 | |
parent | a167752728eb4a1c47fdc59f3b12f2ab2d27118e (diff) | |
parent | 633b8c31ad3afe1026e9b6bbf23bb376cbd37d63 (diff) |
Merge pull request #21567 from vespa-engine/inject-DocumentTypeManager-instead-of-config
Inject document type manager instead of config [run-systemtest]
12 files changed, 40 insertions, 27 deletions
diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java index 6b10cc911c2..8d9d21999d5 100644 --- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java +++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java @@ -4,20 +4,17 @@ package ai.vespa.reindexing.http; import ai.vespa.reindexing.Reindexing; import ai.vespa.reindexing.ReindexingCurator; import com.google.inject.Inject; -import com.yahoo.cloud.config.ClusterListConfig; import com.yahoo.cloud.config.ZookeepersConfig; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; import com.yahoo.document.DocumentTypeManager; -import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.jdisc.Metric; import com.yahoo.restapi.ErrorResponse; import com.yahoo.restapi.Path; import com.yahoo.restapi.SlimeJsonResponse; import com.yahoo.slime.Cursor; import com.yahoo.slime.Slime; -import com.yahoo.vespa.config.content.AllClustersBucketSpacesConfig; import com.yahoo.vespa.config.content.reindexing.ReindexingConfig; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.zookeeper.VespaZooKeeperServer; @@ -40,13 +37,14 @@ public class ReindexingV1ApiHandler extends ThreadedHttpRequestHandler { @Inject public ReindexingV1ApiHandler(Executor executor, Metric metric, - @SuppressWarnings("unused") VespaZooKeeperServer ensureZkHasStarted, ZookeepersConfig zookeepersConfig, - ReindexingConfig reindexingConfig, DocumentmanagerConfig documentmanagerConfig) { + @SuppressWarnings("unused") VespaZooKeeperServer ensureZkHasStarted, + ZookeepersConfig zookeepersConfig, + ReindexingConfig reindexingConfig, + DocumentTypeManager documentTypeManager) { this(executor, metric, reindexingConfig.clusters().keySet(), - new ReindexingCurator(Curator.create(zookeepersConfig.zookeeperserverlist()), - new DocumentTypeManager(documentmanagerConfig))); + new ReindexingCurator(Curator.create(zookeepersConfig.zookeeperserverlist()), documentTypeManager)); } ReindexingV1ApiHandler(Executor executor, Metric metric, Collection<String> clusterNames, ReindexingCurator database) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java index 20c3e007e3b..dbc055ef02e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java @@ -28,6 +28,8 @@ import com.yahoo.vespa.model.container.PlatformBundles; import java.util.Set; import java.util.TreeSet; +import static com.yahoo.vespa.model.container.docproc.DocprocChains.DOCUMENT_TYPE_MANAGER_CLASS; + /** * Container implementation for cluster-controllers */ @@ -148,6 +150,8 @@ public class ClusterControllerContainer extends Container implements addComponent("reindexing-maintainer", "ai.vespa.reindexing.ReindexingMaintainer", REINDEXING_CONTROLLER_BUNDLE); + + addComponent(new SimpleComponent(DOCUMENT_TYPE_MANAGER_CLASS)); addHandler("reindexing-status", "ai.vespa.reindexing.http.ReindexingV1ApiHandler", "/reindexing/v1/*", diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java index 8f95e390b07..fae12a63427 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java @@ -36,6 +36,7 @@ import com.yahoo.vespa.model.container.component.Component; import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SystemBindingPattern; import com.yahoo.vespa.model.container.configserver.ConfigserverCluster; +import com.yahoo.vespa.model.container.docproc.DocprocChains; import com.yahoo.vespa.model.utils.FileSender; import java.util.ArrayList; @@ -48,6 +49,7 @@ import java.util.Set; import java.util.stream.Collectors; import static com.yahoo.config.model.api.ApplicationClusterEndpoint.RoutingMethod.sharedLayer4; +import static com.yahoo.vespa.model.container.docproc.DocprocChains.DOCUMENT_TYPE_MANAGER_CLASS; /** * A container cluster that is typically set up from the user application. @@ -110,6 +112,7 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat addSimpleComponent("com.yahoo.container.jdisc.CertificateStoreProvider"); addSimpleComponent("com.yahoo.container.jdisc.AthenzIdentityProviderProvider"); addSimpleComponent(com.yahoo.container.core.documentapi.DocumentAccessProvider.class.getName()); + addSimpleComponent(DOCUMENT_TYPE_MANAGER_CLASS); addMetricsHandlers(); addTestrunnerComponentsIfTester(deployState); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/DocprocChains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/DocprocChains.java index e037a854716..4b9897d0950 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/DocprocChains.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/DocprocChains.java @@ -16,13 +16,21 @@ import com.yahoo.vespa.model.container.component.chain.ProcessingHandler; * @author Einar M R Rosenvinge */ public class DocprocChains extends Chains<DocprocChain> { + + public static final String DOCUMENT_TYPE_MANAGER_CLASS = "com.yahoo.document.DocumentTypeManager"; + private final ProcessingHandler<DocprocChains> docprocHandler; - public DocprocChains(AbstractConfigProducer parent, String subId) { + public DocprocChains(AbstractConfigProducer<?> parent, String subId) { super(parent, subId); docprocHandler = new ProcessingHandler<>(this, "com.yahoo.docproc.jdisc.DocumentProcessingHandler"); addComponent(docprocHandler); - addComponent(new SimpleComponent("com.yahoo.document.DocumentTypeManager")); + + if (! (getParent() instanceof ApplicationContainerCluster)) { + // All application containers already have a DocumentTypeManager, + // but this could also belong to e.g. a cluster controller. + addComponent(new SimpleComponent(DOCUMENT_TYPE_MANAGER_CLASS)); + } } private void addComponent(Component<?, ?> component) { diff --git a/container-messagebus/src/main/java/com/yahoo/container/jdisc/messagebus/SessionCache.java b/container-messagebus/src/main/java/com/yahoo/container/jdisc/messagebus/SessionCache.java index 1db288d59dd..46dcaf17abc 100644 --- a/container-messagebus/src/main/java/com/yahoo/container/jdisc/messagebus/SessionCache.java +++ b/container-messagebus/src/main/java/com/yahoo/container/jdisc/messagebus/SessionCache.java @@ -2,12 +2,10 @@ package com.yahoo.container.jdisc.messagebus; import com.google.inject.Inject; -import com.yahoo.cloud.config.SlobroksConfig; import com.yahoo.component.AbstractComponent; import com.yahoo.container.jdisc.ContainerMbusConfig; import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.DocumentUtil; -import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.documentapi.messagebus.loadtypes.LoadTypeSet; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig; @@ -70,24 +68,24 @@ public final class SessionCache extends AbstractComponent { @Inject public SessionCache(NetworkMultiplexerProvider nets, ContainerMbusConfig containerMbusConfig, - DocumentmanagerConfig documentmanagerConfig, + DocumentTypeManager documentTypeManager, LoadTypeConfig loadTypeConfig, MessagebusConfig messagebusConfig, DocumentProtocolPoliciesConfig policiesConfig, DistributionConfig distributionConfig) { - this(nets::net, containerMbusConfig, documentmanagerConfig, + this(nets::net, containerMbusConfig, documentTypeManager, loadTypeConfig, messagebusConfig, policiesConfig, distributionConfig); } public SessionCache(Supplier<NetworkMultiplexer> net, ContainerMbusConfig containerMbusConfig, - DocumentmanagerConfig documentmanagerConfig, + DocumentTypeManager documentTypeManager, LoadTypeConfig loadTypeConfig, MessagebusConfig messagebusConfig, DocumentProtocolPoliciesConfig policiesConfig, DistributionConfig distributionConfig) { this(net, containerMbusConfig, messagebusConfig, - new DocumentProtocol(new DocumentTypeManager(documentmanagerConfig), + new DocumentProtocol(documentTypeManager, new LoadTypeSet(loadTypeConfig), policiesConfig, distributionConfig)); diff --git a/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java b/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java index 8d8010c72dc..c509fb917fa 100644 --- a/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java +++ b/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java @@ -3,6 +3,7 @@ package com.yahoo.container.jdisc.messagebus; import com.yahoo.container.jdisc.ContainerMbusConfig; import com.yahoo.container.jdisc.config.SessionConfig; +import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig; import com.yahoo.messagebus.MessagebusConfig; @@ -38,7 +39,7 @@ public class MbusClientProviderTest { private void testClient(SessionConfig config) { SessionCache cache = new SessionCache(() -> NetworkMultiplexer.dedicated(new NullNetwork()), new ContainerMbusConfig.Builder().build(), - new DocumentmanagerConfig.Builder().build(), + new DocumentTypeManager(new DocumentmanagerConfig.Builder().build()), new LoadTypeConfig.Builder().build(), new MessagebusConfig.Builder().build(), new DocumentProtocolPoliciesConfig.Builder().build(), diff --git a/docprocs/src/main/java/com/yahoo/docprocs/indexing/IndexingProcessor.java b/docprocs/src/main/java/com/yahoo/docprocs/indexing/IndexingProcessor.java index 15ccc17e318..7b553383daf 100644 --- a/docprocs/src/main/java/com/yahoo/docprocs/indexing/IndexingProcessor.java +++ b/docprocs/src/main/java/com/yahoo/docprocs/indexing/IndexingProcessor.java @@ -52,11 +52,11 @@ public class IndexingProcessor extends DocumentProcessor { } @Inject - public IndexingProcessor(DocumentmanagerConfig documentmanagerConfig, + public IndexingProcessor(DocumentTypeManager documentTypeManager, IlscriptsConfig ilscriptsConfig, Linguistics linguistics, Embedder embedder) { - docTypeMgr = DocumentTypeManagerConfigurer.configureNewManager(documentmanagerConfig); + docTypeMgr = documentTypeManager; scriptMgr = new ScriptManager(docTypeMgr, ilscriptsConfig, linguistics, embedder); adapterFactory = new SimpleAdapterFactory(new ExpressionSelector()); } diff --git a/docprocs/src/test/java/com/yahoo/docprocs/indexing/IndexingProcessorTestCase.java b/docprocs/src/test/java/com/yahoo/docprocs/indexing/IndexingProcessorTestCase.java index ac1d3f21997..13f9ea1a8c8 100644 --- a/docprocs/src/test/java/com/yahoo/docprocs/indexing/IndexingProcessorTestCase.java +++ b/docprocs/src/test/java/com/yahoo/docprocs/indexing/IndexingProcessorTestCase.java @@ -7,6 +7,7 @@ import com.yahoo.document.Document; import com.yahoo.document.DocumentPut; import com.yahoo.document.DocumentOperation; import com.yahoo.document.DocumentType; +import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.DocumentUpdate; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.document.datatypes.StringFieldValue; @@ -124,7 +125,7 @@ public class IndexingProcessorTestCase { } private static IndexingProcessor newProcessor(String configId) { - return new IndexingProcessor(ConfigGetter.getConfig(DocumentmanagerConfig.class, configId), + return new IndexingProcessor(new DocumentTypeManager(ConfigGetter.getConfig(DocumentmanagerConfig.class, configId)), ConfigGetter.getConfig(IlscriptsConfig.class, configId), new SimpleLinguistics(), Embedder.throwsOnUse); diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java index 2a774995601..f99274d3f2b 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java @@ -7,7 +7,7 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; import com.yahoo.container.jdisc.messagebus.SessionCache; -import com.yahoo.document.config.DocumentmanagerConfig; +import com.yahoo.document.DocumentTypeManager; import com.yahoo.documentapi.metrics.DocumentApiMetrics; import com.yahoo.jdisc.Metric; import com.yahoo.jdisc.Request; @@ -45,12 +45,12 @@ public class FeedHandler extends ThreadedHttpRequestHandler { @Inject public FeedHandler(ContainerThreadPool threadpool, Metric metric, - DocumentmanagerConfig documentManagerConfig, + DocumentTypeManager documentTypeManager, SessionCache sessionCache, MetricReceiver metricReceiver) { super(threadpool.executor(), metric); metricsHelper = new DocumentApiMetrics(metricReceiver, "vespa.http.server"); - feedHandlerV3 = new FeedHandlerV3(threadpool.executor(), metric, documentManagerConfig, sessionCache, metricsHelper); + feedHandlerV3 = new FeedHandlerV3(threadpool.executor(), metric, documentTypeManager, sessionCache, metricsHelper); feedReplyHandler = new FeedReplyReader(metric, metricsHelper); } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java index 95e98f325e1..c8828df6d54 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java @@ -7,7 +7,6 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; import com.yahoo.container.jdisc.messagebus.SessionCache; import com.yahoo.document.DocumentTypeManager; -import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.documentapi.metrics.DocumentApiMetrics; import com.yahoo.jdisc.Metric; import com.yahoo.jdisc.ReferencedResource; @@ -45,11 +44,11 @@ public class FeedHandlerV3 extends ThreadedHttpRequestHandler { public FeedHandlerV3(Executor executor, Metric metric, - DocumentmanagerConfig documentManagerConfig, + DocumentTypeManager documentTypeManager, SessionCache sessionCache, DocumentApiMetrics metricsHelper) { super(executor, metric); - docTypeManager = new DocumentTypeManager(documentManagerConfig); + docTypeManager = documentTypeManager; this.sessionCache = sessionCache; feedReplyHandler = new FeedReplyReader(metric, metricsHelper); cron = new ScheduledThreadPoolExecutor(1, ThreadFactoryFactory.getThreadFactory("feed-handler-v3-janitor")); diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerTest.java index 00df7c8b6fa..f3ea8fb5a80 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerTest.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerTest.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.http.server; import com.yahoo.container.handler.threadpool.ContainerThreadPool; import com.yahoo.container.jdisc.RequestHandlerTestDriver; +import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.jdisc.handler.OverloadException; import com.yahoo.metrics.simple.MetricReceiver; @@ -24,7 +25,7 @@ public class FeedHandlerTest { FeedHandler handler = new FeedHandler( new RejectingContainerThreadpool(), new CollectingMetric(), - new DocumentmanagerConfig(new DocumentmanagerConfig.Builder().enablecompression(true)), + new DocumentTypeManager(new DocumentmanagerConfig.Builder().enablecompression(true).build()), null /* session cache */, MetricReceiver.nullImplementation); var responseHandler = new RequestHandlerTestDriver.MockResponseHandler(); diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerV3Test.java b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerV3Test.java index 2f4afb0c2a5..a5a8f4cb5bd 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerV3Test.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/vespa/http/server/FeedHandlerV3Test.java @@ -112,7 +112,7 @@ public class FeedHandlerV3Test { } private FeedHandlerV3 setupFeederHandler(Executor threadPool) { - DocumentmanagerConfig docMan = new DocumentmanagerConfig(new DocumentmanagerConfig.Builder().enablecompression(true)); + DocumentTypeManager docMan = new DocumentTypeManager(new DocumentmanagerConfig.Builder().enablecompression(true).build()); FeedHandlerV3 feedHandlerV3 = new FeedHandlerV3( threadPool, metric, |