diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-02-03 12:29:00 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-02-03 12:29:00 +0100 |
commit | e67031fd521c68ca66fdf897f8c6b0fd5a395f45 (patch) | |
tree | ee844554e6fa77684f3fd1ba813007ab2f862bf7 /config-model | |
parent | b8438c19dd4bfd19ab5db7abd5af053cc1d7cc4b (diff) | |
parent | f21a45f3217015a6da8a0281441ba33688fc832e (diff) |
Merge branch 'master' into bratseth/deterministic-order-take-2
Diffstat (limited to 'config-model')
61 files changed, 228 insertions, 225 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/graph/ModelNode.java b/config-model/src/main/java/com/yahoo/config/model/graph/ModelNode.java index bbff0c26614..e22897903db 100644 --- a/config-model/src/main/java/com/yahoo/config/model/graph/ModelNode.java +++ b/config-model/src/main/java/com/yahoo/config/model/graph/ModelNode.java @@ -14,7 +14,7 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -33,7 +33,7 @@ public class ModelNode<MODEL extends ConfigModel> implements ConfigModelInstance final Class<MODEL> clazz; final Constructor<MODEL> constructor; final List<MODEL> instances = new ArrayList<>(); - private final Map<ComponentId, ModelNode> dependencies = new LinkedHashMap<>(); + private final Map<ComponentId, ModelNode> dependencies = new HashMap<>(); public ModelNode(ConfigModelBuilder<MODEL> builder) { this.id = builder.getId(); diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java index f12b7697ef1..8bf6dc7f1d9 100644 --- a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java +++ b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java @@ -17,7 +17,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Comparator; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.ListIterator; @@ -56,7 +56,7 @@ public class InMemoryProvisioner implements HostProvisioner { private final Map<ClusterSpec, List<HostSpec>> allocations = new LinkedHashMap<>(); /** Indexes must be unique across all groups in a cluster */ - private final Map<Pair<ClusterSpec.Type, ClusterSpec.Id>, Integer> nextIndexInCluster = new LinkedHashMap<>(); + private final Map<Pair<ClusterSpec.Type, ClusterSpec.Id>, Integer> nextIndexInCluster = new HashMap<>(); /** Use this index as start index for all clusters */ private final int startIndexForClusters; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java index 6e1f428ee49..8b068381e07 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java @@ -30,16 +30,15 @@ import java.util.AbstractMap; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; - -import static java.util.Collections.emptySet; -import static java.util.stream.Collectors.toSet; +import java.util.stream.Collectors; /** * @author baldersheim @@ -369,8 +368,8 @@ public class DocumentModelBuilder { } private NewDocumentType convert(SDDocumentType sdoc) { - Map<AnnotationType, String> annotationInheritance = new LinkedHashMap<>(); - Map<StructDataType, String> structInheritance = new LinkedHashMap<>(); + Map<AnnotationType, String> annotationInheritance = new HashMap<>(); + Map<StructDataType, String> structInheritance = new HashMap<>(); NewDocumentType dt = new NewDocumentType(new NewDocumentType.Name(sdoc.getName()), sdoc.getDocumentType().contentStruct(), sdoc.getFieldSets(), @@ -439,17 +438,17 @@ public class DocumentModelBuilder { private static Set<NewDocumentType.Name> convertDocumentReferencesToNames(Optional<DocumentReferences> documentReferences) { if (!documentReferences.isPresent()) { - return emptySet(); + return Set.of(); } return documentReferences.get().referenceMap().values().stream() .map(documentReference -> documentReference.targetSearch().getDocument()) .map(documentType -> new NewDocumentType.Name(documentType.getName())) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); } private static Set<String> convertTemporaryImportedFieldsToNames(TemporaryImportedFields importedFields) { if (importedFields == null) { - return emptySet(); + return Set.of(); } return Collections.unmodifiableSet(importedFields.fields().keySet()); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java b/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java index 2b60543f70d..fef7ff56763 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java @@ -19,7 +19,7 @@ import com.yahoo.tensor.evaluation.TypeContext; import java.util.ArrayDeque; import java.util.Collections; import java.util.Deque; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -41,9 +41,9 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement private final Optional<MapEvaluationTypeContext> parent; - private final Map<Reference, TensorType> featureTypes = new LinkedHashMap<>(); + private final Map<Reference, TensorType> featureTypes = new HashMap<>(); - private final Map<Reference, TensorType> resolvedTypes = new LinkedHashMap<>(); + private final Map<Reference, TensorType> resolvedTypes = new HashMap<>(); /** To avoid re-resolving diamond-shaped dependencies */ private final Map<Reference, TensorType> globallyResolvedTypes; @@ -61,7 +61,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement this.currentResolutionCallStack = new ArrayDeque<>(); this.queryFeaturesNotDeclared = new TreeSet<>(); tensorsAreUsed = false; - globallyResolvedTypes = new LinkedHashMap<>(); + globallyResolvedTypes = new HashMap<>(); } private MapEvaluationTypeContext(Map<String, ExpressionFunction> functions, @@ -325,7 +325,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement /** Binds the given list of formal arguments to their actual values */ private Map<String, String> bind(List<String> formalArguments, Arguments invocationArguments) { - Map<String, String> bindings = new LinkedHashMap<>(formalArguments.size()); + Map<String, String> bindings = new HashMap<>(formalArguments.size()); for (int i = 0; i < formalArguments.size(); i++) { String identifier = invocationArguments.expressions().get(i).toString(); bindings.put(formalArguments.get(i), identifier); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModel.java b/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModel.java index 254b58ee991..4b849af9662 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModel.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModel.java @@ -5,7 +5,7 @@ import com.yahoo.tensor.TensorType; import com.yahoo.vespa.model.ml.OnnxModelInfo; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -18,8 +18,8 @@ import java.util.Optional; public class OnnxModel extends DistributableResource { private OnnxModelInfo modelInfo = null; - private final Map<String, String> inputMap = new LinkedHashMap<>(); - private final Map<String, String> outputMap = new LinkedHashMap<>(); + private final Map<String, String> inputMap = new HashMap<>(); + private final Map<String, String> outputMap = new HashMap<>(); private String statelessExecutionMode = null; private Integer statelessInterOpThreads = null; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java b/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java index 7aad92ba01a..c9c12100552 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.FileRegistry; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -20,7 +20,7 @@ public class OnnxModels { /** The schema this belongs to, or empty if it is global */ private final Optional<Schema> owner; - private final Map<String, OnnxModel> models = new LinkedHashMap<>(); + private final Map<String, OnnxModel> models = new HashMap<>(); public OnnxModels(FileRegistry fileRegistry, Optional<Schema> owner) { this.fileRegistry = fileRegistry; @@ -59,7 +59,7 @@ public class OnnxModels { if (owner.isEmpty() || owner.get().inherited().isEmpty()) return Collections.unmodifiableMap(models); if (models.isEmpty()) return owner.get().inherited().get().onnxModels().asMap(); - var allModels = new LinkedHashMap<>(owner.get().inherited().get().onnxModels().asMap()); + var allModels = new HashMap<>(owner.get().inherited().get().onnxModels().asMap()); allModels.putAll(models); return Collections.unmodifiableMap(allModels); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java index 495f5473442..5b842b002bd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java @@ -32,7 +32,7 @@ import java.io.Serializable; import java.io.StringReader; import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; @@ -121,7 +121,7 @@ public class RankProfile implements Cloneable { private final RankProfileRegistry rankProfileRegistry; /** Constants in ranking expressions */ - private Map<String, Value> constants = new LinkedHashMap<>(); + private Map<String, Value> constants = new HashMap<>(); private final TypeSettings attributeTypes = new TypeSettings(); @@ -396,9 +396,9 @@ public class RankProfile implements Cloneable { /** Returns an unmodifiable view of the constants available in this */ public Map<String, Value> getConstants() { - if (inherited().isEmpty()) return new LinkedHashMap<>(constants); + if (inherited().isEmpty()) return new HashMap<>(constants); - Map<String, Value> allConstants = new LinkedHashMap<>(); + Map<String, Value> allConstants = new HashMap<>(); for (var inheritedProfile : inherited()) { for (var constant : inheritedProfile.getConstants().entrySet()) { if (allConstants.containsKey(constant.getKey())) @@ -873,7 +873,7 @@ public class RankProfile implements Cloneable { clone.functions = new LinkedHashMap<>(this.functions); clone.allFunctionsCached = null; clone.filterFields = new HashSet<>(this.filterFields); - clone.constants = new LinkedHashMap<>(this.constants); + clone.constants = new HashMap<>(this.constants); return clone; } catch (CloneNotSupportedException e) { @@ -989,7 +989,7 @@ public class RankProfile implements Cloneable { public MapEvaluationTypeContext typeContext() { return typeContext(new QueryProfileRegistry()); } private Map<Reference, TensorType> collectFeatureTypes() { - Map<Reference, TensorType> featureTypes = new LinkedHashMap<>(); + Map<Reference, TensorType> featureTypes = new HashMap<>(); // Add input features inputFeatures.forEach((k, v) -> featureTypes.put(k, v)); // Add attributes @@ -1042,7 +1042,7 @@ public class RankProfile implements Cloneable { } private Map<String, TensorType> resolveOnnxInputTypes(OnnxModel model, MapEvaluationTypeContext context) { - Map<String, TensorType> inputTypes = new LinkedHashMap<>(); + Map<String, TensorType> inputTypes = new HashMap<>(); for (String onnxInputName : model.getInputMap().keySet()) { resolveOnnxInputType(onnxInputName, model, context).ifPresent(type -> inputTypes.put(onnxInputName, type)); } @@ -1320,7 +1320,7 @@ public class RankProfile implements Cloneable { public static class TypeSettings { - private final Map<String, String> types = new LinkedHashMap<>(); + private final Map<String, String> types = new HashMap<>(); void addType(String name, String type) { types.put(name, type); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java index 277b1d16207..5020e9a061c 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.FileRegistry; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -70,7 +70,7 @@ public class RankingConstants { if (owner.isEmpty() || owner.get().inherited().isEmpty()) return Collections.unmodifiableMap(constants); if (constants.isEmpty()) return owner.get().inherited().get().rankingConstants().asMap(); - var allConstants = new LinkedHashMap<>(owner.get().inherited().get().rankingConstants().asMap()); + var allConstants = new HashMap<>(owner.get().inherited().get().rankingConstants().asMap()); allConstants.putAll(constants); return Collections.unmodifiableMap(allConstants); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java index 15a6db8304b..8703eb11433 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java @@ -23,7 +23,7 @@ import java.util.*; public class SearchOrderer { /** A map from DataTypeName to the Search defining them */ - private final Map<DataTypeName, Schema> documentNameToSearch = new LinkedHashMap<>(); + private final Map<DataTypeName, Schema> documentNameToSearch = new HashMap<>(); /** * Reorders the given list of search definitions such that any supertype diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java index d0029f72064..e627f06ad42 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java @@ -18,7 +18,7 @@ import com.yahoo.searchdefinition.Schema; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -37,8 +37,8 @@ import java.util.Set; public class SDDocumentType implements Cloneable, Serializable { public static final SDDocumentType VESPA_DOCUMENT; - private final Map<DataTypeName, SDDocumentType> inheritedTypes = new LinkedHashMap<>(); - private final Map<NewDocumentType.Name, SDDocumentType> ownedTypes = new LinkedHashMap<>(); + private final Map<DataTypeName, SDDocumentType> inheritedTypes = new HashMap<>(); + private final Map<NewDocumentType.Name, SDDocumentType> ownedTypes = new HashMap<>(); private final AnnotationTypeRegistry annotationTypes = new AnnotationTypeRegistry(); private DocumentType docType; private DataType structType; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java index e1f5fd470b4..edb317f4a99 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java @@ -31,7 +31,7 @@ import com.yahoo.vespa.indexinglanguage.parser.ParseException; import java.util.Collection; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; @@ -113,7 +113,7 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer, private SDDocumentType ownerDocType = null; /** The aliases declared for this field. May pertain to indexes or attributes */ - private final Map<String, String> aliasToName = new LinkedHashMap<>(); + private final Map<String, String> aliasToName = new HashMap<>(); /** Pending operations that must be applied after parsing, due to use of not-yet-defined structs. */ private final List<FieldOperation> pendingOperations = new LinkedList<>(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/TemporaryImportedFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/TemporaryImportedFields.java index 8b73560ae77..b4d76445507 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/TemporaryImportedFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/TemporaryImportedFields.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.document; import com.yahoo.searchdefinition.Schema; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -36,7 +36,7 @@ public class TemporaryImportedFields { if (owner.inherited().isEmpty()) return Collections.unmodifiableMap(fields); if (owner.inherited().get().temporaryImportedFields().isEmpty()) return Collections.unmodifiableMap(fields); - var allFields = new LinkedHashMap<>(owner.inherited().get().temporaryImportedFields().get().fields()); + var allFields = new HashMap<>(owner.inherited().get().temporaryImportedFields().get().fields()); allFields.putAll(fields); return allFields; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/LightGBMFeatureConverter.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/LightGBMFeatureConverter.java index f6b9c56d869..1bccac237d5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/LightGBMFeatureConverter.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/LightGBMFeatureConverter.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.model.ml.ConvertedModel; import com.yahoo.vespa.model.ml.FeatureArguments; import java.io.UncheckedIOException; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -23,7 +23,7 @@ import java.util.Map; public class LightGBMFeatureConverter extends ExpressionTransformer<RankProfileTransformContext> { /** A cache of imported models indexed by model path. This avoids importing the same model multiple times. */ - private final Map<Path, ConvertedModel> convertedLightGBMModels = new LinkedHashMap<>(); + private final Map<Path, ConvertedModel> convertedLightGBMModels = new HashMap<>(); @Override public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/OnnxFeatureConverter.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/OnnxFeatureConverter.java index 3d9989cf4d4..6944a1f9dd1 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/OnnxFeatureConverter.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/OnnxFeatureConverter.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.model.ml.ConvertedModel; import com.yahoo.vespa.model.ml.FeatureArguments; import java.io.UncheckedIOException; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -25,7 +25,7 @@ import java.util.Map; public class OnnxFeatureConverter extends ExpressionTransformer<RankProfileTransformContext> { /** A cache of imported models indexed by model path. This avoids importing the same model multiple times. */ - private final Map<Path, ConvertedModel> convertedOnnxModels = new LinkedHashMap<>(); + private final Map<Path, ConvertedModel> convertedOnnxModels = new HashMap<>(); @Override public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/RankProfileTransformContext.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/RankProfileTransformContext.java index a4c16d809ef..be35c2c752e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/RankProfileTransformContext.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/RankProfileTransformContext.java @@ -9,7 +9,7 @@ import com.yahoo.searchlib.rankingexpression.evaluation.Value; import com.yahoo.searchlib.rankingexpression.transform.TransformContext; import com.yahoo.tensor.TensorType; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -23,7 +23,7 @@ public class RankProfileTransformContext extends TransformContext { private final QueryProfileRegistry queryProfiles; private final ImportedMlModels importedModels; private final Map<String, RankProfile.RankingExpressionFunction> inlineFunctions; - private final Map<String, String> rankProperties = new LinkedHashMap<>(); + private final Map<String, String> rankProperties = new HashMap<>(); public RankProfileTransformContext(RankProfile rankProfile, QueryProfileRegistry queryProfiles, diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java index 982a590940a..7b165d94cae 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.model.ml.ConvertedModel; import com.yahoo.vespa.model.ml.FeatureArguments; import java.io.UncheckedIOException; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -24,7 +24,7 @@ import java.util.Map; public class TensorFlowFeatureConverter extends ExpressionTransformer<RankProfileTransformContext> { /** A cache of imported models indexed by model path. This avoids importing the same model multiple times. */ - private final Map<Path, ConvertedModel> convertedTensorFlowModels = new LinkedHashMap<>(); + private final Map<Path, ConvertedModel> convertedTensorFlowModels = new HashMap<>(); public TensorFlowFeatureConverter() {} diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/XgboostFeatureConverter.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/XgboostFeatureConverter.java index bf44cc27e72..296ffd5f7fe 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/XgboostFeatureConverter.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/XgboostFeatureConverter.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.model.ml.ConvertedModel; import com.yahoo.vespa.model.ml.FeatureArguments; import java.io.UncheckedIOException; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -25,7 +25,7 @@ import java.util.Map; public class XgboostFeatureConverter extends ExpressionTransformer<RankProfileTransformContext> { /** A cache of imported models indexed by model path. This avoids importing the same model multiple times. */ - private final Map<Path, ConvertedModel> convertedXGBoostModels = new LinkedHashMap<>(); + private final Map<Path, ConvertedModel> convertedXGBoostModels = new HashMap<>(); @Override public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java index 928afdaba13..c302ef63cfd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java @@ -12,7 +12,7 @@ import com.yahoo.vespa.indexinglanguage.expressions.Expression; import com.yahoo.vespa.indexinglanguage.expressions.IndexExpression; import com.yahoo.vespa.model.container.search.QueryProfiles; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -33,7 +33,7 @@ public class MatchConsistency extends Processor { public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - Map<String, Matching.Type> types = new LinkedHashMap<>(); + Map<String, Matching.Type> types = new HashMap<>(); for (SDField field : schema.allConcreteFields()) { new MyVisitor(schema, field, types).visit(field.getIndexingScript()); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java index 5d98439f0cd..2d0afe88281 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import com.yahoo.collections.Pair; @@ -29,7 +29,7 @@ public class SummaryNamesFieldCollisions extends Processor { public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - Map<String, Pair<String, String>> fieldToClassAndSource = new LinkedHashMap<>(); + Map<String, Pair<String, String>> fieldToClassAndSource = new HashMap<>(); for (DocumentSummary summary : schema.getSummaries().values()) { if ("default".equals(summary.getName())) continue; for (SummaryField summaryField : summary.getSummaryFields().values()) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java index fdb8da0715a..68bf2511a4b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.model.container.search.QueryProfiles; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -32,7 +32,7 @@ public class ValidateFieldTypes extends Processor { if (!validate) return; String searchName = schema.getName(); - Map<String, DataType> seenFields = new LinkedHashMap<>(); + Map<String, DataType> seenFields = new HashMap<>(); verifySearchAndDocFields(searchName, seenFields); verifySummaryFields(searchName, seenFields); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java index 6fcfadca5b6..e8b218a80ad 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java @@ -7,7 +7,7 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; public class ValidateFieldTypesDocumentsOnly extends ValidateFieldTypes { @@ -20,7 +20,7 @@ public class ValidateFieldTypesDocumentsOnly extends ValidateFieldTypes { if ( ! validate) return; String searchName = schema.getName(); - Map<String, DataType> seenFields = new LinkedHashMap<>(); + Map<String, DataType> seenFields = new HashMap<>(); verifySearchAndDocFields(searchName, seenFields); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateStructTypeInheritance.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateStructTypeInheritance.java index a8322f83715..d99832e3df6 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateStructTypeInheritance.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateStructTypeInheritance.java @@ -12,7 +12,7 @@ import com.yahoo.document.StructDataType; import com.yahoo.searchdefinition.document.SDDocumentType; import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.Set; diff --git a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java index e77ea7f9867..9b4b3eba3a7 100644 --- a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java +++ b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java @@ -14,7 +14,7 @@ import com.yahoo.vespa.documentmodel.DocumentModel; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.List; @@ -201,7 +201,7 @@ public class DocumentManager { public DocumentmanagerConfig.Builder produceDocTypes(DocumentModel model, DocumentmanagerConfig.Builder builder) { builder.usev8geopositions(this.useV8GeoPositions); - Map<NewDocumentType.Name, NewDocumentType> produced = new LinkedHashMap<>(); + Map<NewDocumentType.Name, NewDocumentType> produced = new HashMap<>(); var indexMap = new IdxMap(); for (NewDocumentType documentType : model.getDocumentManager().getTypes()) { docTypeInheritOrder(documentType, builder, produced, indexMap); @@ -225,7 +225,7 @@ public class DocumentManager { } static private class IdxMap { - private Map<Integer, Boolean> doneMap = new LinkedHashMap<>(); + private Map<Integer, Boolean> doneMap = new HashMap<>(); private Map<Object, Integer> map = new IdentityHashMap<>(); void add(Object someType) { assert(someType != null); diff --git a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentTypes.java b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentTypes.java index 930a48570c2..ac1b92e287f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentTypes.java +++ b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentTypes.java @@ -25,7 +25,7 @@ public class DocumentTypes { public DocumenttypesConfig.Builder produce(DocumentModel model, DocumenttypesConfig.Builder builder) { builder.usev8geopositions(this.useV8GeoPositions); - Map<NewDocumentType.Name, NewDocumentType> produced = new LinkedHashMap<>(); + Map<NewDocumentType.Name, NewDocumentType> produced = new HashMap<>(); for (NewDocumentType documentType : model.getDocumentManager().getTypes()) { produceInheritOrder(documentType, builder, produced); } diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java index 4c76de1ab81..59b4e1a2f9b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java @@ -6,7 +6,7 @@ import com.yahoo.searchdefinition.Schema; import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SearchDef.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SearchDef.java index 193313a44dc..cd146c45065 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SearchDef.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SearchDef.java @@ -4,7 +4,7 @@ package com.yahoo.vespa.documentmodel; import com.yahoo.document.DataType; import com.yahoo.document.DocumentTypeManager; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; @@ -19,11 +19,11 @@ public class SearchDef { /// These are the real backing documenttypes private DocumentTypeManager sources = new DocumentTypeManager(); /// Map of all search fields - private Map<String, SearchField> fields = new LinkedHashMap<>(); + private Map<String, SearchField> fields = new HashMap<>(); /// Map of all views that can be searched. - private Map<String, FieldView> views = new LinkedHashMap<>(); + private Map<String, FieldView> views = new HashMap<>(); /// Map of all aliases <alias, realname> - private Map<String, String> aliases = new LinkedHashMap<>(); + private Map<String, String> aliases = new HashMap<>(); /** * Will create a SearchDef with the given name 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 5cbb8fc0f41..78cbb722bc7 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 @@ -12,6 +12,7 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.ArrayList; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -121,7 +122,7 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon * @param services A {@link Collection} of services of the same type, not necessarily on the same host. */ public static <SERVICE extends AbstractService> void distributeCpuSocketAffinity(Collection<SERVICE> services) { - Map<HostResource, List<SERVICE>> affinityMap = new LinkedHashMap<>(); + Map<HostResource, List<SERVICE>> affinityMap = new HashMap<>(); for (SERVICE service : services) { if (!affinityMap.containsKey(service.getHostResource())) { affinityMap.put(service.getHostResource(), new ArrayList<>()); @@ -459,7 +460,7 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon * * @return the default dimensions for this service */ - public Map<String, String> getDefaultMetricDimensions(){ return new LinkedHashMap<>(); } + public HashMap<String, String> getDefaultMetricDimensions(){ return new LinkedHashMap<>(); } // For testing public int getNumPortsAllocated() { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java index 8f804229dd0..05aa125b808 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java @@ -9,6 +9,7 @@ import com.yahoo.config.provision.NodeResources; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -103,7 +104,7 @@ public class HostResource implements Comparable<HostResource> { public HostInfo getHostInfo() { return new HostInfo(getHostname(), services.values().stream() .map(Service::getServiceInfo) - .collect(Collectors.toSet())); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>()))); } /** The real resources available for Vespa processes on this node, after subtracting infrastructure overhead. */ diff --git a/config-model/src/main/java/com/yahoo/vespa/model/PortFinder.java b/config-model/src/main/java/com/yahoo/vespa/model/PortFinder.java index 16a1117e733..47a473eeb0f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/PortFinder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/PortFinder.java @@ -5,7 +5,7 @@ package com.yahoo.vespa.model; import static com.yahoo.config.provision.NetworkPorts.Allocation; import java.util.Collection; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.TreeMap; @@ -16,7 +16,7 @@ public class PortFinder { private static final Logger log = Logger.getLogger(PortFinder.class.getName()); - private final Map<String, Allocation> byKeys = new LinkedHashMap<>(); + private final Map<String, Allocation> byKeys = new HashMap<>(); private final Map<Integer, Allocation> byPorts = new TreeMap<>(); /** force add the given allocation, removing any conflicting ones */ diff --git a/config-model/src/main/java/com/yahoo/vespa/model/Service.java b/config-model/src/main/java/com/yahoo/vespa/model/Service.java index fbcd702ce43..3849a57db6f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/Service.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/Service.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.model; import com.yahoo.config.model.api.ServiceInfo; -import java.util.Map; +import java.util.HashMap; import java.util.Optional; /** @@ -68,8 +68,8 @@ public interface Service extends ConfigProducer, NetworkPortRequestor { int getHealthPort(); - /** Returns a Map of default dimensions for metrics. */ - Map<String,String> getDefaultMetricDimensions(); + /** Returns a HashMap of default dimensions for metrics. */ + HashMap<String,String> getDefaultMetricDimensions(); /** Returns the Affinity of this service if it has. */ Optional<Affinity> getAffinity(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index 30416122214..8390cc59b6f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -87,7 +87,6 @@ import java.util.stream.Collectors; import static com.yahoo.config.codegen.ConfiggenUtil.createClassName; import static com.yahoo.text.StringUtilities.quote; import static java.util.stream.Collectors.toMap; -import static java.util.stream.Collectors.toSet; import static java.util.stream.Collectors.toUnmodifiableMap; /** @@ -228,7 +227,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri private static Set<String> documentTypesWithIndex(ContentCluster content) { Set<String> typesWithIndexMode = content.getSearch().getDocumentTypesWithIndexedCluster().stream() .map(type -> type.getFullName().getName()) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); Set<String> typesWithIndexedFields = content.getSearch().getIndexed() == null ? Set.of() @@ -238,7 +237,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri .allConcreteFields() .stream().anyMatch(SDField::doesIndexing)) .map(database -> database.getInputDocType()) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); return typesWithIndexMode.stream().filter(typesWithIndexedFields::contains) .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); @@ -695,7 +694,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri .map(HostResource::spec) .filter(spec -> spec.membership().isPresent()) .map(spec -> spec.membership().get().cluster().id()) - .collect(Collectors.toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ReindexingContext.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ReindexingContext.java index 621b23ef942..899751f39ee 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ReindexingContext.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ReindexingContext.java @@ -5,7 +5,7 @@ import com.yahoo.config.model.api.Reindexing; import com.yahoo.documentmodel.NewDocumentType; import java.util.Collection; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Objects; @@ -19,7 +19,7 @@ import java.util.Set; public class ReindexingContext { private final Object monitor = new Object(); - private final Map<String, Set<NewDocumentType>> documentTypesPerCluster = new LinkedHashMap<>(); + private final Map<String, Set<NewDocumentType>> documentTypesPerCluster = new HashMap<>(); private final Reindexing reindexing; public ReindexingContext(Reindexing reindexing) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java index 50f3a21a4fb..26e3d952080 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.model.admin.monitoring; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -48,7 +49,7 @@ public class AutoscalingMetrics { } private static Set<Metric> toMetrics(List<String> metrics) { - return metrics.stream().map(Metric::new).collect(Collectors.toSet()); + return metrics.stream().map(Metric::new).collect(Collectors.toCollection(() -> new LinkedHashSet<>())); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/Metric.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/Metric.java index e095fea2d54..c2b0a358a54 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/Metric.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/Metric.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.model.admin.monitoring; import javax.annotation.concurrent.Immutable; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java index 37701df73ef..a1024425124 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/BundleValidator.java @@ -8,7 +8,7 @@ import org.w3c.dom.Document; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -62,7 +62,7 @@ public class BundleValidator extends AbstractBundleValidator { @Override protected void validatePomXml(DeployState state, JarFile jar, Document pom) {} private void validateImportedPackages(DeployState state, JarFile jar, Manifest manifest) { - Map<DeprecatedProvidedBundle, List<String>> deprecatedPackagesInUse = new LinkedHashMap<>(); + Map<DeprecatedProvidedBundle, List<String>> deprecatedPackagesInUse = new HashMap<>(); forEachImportPackage(manifest, (packageName, versionRange) -> { for (DeprecatedProvidedBundle deprecatedBundle : DeprecatedProvidedBundle.values()) { for (Predicate<String> matcher : deprecatedBundle.javaPackageMatchers) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java index 7bfd57de323..4ba809a58ba 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java @@ -140,7 +140,7 @@ public class Validation { Set<ClusterSpec.Id> clustersToBeRestarted = actions.stream() .filter(action -> action.getType() == ConfigChangeAction.Type.RESTART) .map(action -> action.clusterId()) - .collect(Collectors.toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); for (var clusterToRestart : clustersToBeRestarted) { var containerCluster = model.getContainerClusters().get(clusterToRestart.value()); if (containerCluster != null) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java index 30abb9b445f..a3872d9354b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java @@ -13,13 +13,12 @@ import com.yahoo.vespa.model.search.SearchNode; import java.time.Instant; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import static java.util.stream.Collectors.toSet; - /** * Returns any change to the indexing mode of a cluster. * @@ -91,7 +90,7 @@ public class IndexingModeChangeValidator implements ChangeValidator { private static Set<String> toDocumentTypeNames(List<NewDocumentType> types) { return types.stream() .map(type -> type.getFullName().getName()) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocumentProcessorModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocumentProcessorModelBuilder.java index 390a366392d..a8a7c4d33d2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocumentProcessorModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DocumentProcessorModelBuilder.java @@ -7,7 +7,7 @@ import com.yahoo.vespa.model.builder.xml.dom.chains.ChainedComponentModelBuilder import com.yahoo.vespa.model.container.docproc.model.DocumentProcessorModel; import org.w3c.dom.Element; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -15,7 +15,7 @@ import java.util.Map; */ public class DocumentProcessorModelBuilder extends ChainedComponentModelBuilder { - private Map<Pair<String, String>, String> fieldNameSchemaMap = new LinkedHashMap<>(); + private Map<Pair<String, String>, String> fieldNameSchemaMap = new HashMap<>(); public DocumentProcessorModelBuilder(Element spec) { super(spec); @@ -38,7 +38,7 @@ public class DocumentProcessorModelBuilder extends ChainedComponentModelBuilder * @return doctype, in-document → in-processor */ public static Map<Pair<String,String>, String> parseFieldNameSchemaMap(Element e) { - Map<Pair<String, String>, String> ret = new LinkedHashMap<>(); + Map<Pair<String, String>, String> ret = new HashMap<>(); for (Element sm : XML.getChildren(e, "map")) { for (Element fm : XML.getChildren(sm, "field")) { String from = fm.getAttribute("in-document"); 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 54795405a7a..2e5126dcc44 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 @@ -32,8 +32,7 @@ import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.HashMap; import java.util.Objects; import java.util.Optional; @@ -386,8 +385,8 @@ public abstract class Container extends AbstractService implements } @Override - public Map<String,String> getDefaultMetricDimensions(){ - Map<String, String> dimensions = new LinkedHashMap<>(); + public HashMap<String,String> getDefaultMetricDimensions(){ + HashMap<String, String> dimensions = new HashMap<>(); if (clusterName != null) dimensions.put("clustername", clusterName); return dimensions; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/ContainerDocproc.java b/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/ContainerDocproc.java index ff29e458b26..8be02f77ab3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/ContainerDocproc.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/ContainerDocproc.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.component.ContainerSubsystem; import com.yahoo.vespa.model.container.component.SystemBindingPattern; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -32,7 +32,7 @@ public class ContainerDocproc extends ContainerSubsystem<DocprocChains> // The number of nodes to use per client. private int numNodesPerClient = 0; - private Map<Pair<String, String>, String> fieldNameSchemaMap = new LinkedHashMap<>(); + private Map<Pair<String, String>, String> fieldNameSchemaMap = new HashMap<>(); public ContainerDocproc(ContainerCluster cluster, DocprocChains chains) { this(cluster, chains, new Options(false, null, null, null, null, null, null)); @@ -106,7 +106,7 @@ public class ContainerDocproc extends ContainerSubsystem<DocprocChains> @Override public void getConfig(SchemamappingConfig.Builder builder) { - Map<Pair<String, String>, String> allMappings = new LinkedHashMap<>(); + Map<Pair<String, String>, String> allMappings = new HashMap<>(); for (DocprocChain chain : getChains().allChains().allComponents()) { for (DocumentProcessor processor : chain.getInnerComponents()) { allMappings.putAll(fieldNameSchemaMap()); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/model/DocumentProcessorModel.java b/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/model/DocumentProcessorModel.java index 64131717f50..669be44d0f6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/model/DocumentProcessorModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/docproc/model/DocumentProcessorModel.java @@ -7,7 +7,7 @@ import com.yahoo.component.chain.dependencies.Dependencies; import com.yahoo.component.chain.model.ChainedComponentModel; import net.jcip.annotations.Immutable; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -16,7 +16,7 @@ import java.util.Map; @Immutable public class DocumentProcessorModel extends ChainedComponentModel { - private final Map<Pair<String, String>, String> fieldNameSchemaMap = new LinkedHashMap<>(); + private final Map<Pair<String, String>, String> fieldNameSchemaMap = new HashMap<>(); public DocumentProcessorModel(BundleInstantiationSpecification bundleInstantiationSpec, Dependencies dependencies, Map<Pair<String, String>, String> fieldNameSchemaMap) { super(bundleInstantiationSpec, dependencies); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/BlockFeedGlobalEndpointsFilter.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/BlockFeedGlobalEndpointsFilter.java index 8e8f02e6773..167dac4c57e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/BlockFeedGlobalEndpointsFilter.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/BlockFeedGlobalEndpointsFilter.java @@ -12,6 +12,7 @@ import com.yahoo.vespa.model.clients.ContainerDocumentApi; import com.yahoo.vespa.model.container.ContainerCluster; import java.util.Collection; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -40,7 +41,7 @@ public class BlockFeedGlobalEndpointsFilter extends Filter implements RuleBasedF public void getConfig(RuleBasedFilterConfig.Builder builder) { Set<String> hostNames = endpoints.stream() .flatMap(e -> e.names().stream()) - .collect(Collectors.toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); if(hostNames.size() > 0) { Collection<String> hostnamesSorted = hostNames.stream().sorted().collect(Collectors.toList()); RuleBasedFilterConfig.Rule.Builder rule = new RuleBasedFilterConfig.Rule.Builder() diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterConfigProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterConfigProvider.java index 804ba5a7f9a..458edac4379 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterConfigProvider.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/FilterConfigProvider.java @@ -9,6 +9,7 @@ import com.yahoo.container.core.http.HttpFilterConfig; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.component.SimpleComponent; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -16,6 +17,7 @@ import static com.yahoo.container.core.http.HttpFilterConfig.Param; /** * @author gjoranv + * @since 5.1.23 */ public class FilterConfigProvider extends SimpleComponent implements HttpFilterConfig.Producer { @@ -23,7 +25,7 @@ public class FilterConfigProvider extends SimpleComponent implements HttpFilterC ComponentSpecification.fromString(com.yahoo.container.FilterConfigProvider.class.getName()); private final ChainedComponentModel filterModel; - private final Map<String, String> configMap = new LinkedHashMap<>(); + private HashMap<String, String> configMap = new LinkedHashMap<>(); public FilterConfigProvider(ChainedComponentModel filterModel) { super(new ComponentModel( diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ml/ModelsEvaluatorTester.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ml/ModelsEvaluatorTester.java index 219bcaa95c2..6532fed9abf 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ml/ModelsEvaluatorTester.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ml/ModelsEvaluatorTester.java @@ -33,7 +33,7 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.file.Files; import java.nio.file.Path; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; /** @@ -139,7 +139,7 @@ public class ModelsEvaluatorTester { } private static FileAcquirer createFileAcquirer(MockFileRegistry fileRegistry, File appDir) { - Map<String, File> fileMap = new LinkedHashMap<>(); + Map<String, File> fileMap = new HashMap<>(); for (FileRegistry.Entry entry : fileRegistry.export()) { fileMap.put(entry.reference.value(), relativePath(appDir, entry.reference.value())); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/DeclaredQueryProfileVariants.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/DeclaredQueryProfileVariants.java index 3dc02b1ef9c..85aefdb42af 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/DeclaredQueryProfileVariants.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/DeclaredQueryProfileVariants.java @@ -120,7 +120,7 @@ public class DeclaredQueryProfileVariants { private final Map<String, Object> values = new LinkedHashMap<>(); - private final Map<String, Boolean> overridable = new LinkedHashMap<>(); + private final Map<String, Boolean> overridable = new HashMap<>(); private final List<QueryProfile> inherited = new ArrayList<>(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/GlobalDistributionValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/content/GlobalDistributionValidator.java index 4ea07ae06de..235128f7a62 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/GlobalDistributionValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/GlobalDistributionValidator.java @@ -3,12 +3,13 @@ package com.yahoo.vespa.model.content; import com.yahoo.documentmodel.NewDocumentType; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import java.util.stream.Stream; import static java.util.stream.Collectors.joining; -import static java.util.stream.Collectors.toSet; /** * Performs the following validations: @@ -29,7 +30,7 @@ public class GlobalDistributionValidator { private static void verifyReferredDocumentsArePresent(Map<String, NewDocumentType> documentDefinitions) { Set<NewDocumentType.Name> unknowDocuments = getReferencedDocuments(documentDefinitions) .filter(name -> !documentDefinitions.containsKey(name.toString())) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); if (!unknowDocuments.isEmpty()) { throw new IllegalArgumentException("The following document types are referenced from other documents, " + "but are not listed in services.xml: " + asPrintableString(unknowDocuments.stream())); @@ -41,7 +42,7 @@ public class GlobalDistributionValidator { Set<NewDocumentType> nonGlobalReferencedDocuments = getReferencedDocuments(documentDefinitions) .map(name -> documentDefinitions.get(name.toString())) .filter(documentType -> !globallyDistributedDocuments.contains(documentType)) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); if (!nonGlobalReferencedDocuments.isEmpty()) { throw new IllegalArgumentException("The following document types are referenced from other documents, " + "but are not globally distributed: " + asPrintableString(toDocumentNameStream(nonGlobalReferencedDocuments))); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/GlobalDistributionBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/GlobalDistributionBuilder.java index a4231105f42..1cab6cd462d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/GlobalDistributionBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/GlobalDistributionBuilder.java @@ -5,10 +5,10 @@ import com.yahoo.documentmodel.NewDocumentType; import com.yahoo.vespa.model.builder.xml.dom.ModelElement; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; - -import static java.util.stream.Collectors.toSet; +import java.util.stream.Collectors; /** * Determines the set of document types that are configured to be globally distributed. @@ -32,7 +32,7 @@ public class GlobalDistributionBuilder { .filter(GlobalDistributionBuilder::isGloballyDistributed) .map(GlobalDistributionBuilder::getDocumentName) .map(this::getDocumentType) - .collect(toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); } private static boolean isGloballyDistributed(ModelElement e) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ml/ConvertedModel.java b/config-model/src/main/java/com/yahoo/vespa/model/ml/ConvertedModel.java index 6be19757ee6..38b1d42862e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/ml/ConvertedModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/ml/ConvertedModel.java @@ -36,7 +36,7 @@ import java.io.StringReader; import java.io.UncheckedIOException; import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -211,7 +211,7 @@ public class ConvertedModel { addGeneratedFunctions(model, profile); // Add expressions - Map<String, ExpressionFunction> expressions = new LinkedHashMap<>(); + Map<String, ExpressionFunction> expressions = new HashMap<>(); for (ImportedMlFunction outputFunction : model.outputExpressions()) { ExpressionFunction expression = asExpressionFunction(outputFunction); for (Map.Entry<String, TensorType> input : expression.argumentTypes().entrySet()) { @@ -232,7 +232,7 @@ public class ConvertedModel { private static ExpressionFunction asExpressionFunction(ImportedMlFunction function) { try { - Map<String, TensorType> argumentTypes = new LinkedHashMap<>(); + Map<String, TensorType> argumentTypes = new HashMap<>(); for (Map.Entry<String, String> entry : function.argumentTypes().entrySet()) argumentTypes.put(entry.getKey(), TensorType.fromSpec(entry.getValue())); @@ -278,7 +278,7 @@ public class ConvertedModel { addGeneratedFunctionToProfile(profile, function.getFirst(), function.getSecond()); } - Map<String, ExpressionFunction> expressions = new LinkedHashMap<>(); + Map<String, ExpressionFunction> expressions = new HashMap<>(); for (Pair<String, ExpressionFunction> output : store.readExpressions()) { String name = output.getFirst(); ExpressionFunction expression = output.getSecond(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java b/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java index c108168c0d0..88139de7888 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java @@ -18,7 +18,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -40,7 +40,7 @@ public class OnnxModelInfo { private final String defaultOutput; private final Map<String, OnnxTypeInfo> inputs; private final Map<String, OnnxTypeInfo> outputs; - private final Map<String, TensorType> vespaTypes = new LinkedHashMap<>(); + private final Map<String, TensorType> vespaTypes = new HashMap<>(); private OnnxModelInfo(String path, Map<String, OnnxTypeInfo> inputs, Map<String, OnnxTypeInfo> outputs, String defaultOutput) { this.modelPath = path; @@ -77,7 +77,7 @@ public class OnnxModelInfo { } if (onnxTypeInfo.containsUnknownDimensionSizes()) { Set<Long> unboundSizes = new HashSet<>(); - Map<String, Long> symbolicSizes = new LinkedHashMap<>(); + Map<String, Long> symbolicSizes = new HashMap<>(); resolveUnknownDimensionSizes(inputTypes, symbolicSizes, unboundSizes); return onnxTypeInfo.toVespaTensorType(symbolicSizes, unboundSizes); } @@ -205,8 +205,8 @@ public class OnnxModelInfo { static public OnnxModelInfo jsonToModelInfo(String json) throws IOException { ObjectMapper m = new ObjectMapper(); JsonNode root = m.readTree(json); - Map<String, OnnxTypeInfo> inputs = new LinkedHashMap<>(); - Map<String, OnnxTypeInfo> outputs = new LinkedHashMap<>(); + Map<String, OnnxTypeInfo> inputs = new HashMap<>(); + Map<String, OnnxTypeInfo> outputs = new HashMap<>(); String defaultOutput = ""; String path = null; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocprocChain.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocprocChain.java index e20767bf864..0446a6c5dce 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocprocChain.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocprocChain.java @@ -8,7 +8,7 @@ import com.yahoo.vespa.configdefinition.SpecialtokensConfig; import com.yahoo.vespa.model.container.docproc.DocprocChain; import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; import java.util.Set; @@ -30,7 +30,7 @@ public class IndexingDocprocChain extends DocprocChain implements SpecialtokensC new ChainSpecification.Inheritance(Set.of(), Set.of()), phases, Set.of()), - new LinkedHashMap<>()); + new HashMap<>()); addInnerComponent(new IndexingProcessor()); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingProcessor.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingProcessor.java index b939cb1b0c6..808fdccad2b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingProcessor.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingProcessor.java @@ -8,7 +8,7 @@ import com.yahoo.component.chain.dependencies.Dependencies; import com.yahoo.vespa.model.container.docproc.DocumentProcessor; import com.yahoo.vespa.model.container.docproc.model.DocumentProcessorModel; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; /** @@ -23,7 +23,7 @@ public class IndexingProcessor extends DocumentProcessor { new ComponentSpecification(DocumentProcessor.INDEXER), new ComponentSpecification(docprocsBundleSpecification)), new Dependencies(List.of(), List.of(), List.of()), - new LinkedHashMap<>())); + new HashMap<>())); } } 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 c6ec65bb2ad..28d1fbe72ef 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 @@ -25,8 +25,7 @@ import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProvider; import org.w3c.dom.Element; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.HashMap; import java.util.Optional; import static com.yahoo.vespa.defaults.Defaults.getDefaults; @@ -293,8 +292,8 @@ public class SearchNode extends AbstractService implements } @Override - public Map<String, String> getDefaultMetricDimensions() { - Map<String, String> dimensions = new LinkedHashMap<>(); + public HashMap<String, String> getDefaultMetricDimensions() { + HashMap<String, String> dimensions = new HashMap<>(); if (clusterName != null) { dimensions.put("clustername", clusterName); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/utils/Duration.java b/config-model/src/main/java/com/yahoo/vespa/model/utils/Duration.java index dbd20c8fa23..5bb6d8cf6bf 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/utils/Duration.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/utils/Duration.java @@ -1,7 +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.utils; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -21,7 +21,7 @@ import java.util.regex.Pattern; */ public class Duration { private static Pattern pattern = Pattern.compile("([0-9\\.]+)\\s*([a-z]+)?"); - private static Map<String, Integer> unitMultiplier = new LinkedHashMap<>(); + private static Map<String, Integer> unitMultiplier = new HashMap<>(); static { unitMultiplier.put("s", 1000); unitMultiplier.put("d", 1000 * 3600 * 24); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java b/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java index 5b682ad042f..ad10e15930b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java @@ -14,7 +14,7 @@ import com.yahoo.vespa.model.AbstractService; import java.io.Serializable; import java.util.Collection; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.Map; import java.util.logging.Level; @@ -43,7 +43,7 @@ public class FileSender implements Serializable { return; UserConfigRepo userConfigs = producer.getUserConfigs(); - Map<String, FileReference> sentFiles = new LinkedHashMap<>(); + Map<String, FileReference> sentFiles = new HashMap<>(); for (ConfigDefinitionKey key : userConfigs.configsProduced()) { ConfigPayloadBuilder builder = userConfigs.get(key); try { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/utils/internal/ReflectionUtil.java b/config-model/src/main/java/com/yahoo/vespa/model/utils/internal/ReflectionUtil.java index 3ba536b4e9b..0ad28d37e93 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/utils/internal/ReflectionUtil.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/utils/internal/ReflectionUtil.java @@ -10,6 +10,7 @@ import com.yahoo.vespa.model.ConfigProducer; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -31,7 +32,7 @@ public final class ReflectionUtil { return interfaces.rawTypes().stream() .filter(ReflectionUtil::isConcreteProducer) .map(i -> createConfigKeyFromInstance(i.getEnclosingClass(), configId)) - .collect(Collectors.toSet()); + .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); } /** diff --git a/config-model/src/test/configmodel/types/documenttypes.cfg b/config-model/src/test/configmodel/types/documenttypes.cfg index 58105b58af0..94551567352 100644 --- a/config-model/src/test/configmodel/types/documenttypes.cfg +++ b/config-model/src/test/configmodel/types/documenttypes.cfg @@ -6,95 +6,95 @@ documenttype[0].version 0 documenttype[0].headerstruct 1328581348 documenttype[0].bodystruct 0 documenttype[0].inherits[0].id 8 -documenttype[0].datatype[0].id 109267174 -documenttype[0].datatype[0].type STRUCT +documenttype[0].datatype[0].id -1865479609 +documenttype[0].datatype[0].type MAP documenttype[0].datatype[0].array.element.id 0 -documenttype[0].datatype[0].map.key.id 0 -documenttype[0].datatype[0].map.value.id 0 +documenttype[0].datatype[0].map.key.id 2 +documenttype[0].datatype[0].map.value.id 4 documenttype[0].datatype[0].wset.key.id 0 documenttype[0].datatype[0].wset.createifnonexistent false documenttype[0].datatype[0].wset.removeifzero false documenttype[0].datatype[0].annotationref.annotation.id 0 -documenttype[0].datatype[0].sstruct.name "sct" +documenttype[0].datatype[0].sstruct.name "" documenttype[0].datatype[0].sstruct.version 0 documenttype[0].datatype[0].sstruct.compression.type NONE documenttype[0].datatype[0].sstruct.compression.level 0 documenttype[0].datatype[0].sstruct.compression.threshold 95 documenttype[0].datatype[0].sstruct.compression.minsize 200 -documenttype[0].datatype[0].sstruct.field[0].name "s1" -documenttype[0].datatype[0].sstruct.field[0].id 2146820765 -documenttype[0].datatype[0].sstruct.field[0].datatype 2 -documenttype[0].datatype[0].sstruct.field[0].detailedtype "" -documenttype[0].datatype[0].sstruct.field[1].name "s2" -documenttype[0].datatype[0].sstruct.field[1].id 45366795 -documenttype[0].datatype[0].sstruct.field[1].datatype 2 -documenttype[0].datatype[0].sstruct.field[1].detailedtype "" -documenttype[0].datatype[1].id 49942803 -documenttype[0].datatype[1].type ARRAY -documenttype[0].datatype[1].array.element.id 16 +documenttype[0].datatype[1].id 294108848 +documenttype[0].datatype[1].type STRUCT +documenttype[0].datatype[1].array.element.id 0 documenttype[0].datatype[1].map.key.id 0 documenttype[0].datatype[1].map.value.id 0 documenttype[0].datatype[1].wset.key.id 0 documenttype[0].datatype[1].wset.createifnonexistent false documenttype[0].datatype[1].wset.removeifzero false documenttype[0].datatype[1].annotationref.annotation.id 0 -documenttype[0].datatype[1].sstruct.name "" +documenttype[0].datatype[1].sstruct.name "folder" documenttype[0].datatype[1].sstruct.version 0 documenttype[0].datatype[1].sstruct.compression.type NONE documenttype[0].datatype[1].sstruct.compression.level 0 documenttype[0].datatype[1].sstruct.compression.threshold 95 documenttype[0].datatype[1].sstruct.compression.minsize 200 -documenttype[0].datatype[2].id 339965458 -documenttype[0].datatype[2].type MAP +documenttype[0].datatype[1].sstruct.field[0].name "Version" +documenttype[0].datatype[1].sstruct.field[0].id 64430502 +documenttype[0].datatype[1].sstruct.field[0].datatype 0 +documenttype[0].datatype[1].sstruct.field[0].detailedtype "" +documenttype[0].datatype[1].sstruct.field[1].name "Name" +documenttype[0].datatype[1].sstruct.field[1].id 2002760220 +documenttype[0].datatype[1].sstruct.field[1].datatype 2 +documenttype[0].datatype[1].sstruct.field[1].detailedtype "" +documenttype[0].datatype[1].sstruct.field[2].name "FlagsCounter" +documenttype[0].datatype[1].sstruct.field[2].id 1741227606 +documenttype[0].datatype[1].sstruct.field[2].datatype -1865479609 +documenttype[0].datatype[1].sstruct.field[2].detailedtype "" +documenttype[0].datatype[1].sstruct.field[3].name "anotherfolder" +documenttype[0].datatype[1].sstruct.field[3].id 1582421848 +documenttype[0].datatype[1].sstruct.field[3].datatype 294108848 +documenttype[0].datatype[1].sstruct.field[3].detailedtype "" +documenttype[0].datatype[2].id 109267174 +documenttype[0].datatype[2].type STRUCT documenttype[0].datatype[2].array.element.id 0 -documenttype[0].datatype[2].map.key.id 2 -documenttype[0].datatype[2].map.value.id 2 +documenttype[0].datatype[2].map.key.id 0 +documenttype[0].datatype[2].map.value.id 0 documenttype[0].datatype[2].wset.key.id 0 documenttype[0].datatype[2].wset.createifnonexistent false documenttype[0].datatype[2].wset.removeifzero false documenttype[0].datatype[2].annotationref.annotation.id 0 -documenttype[0].datatype[2].sstruct.name "" +documenttype[0].datatype[2].sstruct.name "sct" documenttype[0].datatype[2].sstruct.version 0 documenttype[0].datatype[2].sstruct.compression.type NONE documenttype[0].datatype[2].sstruct.compression.level 0 documenttype[0].datatype[2].sstruct.compression.threshold 95 documenttype[0].datatype[2].sstruct.compression.minsize 200 -documenttype[0].datatype[3].id -2092985853 -documenttype[0].datatype[3].type STRUCT -documenttype[0].datatype[3].array.element.id 0 +documenttype[0].datatype[2].sstruct.field[0].name "s1" +documenttype[0].datatype[2].sstruct.field[0].id 2146820765 +documenttype[0].datatype[2].sstruct.field[0].datatype 2 +documenttype[0].datatype[2].sstruct.field[0].detailedtype "" +documenttype[0].datatype[2].sstruct.field[1].name "s2" +documenttype[0].datatype[2].sstruct.field[1].id 45366795 +documenttype[0].datatype[2].sstruct.field[1].datatype 2 +documenttype[0].datatype[2].sstruct.field[1].detailedtype "" +documenttype[0].datatype[3].id 49942803 +documenttype[0].datatype[3].type ARRAY +documenttype[0].datatype[3].array.element.id 16 documenttype[0].datatype[3].map.key.id 0 documenttype[0].datatype[3].map.value.id 0 documenttype[0].datatype[3].wset.key.id 0 documenttype[0].datatype[3].wset.createifnonexistent false documenttype[0].datatype[3].wset.removeifzero false documenttype[0].datatype[3].annotationref.annotation.id 0 -documenttype[0].datatype[3].sstruct.name "mystruct" +documenttype[0].datatype[3].sstruct.name "" documenttype[0].datatype[3].sstruct.version 0 documenttype[0].datatype[3].sstruct.compression.type NONE documenttype[0].datatype[3].sstruct.compression.level 0 documenttype[0].datatype[3].sstruct.compression.threshold 95 documenttype[0].datatype[3].sstruct.compression.minsize 200 -documenttype[0].datatype[3].sstruct.field[0].name "bytearr" -documenttype[0].datatype[3].sstruct.field[0].id 1079701754 -documenttype[0].datatype[3].sstruct.field[0].datatype 49942803 -documenttype[0].datatype[3].sstruct.field[0].detailedtype "" -documenttype[0].datatype[3].sstruct.field[1].name "mymap" -documenttype[0].datatype[3].sstruct.field[1].id 1954178122 -documenttype[0].datatype[3].sstruct.field[1].datatype 339965458 -documenttype[0].datatype[3].sstruct.field[1].detailedtype "" -documenttype[0].datatype[3].sstruct.field[2].name "title" -documenttype[0].datatype[3].sstruct.field[2].id 567626448 -documenttype[0].datatype[3].sstruct.field[2].datatype 2 -documenttype[0].datatype[3].sstruct.field[2].detailedtype "" -documenttype[0].datatype[3].sstruct.field[3].name "structfield" -documenttype[0].datatype[3].sstruct.field[3].id 1726890940 -documenttype[0].datatype[3].sstruct.field[3].datatype 2 -documenttype[0].datatype[3].sstruct.field[3].detailedtype "" -documenttype[0].datatype[4].id -1865479609 +documenttype[0].datatype[4].id 339965458 documenttype[0].datatype[4].type MAP documenttype[0].datatype[4].array.element.id 0 documenttype[0].datatype[4].map.key.id 2 -documenttype[0].datatype[4].map.value.id 4 +documenttype[0].datatype[4].map.value.id 2 documenttype[0].datatype[4].wset.key.id 0 documenttype[0].datatype[4].wset.createifnonexistent false documenttype[0].datatype[4].wset.removeifzero false @@ -105,7 +105,7 @@ documenttype[0].datatype[4].sstruct.compression.type NONE documenttype[0].datatype[4].sstruct.compression.level 0 documenttype[0].datatype[4].sstruct.compression.threshold 95 documenttype[0].datatype[4].sstruct.compression.minsize 200 -documenttype[0].datatype[5].id 294108848 +documenttype[0].datatype[5].id -2092985853 documenttype[0].datatype[5].type STRUCT documenttype[0].datatype[5].array.element.id 0 documenttype[0].datatype[5].map.key.id 0 @@ -114,27 +114,27 @@ documenttype[0].datatype[5].wset.key.id 0 documenttype[0].datatype[5].wset.createifnonexistent false documenttype[0].datatype[5].wset.removeifzero false documenttype[0].datatype[5].annotationref.annotation.id 0 -documenttype[0].datatype[5].sstruct.name "folder" +documenttype[0].datatype[5].sstruct.name "mystruct" documenttype[0].datatype[5].sstruct.version 0 documenttype[0].datatype[5].sstruct.compression.type NONE documenttype[0].datatype[5].sstruct.compression.level 0 documenttype[0].datatype[5].sstruct.compression.threshold 95 documenttype[0].datatype[5].sstruct.compression.minsize 200 -documenttype[0].datatype[5].sstruct.field[0].name "Version" -documenttype[0].datatype[5].sstruct.field[0].id 64430502 -documenttype[0].datatype[5].sstruct.field[0].datatype 0 +documenttype[0].datatype[5].sstruct.field[0].name "bytearr" +documenttype[0].datatype[5].sstruct.field[0].id 1079701754 +documenttype[0].datatype[5].sstruct.field[0].datatype 49942803 documenttype[0].datatype[5].sstruct.field[0].detailedtype "" -documenttype[0].datatype[5].sstruct.field[1].name "Name" -documenttype[0].datatype[5].sstruct.field[1].id 2002760220 -documenttype[0].datatype[5].sstruct.field[1].datatype 2 +documenttype[0].datatype[5].sstruct.field[1].name "mymap" +documenttype[0].datatype[5].sstruct.field[1].id 1954178122 +documenttype[0].datatype[5].sstruct.field[1].datatype 339965458 documenttype[0].datatype[5].sstruct.field[1].detailedtype "" -documenttype[0].datatype[5].sstruct.field[2].name "FlagsCounter" -documenttype[0].datatype[5].sstruct.field[2].id 1741227606 -documenttype[0].datatype[5].sstruct.field[2].datatype -1865479609 +documenttype[0].datatype[5].sstruct.field[2].name "title" +documenttype[0].datatype[5].sstruct.field[2].id 567626448 +documenttype[0].datatype[5].sstruct.field[2].datatype 2 documenttype[0].datatype[5].sstruct.field[2].detailedtype "" -documenttype[0].datatype[5].sstruct.field[3].name "anotherfolder" -documenttype[0].datatype[5].sstruct.field[3].id 1582421848 -documenttype[0].datatype[5].sstruct.field[3].datatype 294108848 +documenttype[0].datatype[5].sstruct.field[3].name "structfield" +documenttype[0].datatype[5].sstruct.field[3].id 1726890940 +documenttype[0].datatype[5].sstruct.field[3].datatype 2 documenttype[0].datatype[5].sstruct.field[3].detailedtype "" documenttype[0].datatype[6].id -1245117006 documenttype[0].datatype[6].type ARRAY @@ -574,4 +574,4 @@ documenttype[0].fieldsets{[document]}.fields[22] "setfield4" documenttype[0].fieldsets{[document]}.fields[23] "stringmapfield" documenttype[0].fieldsets{[document]}.fields[24] "structarrayfield" documenttype[0].fieldsets{[document]}.fields[25] "structfield" -documenttype[0].fieldsets{[document]}.fields[26] "tagfield"
\ No newline at end of file +documenttype[0].fieldsets{[document]}.fields[26] "tagfield" diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaImporterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaImporterTestCase.java index bca5f3cdc0d..9c895b452d5 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaImporterTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaImporterTestCase.java @@ -60,10 +60,10 @@ public class SchemaImporterTestCase extends AbstractSchemaTestCase { assertFalse(schema.getIndex("default").isPrefix()); assertTrue(schema.getIndex("title").isPrefix()); Iterator<String> titleAliases = schema.getIndex("title").aliasIterator(); + assertEquals("aliaz", titleAliases.next()); assertEquals("analias.totitle", titleAliases.next()); assertEquals("analias.todefault", schema.getIndex("default").aliasIterator().next()); - assertEquals("aliaz", titleAliases.next()); assertEquals(RankType.IDENTITY, field.getRankType()); assertEquals(0, field.getAttributes().size()); assertNull(field.getStemming()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java index 3ecee337261..bcf68387294 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java @@ -82,11 +82,11 @@ public class InheritanceTestCase extends AbstractExportingTestCase { assertEquals(childHeader.field(3).name(), "cox"); DocumentmanagerConfig.Datatype.Documenttype child = documentType("child", dc); assertEquals(child.inherits(0).name(), "document"); - assertEquals(child.inherits(1).name(), "mother"); - assertEquals(child.inherits(2).name(), "father"); + assertEquals(child.inherits(1).name(), "father"); + assertEquals(child.inherits(2).name(), "mother"); DocumentmanagerConfig.Datatype.Documenttype mother = documentType("mother", dc); - assertEquals(mother.inherits(0).name(), "document"); - assertEquals(mother.inherits(1).name(), "grandparent"); + assertEquals(mother.inherits(0).name(), "grandparent"); + assertEquals(mother.inherits(1).name(), "document"); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java index 1f090787b0f..2057bcaba04 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java @@ -68,10 +68,10 @@ public class RankingExpressionWithOnnxModelTestCase { OnnxModelsConfig.Model model = config.model(0); assertEquals("my_model", model.name()); assertEquals(3, model.input().size()); - assertEquals("first_input", model.input(0).name()); - assertEquals("attribute(document_field)", model.input(0).source()); - assertEquals("second/input:0", model.input(1).name()); - assertEquals("constant(my_constant)", model.input(1).source()); + assertEquals("second/input:0", model.input(0).name()); + assertEquals("constant(my_constant)", model.input(0).source()); + assertEquals("first_input", model.input(1).name()); + assertEquals("attribute(document_field)", model.input(1).source()); assertEquals("third_input", model.input(2).name()); assertEquals("rankingExpression(my_function)", model.input(2).source()); assertEquals(3, model.output().size()); @@ -83,23 +83,6 @@ public class RankingExpressionWithOnnxModelTestCase { assertEquals("path_to_output_2", model.output(2).as()); model = config.model(1); - assertEquals("another_model", model.name()); - assertEquals("third_input", model.input(2).name()); - assertEquals("rankingExpression(another_function)", model.input(2).source()); - - model = config.model(2); - assertEquals("dynamic_model", model.name()); - assertEquals(1, model.input().size()); - assertEquals(1, model.output().size()); - assertEquals("rankingExpression(my_function)", model.input(0).source()); - - model = config.model(3); - assertEquals("unbound_model", model.name()); - assertEquals(1, model.input().size()); - assertEquals(1, model.output().size()); - assertEquals("rankingExpression(my_function)", model.input(0).source()); - - model = config.model(4); assertEquals("files_model_onnx", model.name()); assertEquals(3, model.input().size()); assertEquals(3, model.output().size()); @@ -111,10 +94,27 @@ public class RankingExpressionWithOnnxModelTestCase { assertEquals("path_to_output_2", model.output(2).as()); assertEquals("files_model_onnx", model.name()); - model = config.model(5); + model = config.model(2); + assertEquals("another_model", model.name()); + assertEquals("third_input", model.input(2).name()); + assertEquals("rankingExpression(another_function)", model.input(2).source()); + + model = config.model(3); assertEquals("files_summary_model_onnx", model.name()); assertEquals(3, model.input().size()); assertEquals(3, model.output().size()); + + model = config.model(4); + assertEquals("unbound_model", model.name()); + assertEquals(1, model.input().size()); + assertEquals(1, model.output().size()); + assertEquals("rankingExpression(my_function)", model.input(0).source()); + + model = config.model(5); + assertEquals("dynamic_model", model.name()); + assertEquals(1, model.input().size()); + assertEquals(1, model.output().size()); + assertEquals("rankingExpression(my_function)", model.input(0).source()); } private void assertTransformedFeature(VespaModel model) { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/VespaMlModelTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/VespaMlModelTestCase.java index b462d84802c..e0427d93ee4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/VespaMlModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/VespaMlModelTestCase.java @@ -25,8 +25,8 @@ public class VespaMlModelTestCase { private final Path applicationDir = Path.fromString("src/test/integration/vespa/"); private final String expectedRankConfig = - "constant(constant1).value : tensor(x[3]):[0.5, 1.5, 2.5]\n" + "constant(constant1).type : tensor(x[3])\n" + + "constant(constant1).value : tensor(x[3]):[0.5, 1.5, 2.5]\n" + "rankingExpression(foo1).rankingScript : reduce(reduce(input1 * input2, sum, name) * constant(constant1), max, x) * 3.0\n" + "rankingExpression(foo1).input2.type : tensor(x[3])\n" + "rankingExpression(foo1).input1.type : tensor(name{},x[3])\n" + diff --git a/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java b/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java index 09010cfdc25..dc88590a198 100644 --- a/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java @@ -30,7 +30,7 @@ public class DocumentModelBuilderTestCase extends AbstractSchemaTestCase { DocumenttypesConfig.Builder documenttypesCfg = new DocumentTypes().produce(model, new DocumenttypesConfig.Builder()); assertConfigFile("src/test/configmodel/types/documenttypes.cfg", - new DocumenttypesConfig(documenttypesCfg).toString()); + new DocumenttypesConfig(documenttypesCfg).toString()); } @Test |