aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-04-27 22:08:47 +0200
committerGitHub <noreply@github.com>2022-04-27 22:08:47 +0200
commitcd04e0c3a06499971c82678e88510b257d4d6faa (patch)
tree0243a5e675eacf15d466409964e7789058e4a41a
parentf455d83e0556dcc783fdafdc78898cb5dc1ebb6e (diff)
parent24ec516e9fead0b12fa20a9ed282cb57b2c4f817 (diff)
Merge pull request #22323 from vespa-engine/hmusum/validate-file-extension-for-app-files-2v7.579.27
Validate file extension for app files, part 2
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java38
-rw-r--r--config-model-api/abi-spec.json1
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ChainsBuilder.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/ComponentsBuilder.java32
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainBuilderBase.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DomChainsBuilder.java16
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocprocChainsBuilder.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainsBuilder.java16
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java13
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingChainBuilder.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomGenericTargetBuilder.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomProviderBuilder.java11
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilder.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/SearchChainsBuilder.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainsBuilder.java6
21 files changed, 114 insertions, 106 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
index 41896468769..ce33332cf13 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
@@ -89,6 +89,7 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
private static final Logger log = Logger.getLogger(FilesApplicationPackage.class.getName());
private static final String META_FILE_NAME = ".applicationMetaData";
+ private static final Map<Path, Set<String>> validFileExtensions;
private final File appDir;
private final File preprocessedDir;
@@ -750,28 +751,43 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
/* Validates that files in application dir and subdirectories have a known extension */
public void validateFileExtensions(boolean throwIfInvalid) {
- // TODO: Define this for all subdirs
- Map<Path, Set<String>> validFileSuffixes = Map.of(
- QUERY_PROFILES_DIR, Set.of(".xml"),
- RULES_DIR, Set.of(".sr"),
- SCHEMAS_DIR, Set.of(".sd", ".expression"),
- SEARCH_DEFINITIONS_DIR, Set.of(".sd", ".expression"));
-
- validFileSuffixes.forEach((key, value) -> {
+ validFileExtensions.forEach((key, value) -> {
java.nio.file.Path path = appDir.toPath().resolve((key.toFile().toPath()));
File dir = path.toFile();
if ( ! dir.exists() || ! dir.isDirectory()) return;
try (var filesInPath = Files.list(path)) {
- filesInPath.forEach(f -> {
- validateFileSuffix(path, f, value, throwIfInvalid);
- });
+ filesInPath.forEach(f -> validateFileSuffix(path, f, value, throwIfInvalid));
} catch (IOException e) {
log.log(Level.WARNING, "Unable to list files in " + dir, e);
}
});
}
+ static {
+ validFileExtensions = Map.ofEntries(
+ Map.entry(Path.fromString(COMPONENT_DIR), Set.of(".jar")),
+ Map.entry(CONSTANTS_DIR, Set.of(".json", ".json.lz4")),
+ Map.entry(Path.fromString(DOCPROCCHAINS_DIR), Set.of(".xml")),
+ Map.entry(MODELS_DIR, Set.of(".model")),
+ Map.entry(PAGE_TEMPLATES_DIR, Set.of(".xml")),
+ Map.entry(Path.fromString(PROCESSORCHAINS_DIR), Set.of(".xml")),
+ Map.entry(QUERY_PROFILES_DIR, Set.of(".xml")),
+ Map.entry(QUERY_PROFILE_TYPES_DIR, Set.of(".xml")),
+ Map.entry(Path.fromString(ROUTINGTABLES_DIR), Set.of(".xml")),
+ Map.entry(RULES_DIR, Set.of(RULES_NAME_SUFFIX)),
+ // TODO: Might have rank profiles in subdirs: schema-name]/[rank-profile].profile
+ Map.entry(SCHEMAS_DIR, Set.of(SD_NAME_SUFFIX, RANKEXPRESSION_NAME_SUFFIX)),
+ Map.entry(Path.fromString(SEARCHCHAINS_DIR), Set.of(".xml")),
+ // TODO: Might have rank profiles in subdirs: [schema-name]/[rank-profile].profile
+ Map.entry(SEARCH_DEFINITIONS_DIR, Set.of(SD_NAME_SUFFIX, RANKEXPRESSION_NAME_SUFFIX)),
+ Map.entry(SECURITY_DIR, Set.of(".pem")));
+
+ // TODO: Files that according to doc (https://docs.vespa.ai/en/reference/schema-reference.html) can be anywhere in the application package:
+ // constant tensors (.json, .json.lz4)
+ // onnx model files (.onnx)
+ }
+
private void validateFileSuffix(java.nio.file.Path dir, java.nio.file.Path pathToFile, Set<String> allowedSuffixes, boolean throwIfInvalid) {
String fileName = pathToFile.toFile().getName();
if (allowedSuffixes.stream().noneMatch(fileName::endsWith)) {
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index 74c50e948a4..6e02b88e22e 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -145,6 +145,7 @@
"public static final com.yahoo.path.Path MODELS_DIR",
"public static final com.yahoo.path.Path MODELS_GENERATED_DIR",
"public static final com.yahoo.path.Path MODELS_GENERATED_REPLICATED_DIR",
+ "public static final com.yahoo.path.Path CONSTANTS_DIR",
"public static final java.lang.String CONFIG_DEFINITIONS_DIR",
"public static final com.yahoo.path.Path QUERY_PROFILES_DIR",
"public static final com.yahoo.path.Path QUERY_PROFILE_TYPES_DIR",
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
index c40ce1ebeb1..18d40025af7 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
@@ -48,6 +48,8 @@ public interface ApplicationPackage {
Path MODELS_GENERATED_DIR = Path.fromString("models.generated");
/** Files generated from machine-learned models which should be replicated in ZooKeeper */
Path MODELS_GENERATED_REPLICATED_DIR = MODELS_GENERATED_DIR.append("replicated");
+ /** Constant tensors */
+ Path CONSTANTS_DIR = Path.fromString("constants");
// NOTE: this directory is created in serverdb during deploy, and should not exist in the original user application
/** Do not use */
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 5891347f6b4..c48968333ac 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
@@ -24,8 +24,8 @@ 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, AbstractConfigProducer ancestor, List<Element> chainsElems,
- Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName,
+ public ChainsBuilder(DeployState deployState, AbstractConfigProducer<?> ancestor, List<Element> chainsElems,
+ Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName,
Map<String, Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>>> chainType2BuilderClass) {
this.chainType2BuilderClass = chainType2BuilderClass;
@@ -36,8 +36,8 @@ public class ChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends
return Collections.unmodifiableCollection(chains);
}
- private void readChains(DeployState deployState, AbstractConfigProducer ancestor, List<Element> chainsElems,
- Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ private void readChains(DeployState deployState, AbstractConfigProducer<?> ancestor, List<Element> chainsElems,
+ Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
for (Map.Entry<String, Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>>>
chainType : chainType2BuilderClass.entrySet()) {
@@ -49,9 +49,9 @@ public class ChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends
}
}
- private void readChain(DeployState deployState, AbstractConfigProducer ancestor, Element chainElem,
+ private void readChain(DeployState deployState, AbstractConfigProducer<?> ancestor, Element chainElem,
Class<? extends DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN>> builderClass,
- Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
DomChainBuilderBase<? extends COMPONENT, ? extends CHAIN> builder =
DomBuilderCreator.create(builderClass, 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 0d54b7b49f3..931b6807586 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
@@ -38,7 +38,7 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
// NOTE: the 'name' string must match the xml tag name for the component in services.
public static class ComponentType<T extends ChainedComponent<?>> {
- static List<ComponentType> values = new ArrayList<>();
+ static List<ComponentType<?>> values = new ArrayList<>();
public static final ComponentType<DocumentProcessor> documentprocessor = new ComponentType<>("documentprocessor", DomDocumentProcessorBuilder.class);
public static final ComponentType<Searcher<?>> searcher = new ComponentType<>("searcher", DomSearcherBuilder.class);
public static final ComponentType<Processor> processor = new ComponentType<>("processor", DomProcessorBuilder.class);
@@ -63,7 +63,7 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
private final Set<ComponentSpecification> outerComponentReferences = new LinkedHashSet<>();
private final List<T> componentDefinitions = new ArrayList<>();
- private final Map<String, ComponentType> componentTypesByComponentName = new LinkedHashMap<>();
+ private final Map<String, ComponentType<?>> componentTypesByComponentName = new LinkedHashMap<>();
/**
* @param ancestor The parent config producer
@@ -73,18 +73,18 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
* every component is a definition, not a reference.
*/
ComponentsBuilder(DeployState deployState,
- AbstractConfigProducer ancestor,
+ AbstractConfigProducer<?> ancestor,
Collection<ComponentType<T>> componentTypes,
List<Element> elementsContainingComponentElems,
- Map<String, ComponentType> outerComponentTypeByComponentName) {
+ Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
readComponents(deployState, ancestor, componentTypes, elementsContainingComponentElems, unmodifiable(outerComponentTypeByComponentName));
}
- private void readComponents(DeployState deployState, AbstractConfigProducer ancestor,
+ private void readComponents(DeployState deployState, AbstractConfigProducer<?> ancestor,
Collection<ComponentType<T>> componentTypes,
List<Element> elementsContainingComponentElems,
- Map<String, ComponentType> outerComponentTypeByComponentName) {
+ Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
for (ComponentType<T> componentType : componentTypes) {
for (Element elemContainingComponentElems : elementsContainingComponentElems) {
@@ -95,10 +95,10 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
}
}
- private void readComponent(DeployState deployState, AbstractConfigProducer ancestor,
+ private void readComponent(DeployState deployState, AbstractConfigProducer<?> ancestor,
Element componentElement,
ComponentType<T> componentType,
- Map<String, ComponentType> outerComponentTypeByComponentName) {
+ Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
ComponentSpecification componentSpecification = XmlHelper.getIdRef(componentElement);
@@ -109,9 +109,9 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
}
}
- private void readComponentReference(Element componentElement, ComponentType componentType,
+ private void readComponentReference(Element componentElement, ComponentType<?> componentType,
ComponentSpecification componentSpecification,
- Map<String, ComponentType> outerComponentTypeByComponentName) {
+ Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
String componentName = componentSpecification.getName();
ensureTypesMatch(componentType, outerComponentTypeByComponentName.get(componentName), componentName);
@@ -119,14 +119,14 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
outerComponentReferences.add(componentSpecification);
}
- private void readComponentDefinition(DeployState deployState, AbstractConfigProducer ancestor, Element componentElement, ComponentType<T> componentType) {
+ private void readComponentDefinition(DeployState deployState, AbstractConfigProducer<?> ancestor, Element componentElement, ComponentType<T> componentType) {
T component = componentType.createBuilder().build(deployState, ancestor, componentElement);
componentDefinitions.add(component);
updateComponentTypes(component.getComponentId(), componentType);
}
- private void updateComponentTypes(ComponentId componentId, ComponentType componentType) {
- ComponentType oldType = componentTypesByComponentName.put(componentId.getName(), componentType);
+ private void updateComponentTypes(ComponentId componentId, ComponentType<?> componentType) {
+ ComponentType<?> oldType = componentTypesByComponentName.put(componentId.getName(), componentType);
if (oldType != null) {
ensureTypesMatch(componentType, oldType, componentId.getName());
}
@@ -139,14 +139,14 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
" so no additional attributes or nested elements are allowed");
}
- private void ensureTypesMatch(ComponentType type1, ComponentType type2, String componentName) {
+ private void ensureTypesMatch(ComponentType<?> type1, ComponentType<?> type2, String componentName) {
if (!type1.equals(type2)) {
throw new IllegalArgumentException("Two different types declared for the component with name '" + componentName +
"' (" + type1.name + " != " + type2.name + ").");
}
}
- private Map<String, ComponentType> unmodifiable(Map<String, ComponentType> outerComponentTypeByComponentName) {
+ private Map<String, ComponentType<?>> unmodifiable(Map<String, ComponentType<?>> outerComponentTypeByComponentName) {
return (outerComponentTypeByComponentName != null)?
Collections.unmodifiableMap(outerComponentTypeByComponentName):
Collections.emptyMap();
@@ -156,7 +156,7 @@ public class ComponentsBuilder<T extends ChainedComponent<?>> {
return Collections.unmodifiableCollection(componentDefinitions);
}
- public Map<String, ComponentType> getComponentTypeByComponentName() {
+ public Map<String, ComponentType<?>> getComponentTypeByComponentName() {
return Collections.unmodifiableMap(componentTypesByComponentName);
}
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 349a89afa0c..a6c9cca29e7 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
@@ -8,9 +8,8 @@ import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.container.component.chain.Chain;
import com.yahoo.vespa.model.container.component.chain.ChainedComponent;
import org.w3c.dom.Element;
-
-import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
/**
@@ -20,18 +19,18 @@ import java.util.Map;
public abstract class DomChainBuilderBase<COMPONENT extends ChainedComponent<?>, CHAIN extends Chain<COMPONENT>>
extends VespaDomBuilder.DomConfigProducerBuilder<CHAIN> {
- private Collection<ComponentsBuilder.ComponentType<COMPONENT>> allowedComponentTypes;
- protected final Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName;
+ private final Collection<ComponentsBuilder.ComponentType<COMPONENT>> allowedComponentTypes;
+ protected final Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName;
public DomChainBuilderBase(Collection<ComponentsBuilder.ComponentType<COMPONENT>> allowedComponentTypes,
- Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName) {
+ Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName) {
this.allowedComponentTypes = allowedComponentTypes;
this.outerComponentTypeByComponentName = outerComponentTypeByComponentName;
}
- public final CHAIN doBuild(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec) {
+ public final CHAIN doBuild(DeployState deployState, AbstractConfigProducer<?> ancestor, Element producerSpec) {
ComponentsBuilder<COMPONENT> componentsBuilder =
- new ComponentsBuilder<>(deployState, ancestor, allowedComponentTypes, Arrays.asList(producerSpec), outerComponentTypeByComponentName);
+ new ComponentsBuilder<>(deployState, ancestor, allowedComponentTypes, List.of(producerSpec), outerComponentTypeByComponentName);
ChainSpecification specWithoutInnerComponents =
new ChainSpecificationBuilder(producerSpec).build(componentsBuilder.getOuterComponentReferences());
@@ -47,6 +46,6 @@ public abstract class DomChainBuilderBase<COMPONENT extends ChainedComponent<?>,
}
}
- protected abstract CHAIN buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec,
+ protected abstract CHAIN buildChain(DeployState deployState, AbstractConfigProducer<?> 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 a5e09d206bf..2bc7e8f2658 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
@@ -38,13 +38,13 @@ class DomChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends Chai
this.appPkgChainsDir = appPkgChainsDir;
}
- protected abstract CHAINS newChainsInstance(AbstractConfigProducer parent);
+ protected abstract CHAINS newChainsInstance(AbstractConfigProducer<?> parent);
@Override
- protected final CHAINS doBuild(DeployState deployState, AbstractConfigProducer parent, Element chainsElement) {
+ protected final CHAINS doBuild(DeployState deployState, AbstractConfigProducer<?> parent, Element chainsElement) {
CHAINS chains = newChainsInstance(parent);
- List<Element> allChainElements = allChainElements(deployState, parent, chainsElement);
+ List<Element> allChainElements = allChainElements(deployState, chainsElement);
if (! allChainElements.isEmpty()) {
ComponentsBuilder<COMPONENT> outerComponentsBuilder = readOuterComponents(deployState, chains, allChainElements);
ChainsBuilder<COMPONENT, CHAIN> chainsBuilder = readChains(deployState, chains, allChainElements,
@@ -56,7 +56,7 @@ class DomChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends Chai
return chains;
}
- private List<Element> allChainElements(DeployState deployState, AbstractConfigProducer ancestor, Element chainsElement) {
+ private List<Element> allChainElements(DeployState deployState, Element chainsElement) {
List<Element> chainsElements = new ArrayList<>();
if (outerChainsElem != null)
chainsElements.add(outerChainsElem);
@@ -68,18 +68,18 @@ class DomChainsBuilder<COMPONENT extends ChainedComponent<?>, CHAIN extends Chai
return chainsElements;
}
- private ComponentsBuilder<COMPONENT> readOuterComponents(DeployState deployState, AbstractConfigProducer ancestor, List<Element> chainsElems) {
+ private ComponentsBuilder<COMPONENT> readOuterComponents(DeployState deployState, AbstractConfigProducer<?> ancestor, List<Element> chainsElems) {
return new ComponentsBuilder<>(deployState, ancestor, allowedComponentTypes, chainsElems, null);
}
protected abstract
- ChainsBuilder<COMPONENT, CHAIN> readChains(DeployState deployState, AbstractConfigProducer ancestor, List<Element> allChainsElems,
- Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName);
+ ChainsBuilder<COMPONENT, CHAIN> readChains(DeployState deployState, AbstractConfigProducer<?> ancestor, List<Element> allChainsElems,
+ Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName);
private void addOuterComponents(CHAINS chains, ComponentsBuilder<COMPONENT> outerComponentsBuilder) {
assert (outerComponentsBuilder.getOuterComponentReferences().isEmpty());
- for (ChainedComponent outerComponent : outerComponentsBuilder.getComponentDefinitions()) {
+ for (ChainedComponent<?> outerComponent : outerComponentsBuilder.getComponentDefinitions()) {
chains.add(outerComponent);
}
}
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 7d2a5a46bc4..17441b2d7cd 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
@@ -24,13 +24,13 @@ public class DocprocChainsBuilder extends ChainsBuilder<DocumentProcessor, Docpr
private static final Map<String, Class<? extends DomChainBuilderBase<? extends DocumentProcessor, ? extends DocprocChain>>>
chainType2builderClass = Collections.unmodifiableMap(
- new LinkedHashMap<String, Class<? extends DomChainBuilderBase<? extends DocumentProcessor, ? extends DocprocChain>>>() {{
+ new LinkedHashMap<>() {{
put("docprocchain", DomDocprocChainBuilder.class);
put("chain", DomDocprocChainBuilder.class);
}});
- public DocprocChainsBuilder(DeployState deployState, AbstractConfigProducer ancestor, List<Element> docprocChainsElements,
- Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ public DocprocChainsBuilder(DeployState deployState, AbstractConfigProducer<?> 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 299d8172f6c..d4393b2cd9e 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
@@ -10,8 +10,7 @@ import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase;
import com.yahoo.vespa.model.container.docproc.DocprocChain;
import com.yahoo.vespa.model.container.docproc.DocumentProcessor;
import org.w3c.dom.Element;
-
-import java.util.Arrays;
+import java.util.List;
import java.util.Map;
/**
@@ -21,12 +20,12 @@ import java.util.Map;
*/
public class DomDocprocChainBuilder extends DomChainBuilderBase<DocumentProcessor, DocprocChain> {
- public DomDocprocChainBuilder(Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName) {
- super(Arrays.asList(ComponentsBuilder.ComponentType.documentprocessor), outerComponentTypeByComponentName);
+ public DomDocprocChainBuilder(Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName) {
+ super(List.of(ComponentsBuilder.ComponentType.documentprocessor), outerComponentTypeByComponentName);
}
@Override
- protected DocprocChain buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec,
+ protected DocprocChain buildChain(DeployState deployState, AbstractConfigProducer<?> 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 dfb849b2e0f..ae22a6971bb 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
@@ -1,17 +1,15 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.builder.xml.dom.chains.docproc;
+import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
-import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder.ComponentType;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainsBuilder;
-import com.yahoo.vespa.model.container.docproc.DocprocChains;
import com.yahoo.vespa.model.container.docproc.DocprocChain;
+import com.yahoo.vespa.model.container.docproc.DocprocChains;
import com.yahoo.vespa.model.container.docproc.DocumentProcessor;
import org.w3c.dom.Element;
-
-import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -22,18 +20,18 @@ import java.util.Map;
*/
public class DomDocprocChainsBuilder extends DomChainsBuilder<DocumentProcessor, DocprocChain, DocprocChains> {
public DomDocprocChainsBuilder(Element outerChainsElem, boolean supportDocprocChainsDir) {
- super(outerChainsElem, Arrays.asList(ComponentType.documentprocessor),
- supportDocprocChainsDir ? ApplicationPackage.DOCPROCCHAINS_DIR: null);
+ super(outerChainsElem, List.of(ComponentType.documentprocessor),
+ supportDocprocChainsDir ? ApplicationPackage.DOCPROCCHAINS_DIR: null);
}
@Override
- protected DocprocChains newChainsInstance(AbstractConfigProducer parent) {
+ protected DocprocChains newChainsInstance(AbstractConfigProducer<?> parent) {
return new DocprocChains(parent, "docprocchains");
}
@Override
- protected DocprocChainsBuilder readChains(DeployState deployState, AbstractConfigProducer ancestor, List<Element> docprocChainsElements,
- Map<String, ComponentType> outerComponentTypeByComponentName) {
+ protected DocprocChainsBuilder readChains(DeployState deployState, AbstractConfigProducer<?> 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/processing/DomProcessingBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/DomProcessingBuilder.java
index 059cd157322..d29643c78e2 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
@@ -1,17 +1,15 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.builder.xml.dom.chains.processing;
+import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
-import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainsBuilder;
import com.yahoo.vespa.model.container.processing.ProcessingChain;
import com.yahoo.vespa.model.container.processing.ProcessingChains;
import com.yahoo.vespa.model.container.processing.Processor;
import org.w3c.dom.Element;
-
-import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -19,22 +17,21 @@ import java.util.Map;
* Root builder of the processing model
*
* @author bratseth
- * @since 5.1.6
*/
public class DomProcessingBuilder extends DomChainsBuilder<Processor, ProcessingChain, ProcessingChains> {
public DomProcessingBuilder(Element outerChainsElem) {
- super(outerChainsElem, Arrays.asList(ComponentsBuilder.ComponentType.processor), ApplicationPackage.PROCESSORCHAINS_DIR);
+ super(outerChainsElem, List.of(ComponentsBuilder.ComponentType.processor), ApplicationPackage.PROCESSORCHAINS_DIR);
}
@Override
- protected ProcessingChains newChainsInstance(AbstractConfigProducer parent) {
+ protected ProcessingChains newChainsInstance(AbstractConfigProducer<?> parent) {
return new ProcessingChains(parent, "processing");
}
@Override
- protected ProcessingChainsBuilder readChains(DeployState deployState, AbstractConfigProducer ancestor, List<Element> processingChainsElements,
- Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName) {
+ protected ProcessingChainsBuilder readChains(DeployState deployState, AbstractConfigProducer<?> 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 4f4845a06b1..fa6fff9dee3 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
@@ -9,21 +9,19 @@ import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase;
import com.yahoo.vespa.model.container.processing.ProcessingChain;
import com.yahoo.vespa.model.container.processing.Processor;
import org.w3c.dom.Element;
-
-import java.util.Arrays;
+import java.util.List;
import java.util.Map;
/**
* @author bratseth
- * @since 5.1.6
*/
public class DomProcessingChainBuilder extends DomChainBuilderBase<Processor, ProcessingChain> {
- public DomProcessingChainBuilder(Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName) {
- super(Arrays.asList(ComponentsBuilder.ComponentType.processor), outerComponentTypeByComponentName);
+ public DomProcessingChainBuilder(Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName) {
+ super(List.of(ComponentsBuilder.ComponentType.processor), outerComponentTypeByComponentName);
}
- protected ProcessingChain buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec,
+ protected ProcessingChain buildChain(DeployState deployState, AbstractConfigProducer<?> 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/ProcessingChainsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/processing/ProcessingChainsBuilder.java
index c33807b0741..f29b46cc327 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
@@ -20,7 +20,6 @@ import java.util.Map;
* Creates all processing chains from xml.
*
* @author bratseth
- * @since 5.1.6
*/
public class ProcessingChainsBuilder extends ChainsBuilder<Processor, ProcessingChain> {
@@ -30,8 +29,8 @@ public class ProcessingChainsBuilder extends ChainsBuilder<Processor, Processing
put("chain", DomProcessingChainBuilder.class);
}});
- public ProcessingChainsBuilder(DeployState deployState, AbstractConfigProducer ancestor, List<Element> processingChainsElements,
- Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ public ProcessingChainsBuilder(DeployState deployState, AbstractConfigProducer<?> 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/DomGenericTargetBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomGenericTargetBuilder.java
index a220d08cf15..fd0c14db3c5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomGenericTargetBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomGenericTargetBuilder.java
@@ -19,7 +19,7 @@ import java.util.Map;
*/
abstract public class DomGenericTargetBuilder<T extends GenericTarget> extends DomChainBuilderBase<Searcher<?>, T> {
- DomGenericTargetBuilder(Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ DomGenericTargetBuilder(Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(Arrays.asList(ComponentsBuilder.ComponentType.searcher, ComponentsBuilder.ComponentType.federation),
outerSearcherTypeByComponentName);
}
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 19c5c489f7e..b15c461f72f 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
@@ -1,22 +1,19 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.builder.xml.dom.chains.search;
-import com.yahoo.binaryprefix.BinaryPrefix;
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.AbstractConfigProducer;
import com.yahoo.search.searchchain.model.federation.FederationOptions;
import com.yahoo.search.searchchain.model.federation.LocalProviderSpec;
import com.yahoo.text.XML;
-import com.yahoo.config.model.producer.AbstractConfigProducer;
-import com.yahoo.vespa.model.builder.xml.dom.BinaryScaledAmountParser;
import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder;
import com.yahoo.vespa.model.container.search.searchchain.GenericProvider;
import com.yahoo.vespa.model.container.search.searchchain.LocalProvider;
import com.yahoo.vespa.model.container.search.searchchain.Provider;
import com.yahoo.vespa.model.container.search.searchchain.Source;
import org.w3c.dom.Element;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -123,12 +120,12 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> {
}
}
- public DomProviderBuilder(Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ public DomProviderBuilder(Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(outerSearcherTypeByComponentName);
}
@Override
- protected Provider buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element providerElement,
+ protected Provider buildChain(DeployState deployState, AbstractConfigProducer<?> ancestor, Element providerElement,
ChainSpecification specWithoutInnerComponents) {
ProviderReader providerReader = new ProviderReader(providerElement);
@@ -143,7 +140,7 @@ public class DomProviderBuilder extends DomGenericTargetBuilder<Provider> {
}
- private Collection<Source> buildSources(DeployState deployState, AbstractConfigProducer ancestor, Element providerElement) {
+ private Collection<Source> buildSources(DeployState deployState, AbstractConfigProducer<?> 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 387bd916579..d4b65f85f3d 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
@@ -19,13 +19,14 @@ import java.util.Map;
*/
public class DomSearchChainBuilder extends DomChainBuilderBase<Searcher<?>, SearchChain> {
- public DomSearchChainBuilder(Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ public DomSearchChainBuilder(Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(Arrays.asList(ComponentsBuilder.ComponentType.searcher, ComponentsBuilder.ComponentType.federation),
outerSearcherTypeByComponentName);
}
- protected SearchChain buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec,
+ protected SearchChain buildChain(DeployState deployState, AbstractConfigProducer<?> 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 b153ca68590..d4bd93f67c7 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
@@ -33,13 +33,13 @@ public class DomSearchChainsBuilder extends DomChainsBuilder<Searcher<?>, Search
}
@Override
- protected SearchChains newChainsInstance(AbstractConfigProducer parent) {
+ protected SearchChains newChainsInstance(AbstractConfigProducer<?> parent) {
return new SearchChains(parent, "searchchains");
}
@Override
- protected SearchChainsBuilder readChains(DeployState deployState, AbstractConfigProducer ancestor, List<Element> searchChainsElements,
- Map<String, ComponentType> outerComponentTypeByComponentName) {
+ protected SearchChainsBuilder readChains(DeployState deployState, AbstractConfigProducer<?> 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/DomSourceBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSourceBuilder.java
index 5d6bde5f0f8..a567e09fa7d 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
@@ -16,11 +16,11 @@ import java.util.Map;
* @author Tony Vaagenes
*/
public class DomSourceBuilder extends DomGenericTargetBuilder<Source> {
- DomSourceBuilder(Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ DomSourceBuilder(Map<String, ComponentsBuilder.ComponentType<?>> outerSearcherTypeByComponentName) {
super(outerSearcherTypeByComponentName);
}
- protected Source buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
+ protected Source buildChain(DeployState deployState, AbstractConfigProducer<?> ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
Source.GroupOption groupOption =
XmlHelper.isReference(producerSpec) ?
Source.GroupOption.participant :
@@ -28,4 +28,5 @@ public class DomSourceBuilder extends DomGenericTargetBuilder<Source> {
return new Source(specWithoutInnerComponents, readFederationOptions(producerSpec), groupOption);
}
+
}
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 298420e3a68..e13e741dd5d 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
@@ -31,8 +31,8 @@ public class SearchChainsBuilder extends ChainsBuilder<Searcher<?>, SearchChain>
put("provider", DomProviderBuilder.class);
}});
- public SearchChainsBuilder(DeployState deployState, AbstractConfigProducer ancestor, List<Element> searchChainsElements,
- Map<String, ComponentsBuilder.ComponentType> outerSearcherTypeByComponentName) {
+ public SearchChainsBuilder(DeployState deployState, AbstractConfigProducer<?> 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/http/xml/FilterChainBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/FilterChainBuilder.java
index 334b41d5e8e..293480e6c7f 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
@@ -19,15 +19,15 @@ import static com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder.Com
* @author Tony Vaagenes
*/
public class FilterChainBuilder extends DomChainBuilderBase<Filter, Chain<Filter>> {
- private static Collection<ComponentType<Filter>> allowedComponentTypes = Collections.singleton(ComponentType.filter);
+ private static final Collection<ComponentType<Filter>> allowedComponentTypes = Collections.singleton(ComponentType.filter);
- public FilterChainBuilder(Map<String, ComponentType> outerFilterTypeByComponentName) {
+ public FilterChainBuilder(Map<String, ComponentType<?>> outerFilterTypeByComponentName) {
super(allowedComponentTypes, outerFilterTypeByComponentName);
}
@Override
- protected Chain<Filter> buildChain(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
+ protected Chain<Filter> buildChain(DeployState deployState, AbstractConfigProducer<?> ancestor, Element producerSpec, ChainSpecification specWithoutInnerComponents) {
return new Chain<>(specWithoutInnerComponents);
}
}
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 e85e853f989..c75d8225843 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
@@ -35,15 +35,15 @@ public class FilterChainsBuilder extends DomChainsBuilder<Filter, Chain<Filter>,
}
@Override
- protected FilterChains newChainsInstance(AbstractConfigProducer parent) {
+ protected FilterChains newChainsInstance(AbstractConfigProducer<?> parent) {
return new FilterChains(parent);
}
@Override
protected ChainsBuilder<Filter, Chain<Filter>> readChains(
DeployState deployState,
- AbstractConfigProducer ancestor,
- List<Element> allChainsElems, Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName) {
+ AbstractConfigProducer<?> ancestor,
+ List<Element> allChainsElems, Map<String, ComponentsBuilder.ComponentType<?>> outerComponentTypeByComponentName) {
return new ChainsBuilder<>(deployState, ancestor, allChainsElems, outerComponentTypeByComponentName, chainType2BuilderClass);
}