Skip to content

Commit fd161dc

Browse files
committed
Use BiConsumer for customMetadata
1 parent 90e8078 commit fd161dc

File tree

19 files changed

+100
-96
lines changed

19 files changed

+100
-96
lines changed

modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.elasticsearch.cluster.metadata.IndexMetadata;
1313
import org.elasticsearch.cluster.metadata.ProjectMetadata;
1414
import org.elasticsearch.common.UUIDs;
15-
import org.elasticsearch.common.collect.ImmutableOpenMap;
1615
import org.elasticsearch.common.compress.CompressedXContent;
1716
import org.elasticsearch.common.settings.Settings;
1817
import org.elasticsearch.common.time.DateFormatter;
@@ -39,6 +38,7 @@
3938
import java.util.List;
4039
import java.util.Locale;
4140
import java.util.Map;
41+
import java.util.function.BiConsumer;
4242

4343
import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_ROUTING_PATH;
4444

@@ -66,7 +66,7 @@ public Settings getAdditionalIndexSettings(
6666
Instant resolvedAt,
6767
Settings indexTemplateAndCreateRequestSettings,
6868
List<CompressedXContent> combinedTemplateMappings,
69-
ImmutableOpenMap.Builder<String, Map<String, String>> extraCustomMetadata
69+
BiConsumer<String, Map<String, String>> extraCustomMetadata
7070
) {
7171
if (dataStreamName != null) {
7272
DataStream dataStream = projectMetadata.dataStreams().get(dataStreamName);

modules/data-streams/src/main/java/org/elasticsearch/datastreams/action/TransportGetDataStreamsAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ static IndexMode resolveMode(
207207
Instant.now(),
208208
settings,
209209
List.of(),
210-
ImmutableOpenMap.builder()
210+
ImmutableOpenMap.builder()::put
211211
);
212212
var rawMode = addlSettinsg.get(IndexSettings.MODE.getKey());
213213
if (rawMode != null) {

modules/data-streams/src/test/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProviderTests.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.elasticsearch.cluster.metadata.DataStreamTestHelper;
1313
import org.elasticsearch.cluster.metadata.IndexMetadata;
1414
import org.elasticsearch.cluster.metadata.ProjectMetadata;
15-
import org.elasticsearch.common.collect.ImmutableOpenMap;
1615
import org.elasticsearch.common.compress.CompressedXContent;
1716
import org.elasticsearch.common.settings.Settings;
1817
import org.elasticsearch.core.Strings;
@@ -84,7 +83,7 @@ public void testGetAdditionalIndexSettings() throws Exception {
8483
now,
8584
settings,
8685
List.of(new CompressedXContent(mapping)),
87-
ImmutableOpenMap.builder()
86+
(k, v) -> {}
8887
);
8988
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
9089
// (in production the index.mode setting is usually provided in an index or component template)
@@ -130,7 +129,7 @@ public void testGetAdditionalIndexSettingsIndexRoutingPathAlreadyDefined() throw
130129
now,
131130
settings,
132131
List.of(new CompressedXContent(mapping)),
133-
ImmutableOpenMap.builder()
132+
(k, v) -> {}
134133
);
135134
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
136135
// (in production the index.mode setting is usually provided in an index or component template)
@@ -201,7 +200,7 @@ public void testGetAdditionalIndexSettingsMappingsMerging() throws Exception {
201200
now,
202201
settings,
203202
List.of(new CompressedXContent(mapping1), new CompressedXContent(mapping2), new CompressedXContent(mapping3)),
204-
ImmutableOpenMap.builder()
203+
(k, v) -> {}
205204
);
206205
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
207206
// (in production the index.mode setting is usually provided in an index or component template)
@@ -227,7 +226,7 @@ public void testGetAdditionalIndexSettingsNoMappings() {
227226
now,
228227
settings,
229228
List.of(),
230-
ImmutableOpenMap.builder()
229+
(k, v) -> {}
231230
);
232231
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
233232
// (in production the index.mode setting is usually provided in an index or component template)
@@ -253,7 +252,7 @@ public void testGetAdditionalIndexSettingsLookAheadTime() throws Exception {
253252
now,
254253
settings,
255254
List.of(new CompressedXContent("{}")),
256-
ImmutableOpenMap.builder()
255+
(k, v) -> {}
257256
);
258257
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
259258
// (in production the index.mode setting is usually provided in an index or component template)
@@ -279,7 +278,7 @@ public void testGetAdditionalIndexSettingsLookBackTime() throws Exception {
279278
now,
280279
settings,
281280
List.of(new CompressedXContent("{}")),
282-
ImmutableOpenMap.builder()
281+
(k, v) -> {}
283282
);
284283
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
285284
// (in production the index.mode setting is usually provided in an index or component template)
@@ -312,7 +311,7 @@ public void testGetAdditionalIndexSettingsDataStreamAlreadyCreated() throws Exce
312311
now,
313312
settings,
314313
List.of(new CompressedXContent("{}")),
315-
ImmutableOpenMap.builder()
314+
(k, v) -> {}
316315
);
317316
assertThat(result.size(), equalTo(2));
318317
assertThat(result.get(IndexSettings.TIME_SERIES_START_TIME.getKey()), equalTo(FORMATTER.format(currentEnd)));
@@ -350,7 +349,7 @@ public void testGetAdditionalIndexSettingsDataStreamAlreadyCreatedTimeSettingsMi
350349
now,
351350
settings,
352351
null,
353-
ImmutableOpenMap.builder()
352+
(k, v) -> {}
354353
)
355354
);
356355
assertThat(
@@ -377,7 +376,7 @@ public void testGetAdditionalIndexSettingsNonTsdbTemplate() {
377376
Instant.ofEpochMilli(1L),
378377
settings,
379378
null,
380-
ImmutableOpenMap.builder()
379+
(k, v) -> {}
381380
);
382381
assertThat(result.size(), equalTo(0));
383382
}
@@ -400,7 +399,7 @@ public void testGetAdditionalIndexSettingsMigrateToTsdb() {
400399
now,
401400
settings,
402401
List.of(),
403-
ImmutableOpenMap.builder()
402+
(k, v) -> {}
404403
);
405404
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
406405
// (in production the index.mode setting is usually provided in an index or component template)
@@ -431,7 +430,7 @@ public void testGetAdditionalIndexSettingsDowngradeFromTsdb() {
431430
Instant.ofEpochMilli(1L),
432431
settings,
433432
List.of(),
434-
ImmutableOpenMap.builder()
433+
(k, v) -> {}
435434
);
436435
assertThat(result.size(), equalTo(0));
437436
}
@@ -711,7 +710,7 @@ private Settings generateTsdbSettings(String mapping, Instant now) throws IOExce
711710
now,
712711
settings,
713712
List.of(new CompressedXContent(mapping)),
714-
ImmutableOpenMap.builder()
713+
(k, v) -> {}
715714
);
716715
// The index.time_series.end_time setting requires index.mode to be set to time_series adding it here so that we read this setting:
717716
// (in production the index.mode setting is usually provided in an index or component template)

