summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-02-02 18:37:53 +0100
committerJon Bratseth <bratseth@gmail.com>2022-02-02 18:37:53 +0100
commitb8438c19dd4bfd19ab5db7abd5af053cc1d7cc4b (patch)
tree8de1524e0394c3698a5a1afc8cfe750a5108538b /config-model
parentf095e16d4fa4b919fb1bf1a7f509322638d0fa6b (diff)
Produce LinkedHashSets to get deterministic order
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java17
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java13
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java5
6 files changed, 25 insertions, 20 deletions
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 91dbb56d20d..30416122214 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
@@ -89,7 +89,6 @@ 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;
-import static java.util.stream.Collectors.toUnmodifiableSet;
/**
* <p>
@@ -241,7 +240,8 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
.map(database -> database.getInputDocType())
.collect(toSet());
- return typesWithIndexMode.stream().filter(typesWithIndexedFields::contains).collect(toUnmodifiableSet());
+ return typesWithIndexMode.stream().filter(typesWithIndexedFields::contains)
+ .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
}
private void propagateRestartOnDeploy() {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java
index 0b99496a9b4..bf3ba084091 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java
@@ -9,19 +9,18 @@ import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.HostSpec;
-import com.yahoo.net.HostName;
import com.yahoo.vespa.model.Service;
import com.yahoo.vespa.model.admin.Configserver;
import com.yahoo.vespa.model.container.Container;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
-import static java.util.stream.Collectors.toUnmodifiableSet;
-
/**
* Used if clustercontroller is run standalone (not as part of the config server ZooKeeper cluster)
* to provide common configs to container components.
@@ -38,12 +37,12 @@ public class ClusterControllerCluster extends AbstractConfigProducer<ClusterCont
public ClusterControllerCluster(AbstractConfigProducer<?> parent, String subId, DeployState deployState) {
super(parent, subId);
- this.previousHosts = deployState.getPreviousModel().stream()
- .map(Model::allocatedHosts)
- .map(AllocatedHosts::getHosts)
- .flatMap(Collection::stream)
- .map(HostSpec::hostname)
- .collect(toUnmodifiableSet());
+ this.previousHosts = Collections.unmodifiableSet(deployState.getPreviousModel().stream()
+ .map(Model::allocatedHosts)
+ .map(AllocatedHosts::getHosts)
+ .flatMap(Collection::stream)
+ .map(HostSpec::hostname)
+ .collect(Collectors.toCollection(() -> new LinkedHashSet<>())));
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java
index 841dbb204fd..e4a64e8d476 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/QuotaValidator.java
@@ -10,6 +10,7 @@ import com.yahoo.config.provision.SystemName;
import com.yahoo.vespa.model.VespaModel;
import java.math.BigDecimal;
+import java.util.LinkedHashSet;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -61,7 +62,7 @@ public class QuotaValidator extends Validator {
.map(hostSpec -> hostSpec.membership().orElseThrow().cluster())
.filter(cluster -> cluster.type() == ClusterSpec.Type.admin)
.map(ClusterSpec::id)
- .collect(Collectors.toUnmodifiableSet());
+ .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
}
/** Check that all clusters in the application do not exceed the quota max cluster size. */
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
index 5bf7ea0b290..6982f10f658 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
@@ -40,6 +40,7 @@ import com.yahoo.vespa.model.utils.FileSender;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
@@ -96,12 +97,12 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
public ApplicationContainerCluster(AbstractConfigProducer<?> parent, String configSubId, String clusterId, DeployState deployState) {
super(parent, configSubId, clusterId, deployState, true, 10);
this.tlsClientAuthority = deployState.tlsClientAuthority();
- previousHosts = deployState.getPreviousModel().stream()
- .map(Model::allocatedHosts)
- .map(AllocatedHosts::getHosts)
- .flatMap(Collection::stream)
- .map(HostSpec::hostname)
- .collect(Collectors.toUnmodifiableSet());
+ previousHosts = Collections.unmodifiableSet(deployState.getPreviousModel().stream()
+ .map(Model::allocatedHosts)
+ .map(AllocatedHosts::getHosts)
+ .flatMap(Collection::stream)
+ .map(HostSpec::hostname)
+ .collect(Collectors.toCollection(() -> new LinkedHashSet<>())));
addSimpleComponent("com.yahoo.language.provider.DefaultLinguisticsProvider");
addSimpleComponent("com.yahoo.language.provider.DefaultEmbedderProvider");
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 4ef0ed12456..b89c48931b2 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -96,6 +96,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -348,7 +349,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// Only consider global endpoints.
.filter(endpoint -> endpoint.scope() == ApplicationClusterEndpoint.Scope.global)
.flatMap(endpoint -> endpoint.names().stream())
- .collect(Collectors.toUnmodifiableSet());
+ .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
// Build the comma delimited list of endpoints this container should be known as.
// Confusingly called 'rotations' for legacy reasons.
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java
index ac5c456a7b1..3962aa3d612 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java
@@ -22,7 +22,10 @@ public class FileReferencesRepository {
}
public Set<FileReference> allFileReferences() {
- return fileRegistry.export().stream().map(e -> e.reference).collect(Collectors.toUnmodifiableSet());
+ return fileRegistry.export()
+ .stream()
+ .map(e -> e.reference)
+ .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
}
}