summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-02-14 09:58:25 +0000
committerArne Juul <arnej@yahooinc.com>2023-02-14 10:52:18 +0000
commit90ffec36510f64a4b6ec1abf584682e1808468cf (patch)
treee12a351580f3bfe16d69a6fbde5b4fecd12805db
parent0289e24dc20cd38f69de2dbdb01cb09e1d436501 (diff)
Less wildcards for some TreeConfigProducer instances
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java5
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java13
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java5
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java5
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducerRoot.java2
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/Client.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/Host.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/SimpleConfigProducer.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/ModelConfigProvider.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java29
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientProviderBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomComponentBuilder.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomHandlerBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/LegacyConfigModelBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java22
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ChainsBuilder.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ComponentsBuilder.java16
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainBuilderBase.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainsBuilder.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocprocChainsBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainsBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocumentProcessorBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingChainBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessorBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomFederationSearcherBuilder.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearcherBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/SearchChainsBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Container.java4
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/ComponentGroup.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chains.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/docproc/DocprocChains.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterChains.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainsBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyHttpServerBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/processing/ProcessingChains.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerServiceBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/Content.java16
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/DistributorCluster.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/StorageNode.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/engines/PersistenceEngine.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/test/DomTestServiceBuilder.java13
79 files changed, 249 insertions, 173 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
index 052bb7e968a..7c805417739 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
@@ -50,7 +50,7 @@ import java.util.Set;
*
* @author gjoranv
*/
-public class ApplicationConfigProducerRoot extends TreeConfigProducer<TreeConfigProducer<?>> implements CommonConfigsProducer {
+public class ApplicationConfigProducerRoot extends TreeConfigProducer<AnyConfigProducer> implements CommonConfigsProducer {
private final DocumentModel documentModel;
private Routing routing = null;
@@ -69,7 +69,8 @@ public class ApplicationConfigProducerRoot extends TreeConfigProducer<TreeConfig
* @param name the name, used as configId
* @param documentModel DocumentModel to serve global document config from.
*/
- public ApplicationConfigProducerRoot(TreeConfigProducer parent, String name, DocumentModel documentModel, Version vespaVersion, ApplicationId applicationId) {
+ public ApplicationConfigProducerRoot(TreeConfigProducer<AnyConfigProducer> parent,
+ String name, DocumentModel documentModel, Version vespaVersion, ApplicationId applicationId) {
super(parent, name);
this.documentModel = documentModel;
this.vespaVersion = vespaVersion;
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java
index 4692c2c1fba..d9918168266 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java
@@ -5,6 +5,7 @@ import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.VespaModel;
@@ -18,7 +19,7 @@ import java.util.stream.Stream;
*/
public final class ConfigModelContext {
- private final TreeConfigProducer<?> parent;
+ private final TreeConfigProducer<AnyConfigProducer> parent;
private final String producerId;
private final DeployState deployState;
private final VespaModel vespaModel;
@@ -29,7 +30,7 @@ public final class ConfigModelContext {
DeployState deployState,
VespaModel vespaModel,
ConfigModelRepoAdder configModelRepoAdder,
- TreeConfigProducer<?> parent,
+ TreeConfigProducer<AnyConfigProducer> parent,
String producerId) {
this.applicationType = applicationType;
this.deployState = deployState;
@@ -41,7 +42,7 @@ public final class ConfigModelContext {
public ApplicationPackage getApplicationPackage() { return deployState.getApplicationPackage(); }
public String getProducerId() { return producerId; }
- public TreeConfigProducer<?> getParentProducer() { return parent; }
+ public TreeConfigProducer<AnyConfigProducer> getParentProducer() { return parent; }
public DeployLogger getDeployLogger() { return deployState.getDeployLogger(); }
public DeployState getDeployState() { return deployState; }
public ApplicationType getApplicationType() { return applicationType; }
@@ -53,7 +54,7 @@ public final class ConfigModelContext {
public ConfigModelRepoAdder getConfigModelRepoAdder() { return configModelRepoAdder; }
/** Create a new context with a different parent */
- public ConfigModelContext withParent(TreeConfigProducer<?> newParent) {
+ public ConfigModelContext withParent(TreeConfigProducer<AnyConfigProducer> newParent) {
return ConfigModelContext.create(deployState, vespaModel, configModelRepoAdder, newParent, producerId);
}
@@ -77,7 +78,7 @@ public final class ConfigModelContext {
public static ConfigModelContext create(DeployState deployState,
VespaModel vespaModel,
ConfigModelRepoAdder configModelRepoAdder,
- TreeConfigProducer<?> parent,
+ TreeConfigProducer<AnyConfigProducer> parent,
String producerId) {
return new ConfigModelContext(ApplicationType.DEFAULT, deployState, vespaModel, configModelRepoAdder, parent, producerId);
}
@@ -95,7 +96,7 @@ public final class ConfigModelContext {
DeployState deployState,
VespaModel vespaModel,
ConfigModelRepoAdder configModelRepoAdder,
- TreeConfigProducer<?> parent,
+ TreeConfigProducer<AnyConfigProducer> parent,
String producerId) {
return new ConfigModelContext(applicationType, deployState, vespaModel, configModelRepoAdder, parent, producerId);
}
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
index fc04ab6acc3..161b909e7e2 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
@@ -9,6 +9,7 @@ import com.yahoo.config.model.builder.xml.XmlHelper;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.graph.ModelGraphBuilder;
import com.yahoo.config.model.graph.ModelNode;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.model.provision.HostsXmlProvisioner;
import com.yahoo.text.XML;
@@ -172,7 +173,7 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
ApplicationType applicationType,
DeployState deployState,
VespaModel vespaModel,
- TreeConfigProducer parent,
+ TreeConfigProducer<AnyConfigProducer> parent,
List<Element> elements) {
for (Element servicesElement : elements) {
ConfigModel model = buildModel(node, applicationType, deployState, vespaModel, parent, servicesElement);
@@ -185,7 +186,7 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
ApplicationType applicationType,
DeployState deployState,
VespaModel vespaModel,
- TreeConfigProducer parent,
+ TreeConfigProducer<AnyConfigProducer> parent,
Element servicesElement) {
ConfigModelBuilder builder = node.builder;
ConfigModelContext context = ConfigModelContext.create(applicationType, deployState, vespaModel, this, parent, getIdString(servicesElement));
diff --git a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java
index d4fb96e3f19..1562dbbfb00 100644
--- a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java
+++ b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java
@@ -9,6 +9,7 @@ import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.admin.Admin;
import com.yahoo.vespa.model.builder.xml.dom.DomAdminV2Builder;
@@ -80,7 +81,7 @@ public class AdminModel extends ConfigModel {
new BuilderV4().doBuild(model, adminElement, modelContext);
return;
}
- TreeConfigProducer<?> parent = modelContext.getParentProducer();
+ TreeConfigProducer<AnyConfigProducer> parent = modelContext.getParentProducer();
ModelContext.Properties properties = modelContext.getDeployState().getProperties();
DomAdminV2Builder domBuilder = new DomAdminV2Builder(modelContext.getApplicationType(),
properties.multitenant(),
@@ -109,7 +110,7 @@ public class AdminModel extends ConfigModel {
@Override
public void doBuild(AdminModel model, Element adminElement, ConfigModelContext modelContext) {
- TreeConfigProducer<?> parent = modelContext.getParentProducer();
+ TreeConfigProducer<AnyConfigProducer> parent = modelContext.getParentProducer();
ModelContext.Properties properties = modelContext.getDeployState().getProperties();
DomAdminV4Builder domBuilder = new DomAdminV4Builder(modelContext,
properties.multitenant(),
diff --git a/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java b/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java
index c968006a5b6..45f64182b2a 100644
--- a/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java
@@ -8,6 +8,7 @@ import com.yahoo.config.model.ConfigModelInstanceFactory;
import com.yahoo.config.model.ConfigModelRepo;
import com.yahoo.config.model.api.ConfigModelPlugin;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.VespaModel;
import org.w3c.dom.Element;
@@ -55,7 +56,7 @@ public abstract class ConfigModelBuilder<MODEL extends ConfigModel> extends Abst
* @param spec the XML element this is constructed from
*/
public final MODEL build(DeployState deployState, VespaModel vespaModel, ConfigModelRepo configModelRepo,
- TreeConfigProducer<?> parent, Element spec) {
+ TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
ConfigModelContext context = ConfigModelContext.create(deployState, vespaModel, configModelRepo, parent, getIdString(spec));
return build(new DefaultModelInstanceFactory(), spec, context);
}
diff --git a/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducerRoot.java
index 6dd94028e9c..ef3823d8873 100644
--- a/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducerRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducerRoot.java
@@ -15,7 +15,7 @@ import java.util.Optional;
*
* @author Tony Vaagenes
*/
-public abstract class AbstractConfigProducerRoot extends TreeConfigProducer<TreeConfigProducer<?>>
+public abstract class AbstractConfigProducerRoot extends TreeConfigProducer<AnyConfigProducer>
implements ConfigProducerRoot {
/** The ConfigProducers contained in this model indexed by config id */
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
index f1113ee2d00..7b2aaa32136 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
@@ -107,7 +107,7 @@ public class MockRoot extends AbstractConfigProducerRoot {
}
@Override
- public void addChild(TreeConfigProducer<?> abstractConfigProducer) {
+ public void addChild(AnyConfigProducer abstractConfigProducer) {
super.addChild(abstractConfigProducer);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java
index 0041d3fa44c..8411fade6f6 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model;
import com.yahoo.config.model.api.PortInfo;
import com.yahoo.config.model.api.ServiceInfo;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.defaults.Defaults;
@@ -27,7 +28,7 @@ import static com.yahoo.text.Lowercase.toLowerCase;
*
* @author gjoranv
*/
-public abstract class AbstractService extends TreeConfigProducer<TreeConfigProducer<?>> implements Service {
+public abstract class AbstractService extends TreeConfigProducer<AnyConfigProducer> implements Service {
// The physical host this Service runs on.
private HostResource hostResource = null;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/Client.java b/config-model/src/main/java/com/yahoo/vespa/model/Client.java
index f9d93f97fa1..7f5a73ad125 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/Client.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/Client.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
/**
@@ -10,7 +11,7 @@ import com.yahoo.config.model.producer.TreeConfigProducer;
*
* @author Simon Thoresen Hult
*/
-public class Client extends TreeConfigProducer {
+public class Client extends TreeConfigProducer<AnyConfigProducer> {
/**
* Constructs a client config producer that is added as a child to
@@ -18,7 +19,7 @@ public class Client extends TreeConfigProducer {
*
* @param parent The parent config producer.
*/
- public Client(TreeConfigProducer parent) {
+ public Client(TreeConfigProducer<? super Client> parent) {
super(parent, "client");
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/Host.java b/config-model/src/main/java/com/yahoo/vespa/model/Host.java
index 4bf50f98550..3eace3673df 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/Host.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/Host.java
@@ -24,7 +24,7 @@ public final class Host extends TreeConfigProducer<TreeConfigProducer<?>> implem
* @param parent parent TreeConfigProducer in the config model.
* @param hostname hostname for this host.
*/
- public Host(TreeConfigProducer<?> parent, String hostname) {
+ public Host(TreeConfigProducer<? super Host> parent, String hostname) {
this(parent, hostname, false);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/SimpleConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/SimpleConfigProducer.java
index bea9bb8edcc..99010ba041c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/SimpleConfigProducer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/SimpleConfigProducer.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
/**
@@ -8,7 +9,7 @@ import com.yahoo.config.model.producer.TreeConfigProducer;
*
* @author arnej27959
*/
-public final class SimpleConfigProducer<T extends TreeConfigProducer<?>> extends TreeConfigProducer<T> {
+public final class SimpleConfigProducer<T extends AnyConfigProducer> extends TreeConfigProducer<T> {
private static final long serialVersionUID = 1L;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index 0dc51411532..cfc5500bea8 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -6,6 +6,7 @@ import com.yahoo.cloud.config.ZookeepersConfig;
import com.yahoo.cloud.config.log.LogdConfig;
import com.yahoo.config.model.ConfigModelContext.ApplicationType;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.vespa.model.AbstractService;
@@ -38,7 +39,7 @@ import static com.yahoo.vespa.model.admin.monitoring.MetricSet.empty;
*
* @author gjoranv
*/
-public class Admin extends TreeConfigProducer<Admin> implements Serializable {
+public class Admin extends TreeConfigProducer<AnyConfigProducer> implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java
index 5c2f18a4303..d70c26d6e8f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Configserver.java
@@ -23,7 +23,7 @@ public class Configserver extends AbstractService {
private final int rpcPort;
- public Configserver(TreeConfigProducer parent, String name, int rpcPort) {
+ public Configserver(TreeConfigProducer<? super Configserver> parent, String name, int rpcPort) {
super(parent, name);
this.rpcPort = rpcPort;
portsMeta.on(0).tag("rpc").tag("config");
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java
index d68241c4e1f..6284c0bc625 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java
@@ -41,7 +41,7 @@ public class LogForwarder extends AbstractService implements LogforwarderConfig.
* Creates a new LogForwarder instance.
*/
// TODO: Use proper types?
- public LogForwarder(TreeConfigProducer parent, Config config) {
+ public LogForwarder(TreeConfigProducer<? super LogForwarder> parent, Config config) {
super(parent, "logforwarder");
this.config = config;
setProp("clustertype", "hosts");
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java
index a45ce37c7b7..7d7d0007b5e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Logserver.java
@@ -19,7 +19,7 @@ public class Logserver extends AbstractService {
private static final String logArchiveDir = "$ROOT/logs/vespa/logarchive";
private String compressionType = "gzip";
- public Logserver(TreeConfigProducer parent) {
+ public Logserver(TreeConfigProducer<? super Logserver> parent) {
super(parent, "logserver");
portsMeta.on(0).tag("logtp").tag("rpc");
portsMeta.on(1).tag("unused");
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/ModelConfigProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/ModelConfigProvider.java
index be75a25eff8..e96c41c92e5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/ModelConfigProvider.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/ModelConfigProvider.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.admin;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
/**
@@ -11,9 +12,9 @@ import com.yahoo.config.model.producer.TreeConfigProducer;
* @author gjoranv
* @since 5.0.8
*/
-public class ModelConfigProvider extends TreeConfigProducer {
+public class ModelConfigProvider extends TreeConfigProducer<AnyConfigProducer> {
- public ModelConfigProvider(TreeConfigProducer<?> parent) {
+ public ModelConfigProvider(TreeConfigProducer<AnyConfigProducer> parent) {
super(parent, "model");
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java
index 8853280ac09..3ad81ef9f57 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.ConfigModelRepo;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
@@ -14,7 +15,7 @@ import com.yahoo.config.model.ApplicationConfigProducerRoot;
*/
public abstract class VespaModelBuilder {
- public abstract ApplicationConfigProducerRoot getRoot(String name, DeployState deployState, TreeConfigProducer parent);
+ public abstract ApplicationConfigProducerRoot getRoot(String name, DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent);
/**
* Processing that requires access across plugins
@@ -22,6 +23,6 @@ public abstract class VespaModelBuilder {
* @param producerRoot the root producer.
* @param configModelRepo a {@link com.yahoo.config.model.ConfigModelRepo instance}
*/
- public abstract void postProc(DeployState deployState, TreeConfigProducer producerRoot, ConfigModelRepo configModelRepo);
+ public abstract void postProc(DeployState deployState, TreeConfigProducer<AnyConfigProducer> producerRoot, ConfigModelRepo configModelRepo);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
index 709b18b57f7..55ea62d0590 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.model.ConfigModelContext.ApplicationType;
import com.yahoo.config.model.api.ConfigServerSpec;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.container.logging.LevelsModSpec;
import com.yahoo.text.XML;
@@ -33,7 +34,7 @@ import java.util.Optional;
* @author Ulf Lilleengen
* @author Vegard Havdal
*/
-public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProducerBuilder<Admin> {
+public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProducerBuilder<Admin, AnyConfigProducer> {
private final ApplicationType applicationType;
protected final List<ConfigServerSpec> configServerSpecs;
@@ -47,7 +48,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
this.configServerSpecs = configServerSpecs;
}
- List<Configserver> getConfigServersFromSpec(DeployState deployState, TreeConfigProducer<?> parent) {
+ List<Configserver> getConfigServersFromSpec(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent) {
List<Configserver> configservers = new ArrayList<>();
for (ConfigServerSpec spec : configServerSpecs) {
HostSystem hostSystem = parent.hostSystem();
@@ -63,7 +64,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
}
@Override
- protected Admin doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element adminElement) {
+ protected Admin doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element adminElement) {
Monitoring monitoring = getMonitoring(XML.getChild(adminElement,"monitoring"), deployState.isHosted());
Metrics metrics = new MetricsBuilder(applicationType, PredefinedMetricSets.get())
.buildMetrics(XML.getChild(adminElement, "metrics"));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
index 3c28ddcbc5d..57dc8955313 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.api.ConfigServerSpec;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.SimpleConfigProducer;
@@ -104,19 +105,19 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
return cluster;
}
- private List<Configserver> getConfigServers(DeployState deployState, TreeConfigProducer<?> parent, Element adminE) {
+ private List<Configserver> getConfigServers(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element adminE) {
Element configserversE = XML.getChild(adminE, "configservers");
if (configserversE == null) {
Element adminserver = XML.getChild(adminE, "adminserver");
if (adminserver == null) {
return createSingleConfigServer(deployState, parent);
} else {
- SimpleConfigProducer<?> configServers = new SimpleConfigProducer<>(parent, "configservers");
+ SimpleConfigProducer<AnyConfigProducer> configServers = new SimpleConfigProducer<>(parent, "configservers");
return List.of(new ConfigserverBuilder(0, configServerSpecs).build(deployState, configServers, adminserver));
}
}
else {
- SimpleConfigProducer<?> configServers = new SimpleConfigProducer<>(parent, "configservers");
+ SimpleConfigProducer<AnyConfigProducer> configServers = new SimpleConfigProducer<>(parent, "configservers");
List<Configserver> configservers = new ArrayList<>();
int i = 0;
for (Element configserverE : XML.getChildren(configserversE, "configserver"))
@@ -127,21 +128,21 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
/** Fallback when no config server is specified */
private List<Configserver> createSingleConfigServer(DeployState deployState, TreeConfigProducer<?> parent) {
- SimpleConfigProducer<?> configServers = new SimpleConfigProducer<>(parent, "configservers");
+ SimpleConfigProducer<AnyConfigProducer> configServers = new SimpleConfigProducer<>(parent, "configservers");
Configserver configServer = new Configserver(configServers, "configserver", Configserver.defaultRpcPort);
configServer.setHostResource(parent.hostSystem().getHost(Container.SINGLENODE_CONTAINER_SERVICESPEC));
configServer.initService(deployState);
return List.of(configServer);
}
- private List<Slobrok> getSlobroks(DeployState deployState, TreeConfigProducer<?> parent, Element slobroksE) {
+ private List<Slobrok> getSlobroks(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element slobroksE) {
List<Slobrok> slobroks = new ArrayList<>();
if (slobroksE != null)
slobroks = getExplicitSlobrokSetup(deployState, parent, slobroksE);
return slobroks;
}
- private List<Slobrok> getExplicitSlobrokSetup(DeployState deployState, TreeConfigProducer<?> parent, Element slobroksE) {
+ private List<Slobrok> getExplicitSlobrokSetup(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element slobroksE) {
List<Slobrok> slobroks = new ArrayList<>();
int i = 0;
for (Element e : XML.getChildren(slobroksE, "slobrok"))
@@ -149,17 +150,17 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
return slobroks;
}
- private static class LogserverBuilder extends DomConfigProducerBuilder<Logserver> {
+ private static class LogserverBuilder extends DomConfigProducerBuilder<Logserver, AnyConfigProducer> {
public LogserverBuilder() {
}
@Override
- protected Logserver doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element producerSpec) {
+ protected Logserver doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element producerSpec) {
return new Logserver(parent);
}
}
- private static class ConfigserverBuilder extends DomConfigProducerBuilder<Configserver> {
+ private static class ConfigserverBuilder extends DomConfigProducerBuilder<Configserver, AnyConfigProducer> {
private final int i;
private final int rpcPort;
@@ -173,14 +174,14 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
}
@Override
- protected Configserver doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element spec) {
+ protected Configserver doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
var configServer = new Configserver(parent, "configserver." + i, rpcPort);
configServer.setProp("index", i);
return configServer;
}
}
- private static class SlobrokBuilder extends DomConfigProducerBuilder<Slobrok> {
+ private static class SlobrokBuilder extends DomConfigProducerBuilder<Slobrok, AnyConfigProducer> {
int i;
@@ -189,13 +190,13 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
}
@Override
- protected Slobrok doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element spec) {
+ protected Slobrok doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
return new Slobrok(parent, i, deployState.featureFlags());
}
}
- private static class ClusterControllerBuilder extends DomConfigProducerBuilder<ClusterControllerContainer> {
+ private static class ClusterControllerBuilder extends DomConfigProducerBuilder<ClusterControllerContainer, AnyConfigProducer> {
int i;
boolean runStandaloneZooKeeper;
@@ -205,7 +206,7 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
}
@Override
- protected ClusterControllerContainer doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element spec) {
+ protected ClusterControllerContainer doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
return new ClusterControllerContainer(parent, i, runStandaloneZooKeeper, deployState, false);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientProviderBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientProviderBuilder.java
index 59b2d29c6aa..3491f219a8e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientProviderBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomClientProviderBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.container.ApplicationContainerCluster;
@@ -20,7 +21,7 @@ public class DomClientProviderBuilder extends DomHandlerBuilder {
}
@Override
- protected Handler doBuild(DeployState deployState, TreeConfigProducer parent, Element clientElement) {
+ protected Handler doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element clientElement) {
Handler client = createHandler(clientElement);
for (Element binding : XML.getChildren(clientElement, "binding"))
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomComponentBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomComponentBuilder.java
index 2953b9da761..c57122e5bf5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomComponentBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomComponentBuilder.java
@@ -5,6 +5,7 @@ import com.yahoo.component.ComponentId;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.container.bundle.BundleInstantiationSpecification;
import com.yahoo.osgi.provider.model.ComponentModel;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.container.component.Component;
@@ -15,7 +16,7 @@ import org.w3c.dom.Element;
* @author gjoranv
* @author Tony Vaagenes
*/
-public class DomComponentBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Component<?, ?>> {
+public class DomComponentBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Component<?, ?>, AnyConfigProducer> {
public static final String elementName = "component" ;
@@ -30,7 +31,7 @@ public class DomComponentBuilder extends VespaDomBuilder.DomConfigProducerBuilde
}
@Override
- protected Component doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element spec) {
+ protected Component doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element spec) {
Component component = buildComponent(spec);
addChildren(deployState, ancestor, spec, component);
return component;
@@ -43,13 +44,13 @@ public class DomComponentBuilder extends VespaDomBuilder.DomConfigProducerBuilde
return new Component<Component<?, ?>, ComponentModel>(new ComponentModel(bundleSpec));
}
- public static void addChildren(DeployState deployState, TreeConfigProducer ancestor, Element componentNode, Component<? super Component<?, ?>, ?> component) {
+ public static void addChildren(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element componentNode, Component<? super Component<?, ?>, ?> component) {
for (Element childNode : XML.getChildren(componentNode, elementName)) {
addAndInjectChild(deployState, ancestor, component, childNode);
}
}
- private static void addAndInjectChild(DeployState deployState, TreeConfigProducer ancestor, Component<? super Component<?, ?>, ?> component, Element childNode) {
+ private static void addAndInjectChild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Component<? super Component<?, ?>, ?> component, Element childNode) {
Component<?, ?> child = new DomComponentBuilder(component.getComponentId()).build(deployState, ancestor, childNode);
component.addComponent(child);
component.inject(child);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomHandlerBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomHandlerBuilder.java
index c3ff10c1297..5e0c5bab8ca 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomHandlerBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomHandlerBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.container.bundle.BundleInstantiationSpecification;
import com.yahoo.osgi.provider.model.ComponentModel;
@@ -27,7 +28,7 @@ import static java.util.logging.Level.INFO;
/**
* @author gjoranv
*/
-public class DomHandlerBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Handler> {
+public class DomHandlerBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Handler, AnyConfigProducer> {
private static final Set<BindingPattern> reservedBindings =
Set.of(METRICS_V2_HANDLER_BINDING_1,
@@ -48,7 +49,7 @@ public class DomHandlerBuilder extends VespaDomBuilder.DomConfigProducerBuilder<
}
@Override
- protected Handler doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element handlerElement) {
+ protected Handler doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element handlerElement) {
Handler handler = createHandler(handlerElement);
OptionalInt port = portBindingOverride.isPresent() && deployState.isHosted() && deployState.featureFlags().useRestrictedDataPlaneBindings()
? portBindingOverride
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java
index d2304eabe0c..dce9bfd73c3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.text.XML;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.search.Tuning;
import org.w3c.dom.Element;
@@ -12,10 +13,10 @@ import org.w3c.dom.Element;
*
* @author geirst
*/
-public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Tuning> {
+public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Tuning, AnyConfigProducer> {
@Override
- protected Tuning doBuild(DeployState deployState, TreeConfigProducer parent, Element spec) {
+ protected Tuning doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
Tuning tuning = new Tuning(parent);
for (Element e : XML.getChildren(spec)) {
if (equals("searchnode", e))
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/LegacyConfigModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/LegacyConfigModelBuilder.java
index e5d33333420..f105c4b4fe1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/LegacyConfigModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/LegacyConfigModelBuilder.java
@@ -5,6 +5,7 @@ import com.yahoo.config.model.ConfigModel;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.ConfigModelInstanceFactory;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import org.w3c.dom.Element;
@@ -23,7 +24,7 @@ public abstract class LegacyConfigModelBuilder<MODEL extends ConfigModel> extend
@Override
public MODEL build(ConfigModelInstanceFactory<MODEL> factory, Element spec, ConfigModelContext context) {
VespaDomBuilder.DomSimpleConfigProducerBuilder builder = new VespaDomBuilder.DomSimpleConfigProducerBuilder(context.getProducerId());
- TreeConfigProducer producer = builder.build(context.getDeployState(), context.getParentProducer(), spec);
+ TreeConfigProducer<AnyConfigProducer> producer = builder.build(context.getDeployState(), context.getParentProducer(), spec);
return super.build(factory, spec, context.withParent(producer));
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
index 1b0987ea518..27ebf3a9657 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
@@ -7,6 +7,7 @@ import com.yahoo.config.model.ApplicationConfigProducerRoot;
import com.yahoo.config.model.ConfigModelRepo;
import com.yahoo.config.model.builder.xml.XmlHelper;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.model.producer.UserConfigRepo;
import com.yahoo.text.XML;
@@ -61,7 +62,7 @@ public class VespaDomBuilder extends VespaModelBuilder {
@Override
- public ApplicationConfigProducerRoot getRoot(String name, DeployState deployState, TreeConfigProducer parent) {
+ public ApplicationConfigProducerRoot getRoot(String name, DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent) {
try {
return new DomRootBuilder(name).
build(deployState, parent, XmlHelper.getDocument(deployState.getApplicationPackage().getServices(), "services.xml")
@@ -85,10 +86,11 @@ public class VespaDomBuilder extends VespaModelBuilder {
*
* @param <T> an {@link com.yahoo.config.model.producer.TreeConfigProducer}
*/
- public static abstract class DomConfigProducerBuilder<T extends TreeConfigProducer<?>> {
+ public static abstract class DomConfigProducerBuilder<T extends AnyConfigProducer, P extends AnyConfigProducer>
+ {
// TODO: find good way to provide access to app package
- public final T build(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ public final T build(DeployState deployState, TreeConfigProducer<P> ancestor, Element producerSpec) {
T t = doBuild(deployState, ancestor, producerSpec);
if (t instanceof AbstractService) {
@@ -100,9 +102,9 @@ public class VespaDomBuilder extends VespaModelBuilder {
return t;
}
- protected abstract T doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec);
+ protected abstract T doBuild(DeployState deployState, TreeConfigProducer<P> ancestor, Element producerSpec);
- private void initializeProducer(TreeConfigProducer<?> child, DeployState deployState, Element producerSpec) {
+ private void initializeProducer(AnyConfigProducer child, DeployState deployState, Element producerSpec) {
UserConfigRepo userConfigs = UserConfigBuilder.build(producerSpec, deployState, deployState.getDeployLogger());
// TODO: must be made to work:
//userConfigs.applyWarnings(child);
@@ -174,7 +176,7 @@ public class VespaDomBuilder extends VespaModelBuilder {
*
* @author vegardh
*/
- static class DomSimpleConfigProducerBuilder extends DomConfigProducerBuilder<SimpleConfigProducer<?>> {
+ static class DomSimpleConfigProducerBuilder extends DomConfigProducerBuilder<SimpleConfigProducer<AnyConfigProducer>, AnyConfigProducer> {
private final String configId;
@@ -183,13 +185,13 @@ public class VespaDomBuilder extends VespaModelBuilder {
}
@Override
- protected SimpleConfigProducer<?> doBuild(DeployState deployState, TreeConfigProducer<?> parent,
+ protected SimpleConfigProducer<AnyConfigProducer> doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent,
Element producerSpec) {
return new SimpleConfigProducer<>(parent, configId);
}
}
- public static class DomRootBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ApplicationConfigProducerRoot> {
+ public static class DomRootBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ApplicationConfigProducerRoot, AnyConfigProducer> {
private final String name;
/**
@@ -200,7 +202,7 @@ public class VespaDomBuilder extends VespaModelBuilder {
}
@Override
- protected ApplicationConfigProducerRoot doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element producerSpec) {
+ protected ApplicationConfigProducerRoot doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element producerSpec) {
ApplicationConfigProducerRoot root = new ApplicationConfigProducerRoot(parent,
name,
deployState.getDocumentModel(),
@@ -242,7 +244,7 @@ public class VespaDomBuilder extends VespaModelBuilder {
* @param root root config producer
* @param configModelRepo a {@link ConfigModelRepo}
*/
- public void postProc(DeployState deployState, TreeConfigProducer root, ConfigModelRepo configModelRepo) {
+ public void postProc(DeployState deployState, TreeConfigProducer<AnyConfigProducer> root, ConfigModelRepo configModelRepo) {
setContentSearchClusterIndexes(configModelRepo);
createDocprocMBusServersAndClients(configModelRepo);
if (deployState.isHosted()) validateContainerClusterIds(configModelRepo);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ChainsBuilder.java
index 759678686f5..cf117aa3b9a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ChainsBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.text.XML;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.container.component.chain.Chain;
import com.yahoo.vespa.model.container.component.chain.ChainedComponent;
@@ -24,7 +25,7 @@ public class ChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends
private final Map<String, Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>>> chainType2BuilderClass;
// NOTE: The chain type string (key in chainType2BuilderClass) must match the xml tag name for the chain.
- public ChainsBuilder(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> chainsElems,
+ public ChainsBuilder(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> chainsElems,
Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName,
Map<String, Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>>> chainType2BuilderClass) {
@@ -36,7 +37,7 @@ public class ChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends
return Collections.unmodifiableCollection(chains);
}
- private void readChains(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> chainsElems,
+ private void readChains(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> chainsElems,
Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
for (Map.Entry<String, Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>>>
@@ -49,7 +50,7 @@ public class ChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends
}
}
- private void readChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element chainElem,
+ private void readChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element chainElem,
Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>> builderClass,
Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ComponentsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ComponentsBuilder.java
index dc15b4e02f1..f97cc2562c3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ComponentsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ComponentsBuilder.java
@@ -5,6 +5,7 @@ import com.yahoo.component.ComponentId;
import com.yahoo.component.ComponentSpecification;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.text.XML;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.model.builder.xml.XmlHelper;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
@@ -48,15 +49,15 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
final String name;
- private final Class<? extends VespaDomBuilder.DomConfigProducerBuilder<T>> builderClass;
+ private final Class<? extends VespaDomBuilder.DomConfigProducerBuilder<T, AnyConfigProducer> > builderClass;
- private ComponentType(String name, Class<? extends VespaDomBuilder.DomConfigProducerBuilder<T>> builderClass) {
+ private ComponentType(String name, Class<? extends VespaDomBuilder.DomConfigProducerBuilder<T, AnyConfigProducer> > builderClass) {
this.name = name;
this.builderClass = builderClass;
values.add(this);
}
- public VespaDomBuilder.DomConfigProducerBuilder<T> createBuilder() {
+ public VespaDomBuilder.DomConfigProducerBuilder<T, AnyConfigProducer > createBuilder() {
return DomBuilderCreator.create(builderClass);
}
}
@@ -73,7 +74,7 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
* every component is a definition, not a reference.
*/
ComponentsBuilder(DeployState deployState,
- TreeConfigProducer<?> ancestor,
+ TreeConfigProducer<AnyConfigProducer> ancestor,
Collection<ComponentType<T>> componentTypes,
List<Element> elementsContainingComponentElems,
Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
@@ -81,7 +82,8 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
readComponents(deployState, ancestor, componentTypes, elementsContainingComponentElems, unmodifiable(outerComponentTypeByComponentName));
}
- private void readComponents(DeployState deployState, TreeConfigProducer<?> ancestor,
+ private void readComponents(DeployState deployState,
+ TreeConfigProducer<AnyConfigProducer> ancestor,
Collection<ComponentType<T>> componentTypes,
List<Element> elementsContainingComponentElems,
Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
@@ -95,7 +97,7 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
}
}
- private void readComponent(DeployState deployState, TreeConfigProducer<?> ancestor,
+ private void readComponent(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor,
Element componentElement,
ComponentType<T> componentType,
Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
@@ -119,7 +121,7 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
outerComponentReferences.add(componentSpecification);
}
- private void readComponentDefinition(DeployState deployState, TreeConfigProducer<?> ancestor, Element componentElement, ComponentType<T> componentType) {
+ private void readComponentDefinition(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element componentElement, ComponentType<T> componentType) {
T component = componentType.createBuilder().build(deployState, ancestor, componentElement);
componentDefinitions.add(component);
updateComponentTypes(component.getComponentId(), componentType);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainBuilderBase.java
index d562cdde848..e15c14a1f58 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainBuilderBase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainBuilderBase.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.container.component.chain.Chain;
@@ -17,7 +18,7 @@ import java.util.Map;
* @author Tony Vaagenes
*/
public abstract class DomChainBuilderBase<COMPONENT extends ChainedComponent<?>, CHAIN extends Chain<COMPONENT>>
- extends VespaDomBuilder.DomConfigProducerBuilder<CHAIN> {
+ extends VespaDomBuilder.DomConfigProducerBuilder<CHAIN, AnyConfigProducer> {
private final Collection<ComponentsBuilder.ComponentType<COMPONENT>> allowedComponentTypes;
protected final Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName;
@@ -28,7 +29,7 @@ public abstract class DomChainBuilderBase<COMPONENT extends ChainedComponent<?>,
this.outerComponentTypeByComponentName = outerComponentTypeByComponentName;
}
- public final CHAIN doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ public final CHAIN doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
ComponentsBuilder<COMPONENT> componentsBuilder =
new ComponentsBuilder<>(deployState, ancestor, allowedComponentTypes, List.of(producerSpec), outerComponentTypeByComponentName);
ChainSpecification specWithoutInnerComponents =
@@ -46,6 +47,6 @@ public abstract class DomChainBuilderBase<COMPONENT extends ChainedComponent<?>,
}
}
- protected abstract CHAIN buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec,
+ protected abstract CHAIN buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec,
ChainSpecification specWithoutInnerComponents);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainsBuilder.java
index d680ed0c861..98e1e256d17 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder.ComponentType;
@@ -22,7 +23,8 @@ import java.util.Map;
*/
public abstract
class DomChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends Chain<COMPONENT>, CHAINS extends Chains<CHAIN>>
- extends VespaDomBuilder.DomConfigProducerBuilder<CHAINS> {
+ extends VespaDomBuilder.DomConfigProducerBuilder<CHAINS, AnyConfigProducer>
+{
private final Collection<ComponentType<COMPONENT>> allowedComponentTypes;
@@ -31,10 +33,10 @@ class DomChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends Chai
this.allowedComponentTypes = new ArrayList<>(allowedComponentTypes);
}
- protected abstract CHAINS newChainsInstance(TreeConfigProducer<?> parent);
+ protected abstract CHAINS newChainsInstance(TreeConfigProducer<AnyConfigProducer> parent);
@Override
- protected final CHAINS doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element chainsElement) {
+ protected final CHAINS doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element chainsElement) {
CHAINS chains = newChainsInstance(parent);
List<Element> allChainElements = allChainElements(deployState, chainsElement);
@@ -56,12 +58,12 @@ class DomChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends Chai
return chainsElements;
}
- private ComponentsBuilder<COMPONENT> readOuterComponents(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> chainsElems) {
+ private ComponentsBuilder<COMPONENT> readOuterComponents(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> chainsElems) {
return new ComponentsBuilder<>(deployState, ancestor, allowedComponentTypes, chainsElems, null);
}
protected abstract
- ChainsBuilder<COMPONENT, CHAIN> readChains(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> allChainsElems,
+ ChainsBuilder<COMPONENT, CHAIN> readChains(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> allChainsElems,
Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName);
private void addOuterComponents(CHAINS chains, ComponentsBuilder<COMPONENT> outerComponentsBuilder) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocprocChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocprocChainsBuilder.java
index 4fb89374bd2..53a39ec90b1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocprocChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocprocChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.docproc;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ChainsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
@@ -29,7 +30,7 @@ public class DocprocChainsBuilder extends ChainsBuilder<DocumentProcessor, Docpr
put("chain", DomDocprocChainBuilder.class);
}});
- public DocprocChainsBuilder(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> docprocChainsElements,
+ public DocprocChainsBuilder(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> docprocChainsElements,
Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(deployState, ancestor, docprocChainsElements, outerSearcherTypeByComponentName, chainType2builderClass);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java
index 3eefdd30b30..a70340b079e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.docproc;
import com.yahoo.collections.Pair;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase;
@@ -25,7 +26,7 @@ public class DomDocprocChainBuilder extends DomChainBuilderBase<DocumentProcesso
}
@Override
- protected DocprocChain buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec,
+ protected DocprocChain buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec,
ChainSpecification specWithoutInnerComponents) {
Map<Pair<String, String>, String> fieldNameSchemaMap = DocumentProcessorModelBuilder.parseFieldNameSchemaMap(producerSpec);
return new DocprocChain(specWithoutInnerComponents, fieldNameSchemaMap);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainsBuilder.java
index 8f43020422f..3a4470d9cf9 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.docproc;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder.ComponentType;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainsBuilder;
@@ -24,12 +25,12 @@ public class DomDocprocChainsBuilder extends DomChainsBuilder<DocumentProcessor
}
@Override
- protected DocprocChains newChainsInstance(TreeConfigProducer<?> parent) {
+ protected DocprocChains newChainsInstance(TreeConfigProducer<AnyConfigProducer> parent) {
return new DocprocChains(parent, "docprocchains");
}
@Override
- protected DocprocChainsBuilder readChains(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> docprocChainsElements,
+ protected DocprocChainsBuilder readChains(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> docprocChainsElements,
Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
return new DocprocChainsBuilder(deployState, ancestor, docprocChainsElements, outerComponentTypeByComponentName);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocumentProcessorBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocumentProcessorBuilder.java
index a08e09cfb98..ee73ca093cf 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocumentProcessorBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocumentProcessorBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.docproc;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.container.docproc.DocumentProcessor;
@@ -12,10 +13,10 @@ import org.w3c.dom.Element;
*
* @author gjoranv
*/
-public class DomDocumentProcessorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<DocumentProcessor> {
+public class DomDocumentProcessorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<DocumentProcessor, AnyConfigProducer> {
@Override
- protected DocumentProcessor doBuild(DeployState deployState, TreeConfigProducer ancestor, Element documentProcessorElement) {
+ protected DocumentProcessor doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element documentProcessorElement) {
DocumentProcessorModelBuilder modelBuilder = new DocumentProcessorModelBuilder(documentProcessorElement);
return new DocumentProcessor(modelBuilder.build());
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java
index 541c59705cf..e02f4ab87e0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.processing;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainsBuilder;
@@ -24,12 +25,12 @@ public class DomProcessingBuilder extends DomChainsBuilder<Processor, Processing
}
@Override
- protected ProcessingChains newChainsInstance(TreeConfigProducer<?> parent) {
+ protected ProcessingChains newChainsInstance(TreeConfigProducer<AnyConfigProducer> parent) {
return new ProcessingChains(parent, "processing");
}
@Override
- protected ProcessingChainsBuilder readChains(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> processingChainsElements,
+ protected ProcessingChainsBuilder readChains(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> processingChainsElements,
Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName) {
return new ProcessingChainsBuilder(deployState, ancestor, processingChainsElements, outerComponentTypeByComponentName);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingChainBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingChainBuilder.java
index b4d0bfad826..a0669630658 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingChainBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingChainBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.processing;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase;
@@ -21,7 +22,7 @@ public class DomProcessingChainBuilder extends DomChainBuilderBase<Processor, Pr
super(List.of(ComponentsBuilder.ComponentType.processor), outerComponentTypeByComponentName);
}
- protected ProcessingChain buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec,
+ protected ProcessingChain buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec,
ChainSpecification specWithoutInnerComponents) {
return new ProcessingChain(specWithoutInnerComponents);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessorBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessorBuilder.java
index 1b4466c6f87..c064d5edc37 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessorBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessorBuilder.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.processing;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.vespa.model.builder.xml.dom.chains.ChainedComponentModelBuilder;
import com.yahoo.vespa.model.container.processing.Processor;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import org.w3c.dom.Element;
@@ -14,10 +15,10 @@ import org.w3c.dom.Element;
* @author bratseth
* @since 5.1.6
*/
-public class DomProcessorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Processor> {
+public class DomProcessorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Processor, AnyConfigProducer> {
@Override
- protected Processor doBuild(DeployState deployState, TreeConfigProducer ancestor, Element processorElement) {
+ protected Processor doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element processorElement) {
ChainedComponentModelBuilder modelBuilder = new ChainedComponentModelBuilder(processorElement);
return new Processor(modelBuilder.build());
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java
index 5b6ae90f6ce..275ecbd1ab8 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.processing;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ChainsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
@@ -29,7 +30,7 @@ public class ProcessingChainsBuilder extends ChainsBuilder<Processor, Processing
put("chain", DomProcessingChainBuilder.class);
}});
- public ProcessingChainsBuilder(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> processingChainsElements,
+ public ProcessingChainsBuilder(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> processingChainsElements,
Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(deployState, ancestor, processingChainsElements, outerSearcherTypeByComponentName, chainType2builderClass);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomFederationSearcherBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomFederationSearcherBuilder.java
index 3231936d5aa..e9bfc28752b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomFederationSearcherBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomFederationSearcherBuilder.java
@@ -8,6 +8,7 @@ import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.search.searchchain.model.federation.FederationOptions;
import com.yahoo.search.searchchain.model.federation.FederationSearcherModel;
import com.yahoo.text.XML;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.DomComponentBuilder;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
@@ -26,7 +27,7 @@ import java.util.Optional;
*
* @author Tony Vaagenes
*/
-public class DomFederationSearcherBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Searcher<?>> {
+public class DomFederationSearcherBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Searcher<?>, AnyConfigProducer> {
static class FederationSearcherModelBuilder extends GenericChainedComponentModelBuilder {
@@ -75,14 +76,14 @@ public class DomFederationSearcherBuilder extends VespaDomBuilder.DomConfigProdu
}
@Override
- protected FederationSearcher doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element searcherElement) {
+ protected FederationSearcher doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element searcherElement) {
FederationSearcherModel model = new FederationSearcherModelBuilder(searcherElement).build();
Optional<Component> targetSelector = buildTargetSelector(deployState, ancestor, searcherElement, model.getComponentId());
return new FederationSearcher(model, targetSelector);
}
- private Optional<Component> buildTargetSelector(DeployState deployState, TreeConfigProducer<?> ancestor, Element searcherElement, ComponentId namespace) {
+ private Optional<Component> buildTargetSelector(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element searcherElement, ComponentId namespace) {
Element targetSelectorElement = XML.getChild(searcherElement, "target-selector");
if (targetSelectorElement == null)
return Optional.empty();
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java
index 4e06bc6c67a..b6c2d18078b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.search;
import com.yahoo.component.ComponentId;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.search.searchchain.model.federation.FederationOptions;
import com.yahoo.search.searchchain.model.federation.LocalProviderSpec;
@@ -125,7 +126,7 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> {
}
@Override
- protected Provider buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element providerElement,
+ protected Provider buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element providerElement,
ChainSpecification specWithoutInnerComponents) {
ProviderReader providerReader = new ProviderReader(providerElement);
@@ -140,7 +141,7 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> {
}
- private Collection<Source> buildSources(DeployState deployState, TreeConfigProducer<?> ancestor, Element providerElement) {
+ private Collection<Source> buildSources(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element providerElement) {
List<Source> sources = new ArrayList<>();
for (Element sourceElement : XML.getChildren(providerElement, "source")) {
sources.add(new DomSourceBuilder(outerComponentTypeByComponentName).build(deployState, ancestor, sourceElement));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainBuilder.java
index 0c349e60150..0d11b43db22 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.search;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase;
@@ -24,7 +25,7 @@ public class DomSearchChainBuilder extends DomChainBuilderBase<Searcher<?>, Sear
outerSearcherTypeByComponentName);
}
- protected SearchChain buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec,
+ protected SearchChain buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec,
ChainSpecification specWithoutInnerComponents) {
return new SearchChain(specWithoutInnerComponents);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilder.java
index ef02b2b3806..0b3f6fb411a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.search;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder.ComponentType;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainsBuilder;
@@ -26,12 +27,12 @@ public class DomSearchChainsBuilder extends DomChainsBuilder<Searcher<?>, Search
}
@Override
- protected SearchChains newChainsInstance(TreeConfigProducer<?> parent) {
+ protected SearchChains newChainsInstance(TreeConfigProducer<AnyConfigProducer> parent) {
return new SearchChains(parent, "searchchains");
}
@Override
- protected SearchChainsBuilder readChains(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> searchChainsElements,
+ protected SearchChainsBuilder readChains(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> searchChainsElements,
Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
return new SearchChainsBuilder(deployState, ancestor, searchChainsElements, outerComponentTypeByComponentName);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearcherBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearcherBuilder.java
index 47f538bbbcf..3a2e2300cac 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearcherBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearcherBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.search;
import com.yahoo.component.chain.model.ChainedComponentModel;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.ChainedComponentModelBuilder;
@@ -13,10 +14,10 @@ import org.w3c.dom.Element;
* Builds a Searcher from XML.
* @author Tony Vaagenes
*/
-public class DomSearcherBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Searcher<?>> {
+public class DomSearcherBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Searcher<?>, AnyConfigProducer> {
@Override
- protected Searcher<ChainedComponentModel> doBuild(DeployState deployState, TreeConfigProducer ancestor, Element searcherElement) {
+ protected Searcher<ChainedComponentModel> doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element searcherElement) {
ChainedComponentModelBuilder modelBuilder = new ChainedComponentModelBuilder(searcherElement);
return new Searcher<>(modelBuilder.build());
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java
index 586e93f2174..8f8ae444f2f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom.chains.search;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.model.builder.xml.XmlHelper;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
@@ -20,7 +21,7 @@ public class DomSourceBuilder extends DomGenericTargetBuilder<Source> {
super(outerSearcherTypeByComponentName);
}
- protected Source buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
+ protected Source buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
Source.GroupOption groupOption =
XmlHelper.isReference(producerSpec) ?
Source.GroupOption.participant :
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/SearchChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/SearchChainsBuilder.java
index 4740a283c26..de675901547 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/SearchChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/SearchChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.builder.xml.dom.chains.search;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ChainsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
@@ -30,7 +31,7 @@ public class SearchChainsBuilder extends ChainsBuilder<Searcher<?>, SearchChain>
put("provider", DomProviderBuilder.class);
}});
- public SearchChainsBuilder(DeployState deployState, TreeConfigProducer<?> ancestor, List<Element> searchChainsElements,
+ public SearchChainsBuilder(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, List<Element> searchChainsElements,
Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(deployState, ancestor, searchChainsElements, outerSearcherTypeByComponentName, chainType2builderClass);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
index 091ecae6e06..6a6f4583eae 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
@@ -353,7 +353,7 @@ public abstract class Container extends AbstractService implements
if (child instanceof Component)
allComponents.add((Component<?, ?>) child);
- if (child instanceof TreeConfigProducer t) {
+ if (child instanceof TreeConfigProducer<?> t) {
addAllEnabledComponents(allComponents, t);
}
}
@@ -403,7 +403,7 @@ public abstract class Container extends AbstractService implements
return Optional.ofNullable(containerClusterOrNull(parent));
}
- private static ContainerCluster containerClusterOrNull(TreeConfigProducer producer) {
+ private static ContainerCluster containerClusterOrNull(AnyConfigProducer producer) {
return producer instanceof ContainerCluster<?> ? (ContainerCluster<?>) producer : null;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index bf5698f81f7..d786135d3ee 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -10,6 +10,7 @@ import com.yahoo.config.docproc.DocprocConfig;
import com.yahoo.config.docproc.SchemamappingConfig;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Zone;
@@ -83,7 +84,7 @@ import static com.yahoo.vespa.model.container.component.chain.ProcessingHandler.
* @author Tony Vaagenes
*/
public abstract class ContainerCluster<CONTAINER extends Container>
- extends TreeConfigProducer<TreeConfigProducer<?>>
+ extends TreeConfigProducer<AnyConfigProducer>
implements
ComponentsConfig.Producer,
JdiscBindingsConfig.Producer,
@@ -426,7 +427,7 @@ public abstract class ContainerCluster<CONTAINER extends Container>
for (var child: current.getChildren().values()) {
if (child instanceof Component)
allComponents.add((Component<?, ?>) child);
-
+
if (child instanceof TreeConfigProducer t && !(child instanceof Container))
recursivelyFindAllComponents(allComponents, t);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ComponentGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ComponentGroup.java
index 21f5cb5d5e3..3adce73a99c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ComponentGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ComponentGroup.java
@@ -8,7 +8,7 @@ import com.yahoo.config.model.producer.TreeConfigProducer;
*/
public class ComponentGroup <CHILD extends Component<?, ?>> extends ConfigProducerGroup<CHILD> {
- public ComponentGroup(TreeConfigProducer parent, String subId) {
+ public ComponentGroup(TreeConfigProducer<? super ConfigProducerGroup> parent, String subId) {
super(parent, subId);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java
index bb19a5df679..edecd3ff627 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConfigProducerGroup.java
@@ -20,7 +20,7 @@ public class ConfigProducerGroup<CHILD extends TreeConfigProducer<?>> extends Tr
private final Map<ComponentId, CHILD> producerById = new LinkedHashMap<>();
- public ConfigProducerGroup(TreeConfigProducer parent, String subId) {
+ public ConfigProducerGroup(TreeConfigProducer<? super ConfigProducerGroup> parent, String subId) {
super(parent, subId);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java
index 9fb9dc3bde8..ce019f4a5b7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chain.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.container.component.chain;
import com.yahoo.component.ComponentId;
import com.yahoo.component.ComponentSpecification;
import com.yahoo.component.chain.model.ChainSpecification;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.container.component.ComponentGroup;
@@ -19,7 +20,7 @@ import static com.yahoo.container.core.ChainsConfig.Chains.Type;
* @author Tony Vaagenes
* @author gjoranv
*/
-public class Chain<T extends ChainedComponent<?>> extends TreeConfigProducer<TreeConfigProducer<?>> {
+public class Chain<T extends ChainedComponent<?>> extends TreeConfigProducer<AnyConfigProducer> {
private final ComponentId componentId;
private final ChainSpecification specWithoutInnerComponents;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chains.java
index e9d0d07dde1..e1fcdb31845 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chains.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/chain/Chains.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.container.component.chain;
import com.yahoo.component.chain.model.ChainsModel;
import com.yahoo.component.provider.ComponentRegistry;
import com.yahoo.container.core.ChainsConfig;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.container.component.ComponentGroup;
import com.yahoo.vespa.model.container.component.ConfigProducerGroup;
@@ -18,13 +19,13 @@ import java.util.Set;
* @author gjoranv
*/
public class Chains<CHAIN extends Chain<?>>
- extends TreeConfigProducer<TreeConfigProducer<?>>
+ extends TreeConfigProducer<AnyConfigProducer>
implements ChainsConfig.Producer {
private final ComponentGroup<ChainedComponent<?>> componentGroup;
private final ConfigProducerGroup<CHAIN> chainGroup;
- public Chains(TreeConfigProducer parent, String subId) {
+ public Chains(TreeConfigProducer<? super Chains> parent, String subId) {
super(parent, subId);
componentGroup = new ComponentGroup<>(this, "component");
chainGroup = new ConfigProducerGroup<>(this, "chain");
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 b37296ee2e6..ad6baac41f8 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
@@ -25,7 +25,7 @@ public class DocprocChains extends Chains<DocprocChain> {
private final ProcessingHandler<DocprocChains> docprocHandler;
- public DocprocChains(TreeConfigProducer<?> parent, String subId) {
+ public DocprocChains(TreeConfigProducer<? super Chains> parent, String subId) {
super(parent, subId);
docprocHandler = new ProcessingHandler<>(
this,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterChains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterChains.java
index f395c5e6777..b88680fcbc8 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterChains.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterChains.java
@@ -15,7 +15,7 @@ import java.util.Set;
*/
public class FilterChains extends Chains<HttpFilterChain> {
- public FilterChains(TreeConfigProducer<?> parent) {
+ public FilterChains(TreeConfigProducer<? super Chains> parent) {
super(parent, "filters");
addChild(new SimpleComponent("com.yahoo.container.http.filter.FilterChainRepository"));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterBuilder.java
index 283a6c76e39..07a159436a4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.container.http.xml;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.builder.xml.dom.DomComponentBuilder;
@@ -15,10 +16,10 @@ import org.w3c.dom.Element;
* @author Tony Vaagenes
* @author gjoranv
*/
-public class FilterBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Filter> {
+public class FilterBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Filter, AnyConfigProducer> {
@Override
- protected Filter doBuild(DeployState deployState, TreeConfigProducer ancestor, Element filterElement) {
+ protected Filter doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element filterElement) {
ChainedComponentModelBuilder modelBuilder = new ChainedComponentModelBuilder(filterElement);
Filter filter = new Filter(modelBuilder.build());
DomComponentBuilder.addChildren(deployState, ancestor, filterElement, filter);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java
index 560748bf671..fcd397d4865 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.container.http.xml;
import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase;
import com.yahoo.vespa.model.container.http.Filter;
@@ -27,7 +28,7 @@ public class FilterChainBuilder extends DomChainBuilderBase<Filter, HttpFilterCh
}
@Override
- protected HttpFilterChain buildChain(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
+ protected HttpFilterChain buildChain(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
return new HttpFilterChain(specWithoutInnerComponents, HttpFilterChain.Type.USER);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainsBuilder.java
index cef9a5ffd96..d03e12b96e8 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainsBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainsBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.container.http.xml;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.chains.ChainsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
@@ -35,14 +36,14 @@ public class FilterChainsBuilder extends DomChainsBuilder<Filter, HttpFilterChai
}
@Override
- protected FilterChains newChainsInstance(TreeConfigProducer<?> parent) {
+ protected FilterChains newChainsInstance(TreeConfigProducer<AnyConfigProducer> parent) {
return new FilterChains(parent);
}
@Override
protected ChainsBuilder<Filter, HttpFilterChain> readChains(
DeployState deployState,
- TreeConfigProducer<?> ancestor,
+ TreeConfigProducer<AnyConfigProducer> ancestor,
List<Element> allChainsElems, Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName) {
return new ChainsBuilder<>(deployState, ancestor, allChainsElems, outerComponentTypeByComponentName, chainType2BuilderClass);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
index 81d0ab95d48..477274eb10a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/HttpBuilder.java
@@ -28,14 +28,14 @@ import java.util.logging.Level;
* @author Tony Vaagenes
* @author gjoranv
*/
-public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http> {
+public class HttpBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Http, AnyConfigProducer> {
static final String REQUEST_CHAIN_TAG_NAME = "request-chain";
static final String RESPONSE_CHAIN_TAG_NAME = "response-chain";
static final List<String> VALID_FILTER_CHAIN_TAG_NAMES = List.of(REQUEST_CHAIN_TAG_NAME, RESPONSE_CHAIN_TAG_NAME);
@Override
- protected Http doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element spec) {
+ protected Http doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element spec) {
FilterChains filterChains;
List<FilterBinding> bindings = new ArrayList<>();
AccessControl accessControl = null;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java
index 28bdec31e05..37aa16dd92c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.container.http.xml;
import com.yahoo.component.ComponentId;
import com.yahoo.config.model.builder.xml.XmlHelper;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
@@ -23,10 +24,10 @@ import java.util.Optional;
* @author Einar M R Rosenvinge
* @author mortent
*/
-public class JettyConnectorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ConnectorFactory> {
+public class JettyConnectorBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ConnectorFactory, AnyConfigProducer> {
@Override
- protected ConnectorFactory doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element serverSpec) {
+ protected ConnectorFactory doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element serverSpec) {
String name = XmlHelper.getIdString(serverSpec);
int port = HttpBuilder.readPort(new ModelElement(serverSpec), deployState.isHosted());
ConnectorFactory.Builder builder = new ConnectorFactory.Builder(name, port);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyHttpServerBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyHttpServerBuilder.java
index 27ff9c3375c..846c9b53f61 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyHttpServerBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyHttpServerBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.container.http.xml;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
@@ -13,7 +14,7 @@ import org.w3c.dom.Element;
/**
* @author Einar M R Rosenvinge
*/
-public class JettyHttpServerBuilder extends VespaDomBuilder.DomConfigProducerBuilder<JettyHttpServer> {
+public class JettyHttpServerBuilder extends VespaDomBuilder.DomConfigProducerBuilder<JettyHttpServer, AnyConfigProducer> {
private final ContainerCluster<?> cluster;
@@ -22,7 +23,7 @@ public class JettyHttpServerBuilder extends VespaDomBuilder.DomConfigProducerBui
}
@Override
- protected JettyHttpServer doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element http) {
+ protected JettyHttpServer doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element http) {
JettyHttpServer jettyHttpServer = new JettyHttpServer("jdisc-jetty", cluster, deployState);
for (Element serverSpec: XML.getChildren(http, "server")) {
ConnectorFactory connectorFactory = new JettyConnectorBuilder().build(deployState, ancestor, serverSpec);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/processing/ProcessingChains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/processing/ProcessingChains.java
index f6519e04122..330e1f96dc7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/processing/ProcessingChains.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/processing/ProcessingChains.java
@@ -16,7 +16,7 @@ public class ProcessingChains extends Chains<ProcessingChain> {
public static final BindingPattern[] defaultBindings = new BindingPattern[]{SystemBindingPattern.fromHttpPath("/processing/*")};
- public ProcessingChains(TreeConfigProducer parent, String subId) {
+ public ProcessingChains(TreeConfigProducer<? super Chains> parent, String subId) {
super(parent, subId);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java
index 33f755e9571..24f561417ca 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java
@@ -21,7 +21,7 @@ public class SearchChains extends Chains<SearchChain> {
private final SourceGroupRegistry sourceGroups = new SourceGroupRegistry();
- public SearchChains(TreeConfigProducer<?> parent, String subId) {
+ public SearchChains(TreeConfigProducer<? super Chains> parent, String subId) {
super(parent, subId);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
index fc47ec8a724..ee7a9a7f457 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.container.xml;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.container.ContainerCluster;
@@ -40,7 +41,7 @@ public class AccessLogBuilder {
}
}
- private static class DomBuilder extends VespaDomBuilder.DomConfigProducerBuilder<AccessLogComponent> {
+ private static class DomBuilder extends VespaDomBuilder.DomConfigProducerBuilder<AccessLogComponent, AnyConfigProducer> {
private final AccessLogType accessLogType;
private final boolean isHostedVespa;
@@ -50,7 +51,7 @@ public class AccessLogBuilder {
}
@Override
- protected AccessLogComponent doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element spec) {
+ protected AccessLogComponent doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element spec) {
String fallback = deployState.featureFlags().logFileCompressionAlgorithm("zstd");
return new AccessLogComponent(
accessLogType,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 76526ca0b1e..af4ed037298 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -24,6 +24,7 @@ import com.yahoo.config.model.application.provider.IncludeDirs;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.AthenzDomain;
import com.yahoo.config.provision.AthenzService;
@@ -191,9 +192,9 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
}
private ApplicationContainerCluster createContainerCluster(Element spec, ConfigModelContext modelContext) {
- return new VespaDomBuilder.DomConfigProducerBuilder<ApplicationContainerCluster>() {
+ return new VespaDomBuilder.DomConfigProducerBuilder<ApplicationContainerCluster, AnyConfigProducer>() {
@Override
- protected ApplicationContainerCluster doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected ApplicationContainerCluster doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
return new ApplicationContainerCluster(ancestor, modelContext.getProducerId(),
modelContext.getProducerId(), deployState);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerServiceBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerServiceBuilder.java
index 32de7161a93..57a6e29e07d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerServiceBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerServiceBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.container.xml;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.container.ApplicationContainer;
@@ -10,7 +11,7 @@ import org.w3c.dom.Element;
/**
* @author Tony Vaagenes
*/
-public class ContainerServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ApplicationContainer> {
+public class ContainerServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ApplicationContainer, AnyConfigProducer> {
private final String id;
private final int index;
@@ -21,7 +22,7 @@ public class ContainerServiceBuilder extends VespaDomBuilder.DomConfigProducerBu
}
@Override
- protected ApplicationContainer doBuild(DeployState deployState, TreeConfigProducer<?> parent, Element nodeElem) {
+ protected ApplicationContainer doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element nodeElem) {
return new ApplicationContainer(parent, id, index, deployState);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java
index 31e22b8fe6a..ee78412f6ec 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.content;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.model.producer.AbstractConfigProducerRoot;
import com.yahoo.vespa.config.content.FleetcontrollerConfig;
@@ -18,7 +19,7 @@ import org.w3c.dom.Element;
*/
public class ClusterControllerConfig extends TreeConfigProducer<ClusterControllerConfig> implements FleetcontrollerConfig.Producer {
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<ClusterControllerConfig> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<ClusterControllerConfig, AnyConfigProducer> {
private final String clusterName;
private final ModelElement clusterElement;
private final ResourceLimits resourceLimits;
@@ -30,7 +31,7 @@ public class ClusterControllerConfig extends TreeConfigProducer<ClusterControlle
}
@Override
- protected ClusterControllerConfig doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected ClusterControllerConfig doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
ModelElement tuning = null;
ModelElement clusterTuning = clusterElement.child("tuning");
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java
index 383743a0d2e..ff7074fa60f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java
@@ -13,6 +13,7 @@ import com.yahoo.config.model.admin.AdminModel;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.AbstractService;
import com.yahoo.vespa.model.HostResource;
@@ -284,15 +285,24 @@ public class Content extends ConfigModel {
cluster.setIndexingChain(indexingChain);
}
+ private TreeConfigProducer<AnyConfigProducer> getDocProc(ApplicationConfigProducerRoot root) {
+ AnyConfigProducer current = root.getChildren().get(DOCPROC_RESERVED_NAME);
+ if (current == null) {
+ return new SimpleConfigProducer(root, DOCPROC_RESERVED_NAME);
+ }
+ if (current instanceof TreeConfigProducer t) {
+ return t;
+ }
+ throw new IllegalStateException("ApplicationConfigProducerRoot " + root + " with bad type for " + DOCPROC_RESERVED_NAME + ": " + current.getClass());
+ }
+
/** Create a new container cluster for indexing and add it to the Vespa model */
private void createImplicitIndexingCluster(IndexedSearchCluster cluster,
Content content,
ConfigModelContext modelContext,
ApplicationConfigProducerRoot root) {
String indexerName = cluster.getIndexingClusterName();
- TreeConfigProducer<?> parent = root.getChildren().get(DOCPROC_RESERVED_NAME);
- if (parent == null)
- parent = new SimpleConfigProducer(root, DOCPROC_RESERVED_NAME);
+ TreeConfigProducer<AnyConfigProducer> parent = getDocProc(root);
ApplicationContainerCluster indexingCluster = new ApplicationContainerCluster(parent, "cluster." + indexerName, indexerName, modelContext.getDeployState());
ContainerModel indexingClusterModel = new ContainerModel(modelContext.withParent(parent).withId(indexingCluster.getSubId()));
indexingClusterModel.setCluster(indexingCluster);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
index 5b60f9492f4..0eed56a990b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.content;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.documentmodel.NewDocumentType;
import com.yahoo.schema.Schema;
@@ -39,7 +40,7 @@ import java.util.stream.Collectors;
* Encapsulates the various options for search in a content model.
* Wraps a search cluster from com.yahoo.vespa.model.search.
*/
-public class ContentSearchCluster extends TreeConfigProducer<SearchCluster> implements
+public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer> implements
ProtonConfig.Producer,
DispatchNodesConfig.Producer,
DispatchConfig.Producer
@@ -77,7 +78,7 @@ public class ContentSearchCluster extends TreeConfigProducer<SearchCluster> impl
/** Whether the nodes of this cluster also hosts a container cluster in a hosted system */
private final double fractionOfMemoryReserved;
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<ContentSearchCluster> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<ContentSearchCluster, AnyConfigProducer> {
private final Map<String, NewDocumentType> documentDefinitions;
private final Set<NewDocumentType> globallyDistributedDocuments;
@@ -94,7 +95,7 @@ public class ContentSearchCluster extends TreeConfigProducer<SearchCluster> impl
}
@Override
- protected ContentSearchCluster doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected ContentSearchCluster doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
ModelElement clusterElem = new ModelElement(producerSpec);
String clusterName = ContentCluster.getClusterId(clusterElem);
Boolean flushOnShutdownElem = clusterElem.childAsBoolean("engine.proton.flush-on-shutdown");
@@ -267,7 +268,7 @@ public class ContentSearchCluster extends TreeConfigProducer<SearchCluster> impl
}
public void addSearchNode(DeployState deployState, ContentNode node, StorageGroup parentGroup, ModelElement element) {
- TreeConfigProducer<?> parent = hasIndexedCluster() ? getIndexed() : this;
+ TreeConfigProducer<AnyConfigProducer> parent = hasIndexedCluster() ? getIndexed() : this;
NodeSpec spec = getNextSearchNodeSpec(parentGroup);
SearchNode searchNode;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
index c7ac5eea905..0c5b45ab467 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
@@ -5,6 +5,7 @@ import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.vespa.config.content.core.StorDistributormanagerConfig;
import com.yahoo.vespa.config.content.core.StorServerConfig;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
@@ -19,7 +20,7 @@ public class Distributor extends ContentNode implements StorDistributormanagerCo
PersistenceEngine provider;
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<Distributor> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<Distributor, Distributor> {
ModelElement clusterXml;
PersistenceEngine persistenceProvider;
@@ -29,7 +30,7 @@ public class Distributor extends ContentNode implements StorDistributormanagerCo
}
@Override
- protected Distributor doBuild(DeployState deployState, TreeConfigProducer ancestor, Element producerSpec) {
+ protected Distributor doBuild(DeployState deployState, TreeConfigProducer<Distributor> ancestor, Element producerSpec) {
return new Distributor(deployState.getProperties(), (DistributorCluster)ancestor, new ModelElement(producerSpec).integerAttribute("distribution-key"),
clusterXml.integerAttribute("distributor-base-port"), persistenceProvider);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/DistributorCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/DistributorCluster.java
index dbe387952e0..dc62d079e88 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/DistributorCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/DistributorCluster.java
@@ -6,6 +6,7 @@ import com.yahoo.vespa.config.content.core.StorDistributormanagerConfig;
import com.yahoo.vespa.config.content.core.StorServerConfig;
import com.yahoo.document.select.DocumentSelector;
import com.yahoo.document.select.parser.ParseException;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.metrics.MetricsmanagerConfig;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
@@ -32,7 +33,7 @@ public class DistributorCluster extends TreeConfigProducer<Distributor> implemen
private final GcOptions gc;
private final boolean hasIndexedDocumentType;
private final int maxActivationInhibitedOutOfSyncGroups;
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<DistributorCluster> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<DistributorCluster, AnyConfigProducer> {
ContentCluster parent;
@@ -86,7 +87,7 @@ public class DistributorCluster extends TreeConfigProducer<Distributor> implemen
}
@Override
- protected DistributorCluster doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected DistributorCluster doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
final ModelElement clusterElement = new ModelElement(producerSpec);
final ModelElement documentsNode = clusterElement.child("documents");
final GcOptions gc = parseGcOptions(documentsNode);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
index 36090aa7349..31ec764fbde 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
@@ -519,4 +519,4 @@ public class StorageGroup {
}
}
-} \ No newline at end of file
+}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageNode.java b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageNode.java
index 3d4057d6dcd..c0b0ec3943d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageNode.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.content;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.config.content.StorFilestorConfig;
import com.yahoo.vespa.config.content.core.StorBucketmoverConfig;
@@ -29,10 +30,10 @@ public class StorageNode extends ContentNode implements StorServerConfig.Produce
private final boolean retired;
private final StorageCluster cluster;
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<StorageNode> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<StorageNode, StorageNode> {
@Override
- protected StorageNode doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected StorageNode doBuild(DeployState deployState, TreeConfigProducer<StorageNode> ancestor, Element producerSpec) {
ModelElement e = new ModelElement(producerSpec);
return new StorageNode(deployState.getProperties(), (StorageCluster)ancestor, e.doubleAttribute("capacity"), e.integerAttribute("distribution-key"), false);
}
@@ -67,7 +68,7 @@ public class StorageNode extends ContentNode implements StorServerConfig.Produce
public boolean isRetired() { return retired; }
private boolean isProviderProton() {
- for (TreeConfigProducer<?> producer : getChildren().values()) {
+ for (var producer : getChildren().values()) {
if (producer instanceof ProtonProvider) {
return true;
}
@@ -81,7 +82,7 @@ public class StorageNode extends ContentNode implements StorServerConfig.Produce
builder.node_capacity(getCapacity());
- for (TreeConfigProducer<?> producer : getChildren().values()) {
+ for (var producer : getChildren().values()) {
((PersistenceEngine)producer).getConfig(builder);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index 2acf07d954c..137e19e7d86 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -5,6 +5,7 @@ import com.google.common.base.Preconditions;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
@@ -69,7 +70,7 @@ import java.util.logging.Level;
* @author mostly somebody unknown
* @author bratseth
*/
-public class ContentCluster extends TreeConfigProducer<TreeConfigProducer<?>> implements
+public class ContentCluster extends TreeConfigProducer<AnyConfigProducer> implements
DistributionConfig.Producer,
StorDistributionConfig.Producer,
StorDistributormanagerConfig.Producer,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/engines/PersistenceEngine.java b/config-model/src/main/java/com/yahoo/vespa/model/content/engines/PersistenceEngine.java
index 992ce4d906b..9b5050a6b8b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/engines/PersistenceEngine.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/engines/PersistenceEngine.java
@@ -3,15 +3,16 @@ package com.yahoo.vespa.model.content.engines;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.vespa.config.content.core.StorServerConfig;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
import com.yahoo.vespa.model.content.StorageGroup;
import com.yahoo.vespa.model.content.StorageNode;
import com.yahoo.vespa.model.content.cluster.ContentCluster;
-public abstract class PersistenceEngine extends TreeConfigProducer implements StorServerConfig.Producer {
+public abstract class PersistenceEngine extends TreeConfigProducer<AnyConfigProducer> implements StorServerConfig.Producer {
- public PersistenceEngine(TreeConfigProducer parent, String name) {
+ public PersistenceEngine(TreeConfigProducer<? super PersistenceEngine> parent, String name) {
super(parent, name);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java
index 9f155c1e01d..7b269f62902 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java
@@ -9,6 +9,7 @@ import com.yahoo.vespa.config.content.StorFilestorConfig;
import com.yahoo.vespa.config.content.core.StorServerConfig;
import com.yahoo.vespa.config.content.PersistenceConfig;
import com.yahoo.metrics.MetricsmanagerConfig;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.content.cluster.ContentCluster;
@@ -28,9 +29,9 @@ public class StorageCluster extends TreeConfigProducer<StorageNode>
PersistenceConfig.Producer,
MetricsmanagerConfig.Producer
{
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<StorageCluster> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<StorageCluster, AnyConfigProducer> {
@Override
- protected StorageCluster doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected StorageCluster doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
final ModelElement clusterElem = new ModelElement(producerSpec);
final ContentCluster cluster = (ContentCluster)ancestor;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
index b7ae142adcc..708a3f220ac 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.search;
import com.yahoo.config.ConfigInstance;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.search.config.IndexInfoConfig;
@@ -73,7 +74,7 @@ public class IndexedSearchCluster extends SearchCluster
return routingSelector;
}
- public IndexedSearchCluster(TreeConfigProducer<SearchCluster> parent, String clusterName, int index, ModelContext.FeatureFlags featureFlags) {
+ public IndexedSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, int index, ModelContext.FeatureFlags featureFlags) {
super(parent, clusterName, index);
documentDbsConfigProducer = new MultipleDocumentDatabasesConfigProducer(this, documentDbs);
rootDispatch = new DispatchGroup(this);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
index 3e55be8825b..61455fcbf34 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
@@ -9,6 +9,7 @@ import com.yahoo.vespa.config.search.RankProfilesConfig;
import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.search.config.IndexInfoConfig;
import com.yahoo.vespa.configdefinition.IlscriptsConfig;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import java.util.Collections;
@@ -21,7 +22,7 @@ import java.util.Map;
*
* @author arnej27959
*/
-public abstract class SearchCluster extends TreeConfigProducer<SearchCluster>
+public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer>
implements
DocumentdbInfoConfig.Producer,
IndexInfoConfig.Producer,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
index 8df98e1ee6e..c8e01201047 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.search;
import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.metrics.MetricsmanagerConfig;
@@ -69,7 +70,7 @@ public class SearchNode extends AbstractService implements
private final Optional<ResourceLimits> resourceLimits;
private final double fractionOfMemoryReserved;
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<SearchNode> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<SearchNode, AnyConfigProducer> {
private final String name;
private final NodeSpec nodeSpec;
@@ -94,7 +95,7 @@ public class SearchNode extends AbstractService implements
}
@Override
- protected SearchNode doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected SearchNode doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
return SearchNode.create(ancestor, name, contentNode.getDistributionKey(), nodeSpec, clusterName, contentNode,
flushOnShutdown, tuning, resourceLimits, deployState.isHosted(),
fractionOfMemoryReserved, deployState.featureFlags());
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
index 93ade261c14..f03e46cdcee 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.search;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.schema.Schema;
@@ -34,7 +35,7 @@ public class StreamingSearchCluster extends SearchCluster implements
private final String docTypeName;
private DerivedConfiguration derivedConfig = null;
- public StreamingSearchCluster(TreeConfigProducer<SearchCluster> parent,
+ public StreamingSearchCluster(TreeConfigProducer<AnyConfigProducer> parent,
String clusterName,
int index,
String docTypeName,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java b/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java
index 1533120d408..a520f09eef4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.search;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.searchlib.TranslogserverConfig;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.AbstractService;
import com.yahoo.vespa.model.PortAllocBridge;
@@ -24,7 +25,7 @@ public class TransactionLogServer extends AbstractService {
setProp("clustertype", "search");
}
- public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<TransactionLogServer> {
+ public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<TransactionLogServer, AnyConfigProducer> {
private final String clusterName;
private final Boolean useFsync;
@@ -34,7 +35,7 @@ public class TransactionLogServer extends AbstractService {
}
@Override
- protected TransactionLogServer doBuild(DeployState deployState, TreeConfigProducer<?> ancestor, Element producerSpec) {
+ protected TransactionLogServer doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> ancestor, Element producerSpec) {
return new TransactionLogServer(ancestor, clusterName, useFsync);
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/DomTestServiceBuilder.java b/config-model/src/test/java/com/yahoo/vespa/model/test/DomTestServiceBuilder.java
index 71f54216187..ffd880e089a 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/test/DomTestServiceBuilder.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/test/DomTestServiceBuilder.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.test;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import org.w3c.dom.Element;
@@ -12,7 +13,7 @@ import org.w3c.dom.Element;
public class DomTestServiceBuilder {
- static class SimpleServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<SimpleService> {
+ static class SimpleServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<SimpleService, AnyConfigProducer> {
int i;
public SimpleServiceBuilder(int i) {
@@ -20,12 +21,12 @@ public class DomTestServiceBuilder {
}
@Override
- protected SimpleService doBuild(DeployState deployState, TreeConfigProducer parent, Element spec) {
+ protected SimpleService doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
return new SimpleService(parent, "simpleservice." + i);
}
}
- static class ApiServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ApiService> {
+ static class ApiServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ApiService, AnyConfigProducer> {
int i;
public ApiServiceBuilder(int i) {
@@ -33,12 +34,12 @@ public class DomTestServiceBuilder {
}
@Override
- protected ApiService doBuild(DeployState deployState, TreeConfigProducer parent, Element spec) {
+ protected ApiService doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
return new ApiService(parent, "apiservice." + i);
}
}
- static class ParentServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ParentService> {
+ static class ParentServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ParentService, AnyConfigProducer> {
int i;
public ParentServiceBuilder(int i) {
@@ -46,7 +47,7 @@ public class DomTestServiceBuilder {
}
@Override
- protected ParentService doBuild(DeployState deployState, TreeConfigProducer parent, Element spec) {
+ protected ParentService doBuild(DeployState deployState, TreeConfigProducer<AnyConfigProducer> parent, Element spec) {
return new ParentService(parent, "parentservice." + i, spec);
}
}