modules/data-streams/src/test/java/org/elasticsearch/datastreams/action/TransportGetDataStreamsActionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
2323
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2424
import org.elasticsearch.cluster.metadata.Template;
25-
import org.elasticsearch.common.collect.ImmutableOpenMap;
2625
import org.elasticsearch.common.compress.CompressedXContent;
2726
import org.elasticsearch.common.settings.ClusterSettings;
2827
import org.elasticsearch.common.settings.Settings;
@@ -44,6 +43,7 @@
4443
import java.util.List;
4544
import java.util.Map;
4645
import java.util.Set;
46+
import java.util.function.BiConsumer;
4747
import java.util.stream.Collectors;
4848

4949
import static org.elasticsearch.cluster.metadata.DataStream.getDefaultBackingIndexName;
@@ -503,7 +503,7 @@ public Settings getAdditionalIndexSettings(
503503
Instant resolvedAt,
504504
Settings indexTemplateAndCreateRequestSettings,
505505
List<CompressedXContent> combinedTemplateMappings,
506-
ImmutableOpenMap.Builder<String, Map<String, String>> extraCustomMetadata
506+
BiConsumer<String, Map<String, String>> extraCustomMetadata
507507
) {
508508
return Settings.builder().put("index.mode", IndexMode.LOOKUP).build();
509509
}

server/src/main/java/org/elasticsearch/action/admin/indices/template/post/TransportSimulateIndexTemplateAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ public static Template resolveTemplate(
287287
now,
288288
templateSettings,
289289
mappings,
290-
ImmutableOpenMap.builder()
290+
ImmutableOpenMap.builder()::put
291291
);
292292
MetadataCreateIndexService.validateAdditionalSettings(provider, result, additionalSettings);
293293
dummySettings.put(result);

