Skip to content

Commit bec7653

Browse files
committed
Fix test clusters to respect user-provided ordering of settings.
This is necessary when configuring dependent settings, such as loggers.
1 parent 20a8513 commit bec7653

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/AbstractLocalClusterFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import java.util.Arrays;
5151
import java.util.HashMap;
5252
import java.util.HashSet;
53+
import java.util.LinkedHashMap;
5354
import java.util.List;
5455
import java.util.Locale;
5556
import java.util.Map;
@@ -408,7 +409,7 @@ private void writeConfiguration() {
408409

409410
try {
410411
// Write settings to elasticsearch.yml
411-
Map<String, String> finalSettings = new HashMap<>();
412+
Map<String, String> finalSettings = new LinkedHashMap<>();
412413
finalSettings.put("cluster.name", spec.getCluster().getName());
413414
if (name != null) {
414415
finalSettings.put("node.name", name);

test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/AbstractLocalSpecBuilder.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
import java.util.ArrayList;
2222
import java.util.EnumSet;
2323
import java.util.HashMap;
24-
import java.util.HashSet;
24+
import java.util.LinkedHashMap;
25+
import java.util.LinkedHashSet;
2526
import java.util.List;
2627
import java.util.Map;
2728
import java.util.Set;
@@ -32,7 +33,7 @@
3233
public abstract class AbstractLocalSpecBuilder<T extends LocalSpecBuilder<?>> implements LocalSpecBuilder<T> {
3334
private final AbstractLocalSpecBuilder<?> parent;
3435
private final List<SettingsProvider> settingsProviders = new ArrayList<>();
35-
private final Map<String, String> settings = new HashMap<>();
36+
private final Map<String, String> settings = new LinkedHashMap<>();
3637
private final List<EnvironmentProvider> environmentProviders = new ArrayList<>();
3738
private final Map<String, String> environment = new HashMap<>();
3839
private final Map<String, DefaultPluginInstallSpec> modules = new HashMap<>();
@@ -321,7 +322,7 @@ private <T> List<T> inherit(Supplier<List<T>> parent, List<T> child) {
321322
}
322323

323324
private <T> Set<T> inherit(Supplier<Set<T>> parent, Set<T> child) {
324-
Set<T> combinedSet = new HashSet<>();
325+
Set<T> combinedSet = new LinkedHashSet<>();
325326
if (this.parent != null) {
326327
combinedSet.addAll(parent.get());
327328
}
@@ -330,7 +331,7 @@ private <T> Set<T> inherit(Supplier<Set<T>> parent, Set<T> child) {
330331
}
331332

332333
private <K, V> Map<K, V> inherit(Supplier<Map<K, V>> parent, Map<K, V> child) {
333-
Map<K, V> combinedMap = new HashMap<>();
334+
Map<K, V> combinedMap = new LinkedHashMap<>();
334335
if (this.parent != null) {
335336
combinedMap.putAll(parent.get());
336337
}

test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/LocalClusterSpec.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import java.nio.file.Path;
2323
import java.util.HashMap;
24+
import java.util.LinkedHashMap;
2425
import java.util.List;
2526
import java.util.Map;
2627
import java.util.Objects;
@@ -236,7 +237,7 @@ public boolean hasRole(String role) {
236237
* @return the configured setting value or provided default
237238
*/
238239
public String getSetting(String setting, String defaultValue) {
239-
Map<String, String> allSettings = new HashMap<>();
240+
Map<String, String> allSettings = new LinkedHashMap<>();
240241
allSettings.putAll(resolveSettings());
241242
allSettings.putAll(resolveKeystore());
242243

@@ -255,7 +256,7 @@ public String getSetting(String setting, String defaultValue) {
255256
* @return resolved settings for node
256257
*/
257258
public Map<String, String> resolveSettings() {
258-
Map<String, String> resolvedSettings = new HashMap<>();
259+
Map<String, String> resolvedSettings = new LinkedHashMap<>();
259260
settingsProviders.forEach(p -> resolvedSettings.putAll(p.get(getFilteredSpec(p, null))));
260261
resolvedSettings.putAll(settings);
261262
return resolvedSettings;

0 commit comments

Comments
 (0)