server/src/main/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1163,7 +1163,7 @@ static Settings aggregateIndexSettings(
11631163
resolvedAt,
11641164
templateAndRequestSettings,
11651165
combinedTemplateMappings,
1166-
customMetadataBuilder
1166+
customMetadataBuilder::put
11671167
);
11681168
validateAdditionalSettings(provider, newAdditionalSettings, additionalIndexSettings);
11691169
additionalIndexSettings.put(newAdditionalSettings);

server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexTemplateService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -800,7 +800,7 @@ void validateIndexTemplateV2(ProjectMetadata projectMetadata, String name, Compo
800800
now,
801801
combinedSettings,
802802
combinedMappings,
803-
customMetadataBuilder
803+
customMetadataBuilder::put
804804
);
805805
MetadataCreateIndexService.validateAdditionalSettings(provider, newAdditionalSettings, finalSettings);
806806
finalSettings.put(newAdditionalSettings);

server/src/main/java/org/elasticsearch/cluster/metadata/MetadataMappingService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,10 @@ private ClusterState applyRequest(
225225
indexMetadataBuilder.mappingVersion(1 + indexMetadataBuilder.mappingVersion())
226226
.mappingsUpdatedVersion(IndexVersion.current());
227227
for (IndexSettingProvider provider : indexSettingProviders.getIndexSettingProviders()) {
228-
Settings newAdditionalSettings = provider.onUpdateMappings(indexMetadata, customMetadataBuilder, docMapper);
229-
if (newAdditionalSettings.isEmpty() == false) {
228+
Settings.Builder newAdditionalSettingsBuilder = Settings.builder();
229+
provider.onUpdateMappings(indexMetadata, docMapper, newAdditionalSettingsBuilder, customMetadataBuilder::put);
230+
if (newAdditionalSettingsBuilder.keys().isEmpty() == false) {
231+
Settings newAdditionalSettings = newAdditionalSettingsBuilder.build();
230232
MetadataCreateIndexService.validateAdditionalSettings(provider, newAdditionalSettings, additionalIndexSettings);
231233
additionalIndexSettings.put(newAdditionalSettings);
232234
updatedSettings = true;

server/src/main/java/org/elasticsearch/cluster/routing/allocation/DataTier.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.elasticsearch.cluster.node.DiscoveryNode;
1717
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
1818
import org.elasticsearch.common.Strings;
19-
import org.elasticsearch.common.collect.ImmutableOpenMap;
2019
import org.elasticsearch.common.compress.CompressedXContent;
2120
import org.elasticsearch.common.settings.Setting;
2221
import org.elasticsearch.common.settings.Setting.Property;
@@ -34,6 +33,7 @@
3433
import java.util.List;
3534
import java.util.Map;
3635
import java.util.Set;
36+
import java.util.function.BiConsumer;
3737
import java.util.function.Function;
3838

3939
/**
@@ -226,14 +226,14 @@ public static class DefaultHotAllocationSettingProvider implements IndexSettingP
226226

227227
@Override
228228
public Settings getAdditionalIndexSettings(
229-
String indexName,
230-
@Nullable String dataStreamName,
231-
IndexMode templateIndexMode,
232-
ProjectMetadata projectMetadata,
233-
Instant resolvedAt,
234-
Settings indexTemplateAndCreateRequestSettings,
235-
List<CompressedXContent> combinedTemplateMappings,
236-
ImmutableOpenMap.Builder<String, Map<String, String>> extraCustomMetadata
229+
String indexName,
230+
@Nullable String dataStreamName,
231+
IndexMode templateIndexMode,
232+
ProjectMetadata projectMetadata,
233+
Instant resolvedAt,
234+
Settings indexTemplateAndCreateRequestSettings,
235+
List<CompressedXContent> combinedTemplateMappings,
236+
BiConsumer<String, Map<String, String>> extraCustomMetadata
237237
) {
238238
Set<String> settings = indexTemplateAndCreateRequestSettings.keySet();
239239
if (settings.contains(TIER_PREFERENCE)) {

server/src/main/java/org/elasticsearch/common/settings/Settings.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,11 @@ public Builder putList(String setting, List<String> values) {
11781178
return this;
11791179
}
11801180

1181+
public <T> Builder put(Setting<T> setting, T value) {
1182+
map.put(setting.getKey(), value);
1183+
return this;
1184+
}
1185+
11811186
/**
11821187
* Sets all the provided settings including secure settings
11831188
*/

0 commit comments

Comments
 (0)