Skip to content

Commit 9b6f449

Browse files
committed
Expose ImmutableOpenMap.values as a Java Collection (#78529)
#76921 added support for getting entries as a Java stream, #77897 added the ability to get keys as a Set. This PR adds the values method which returns a Collection to bring the ImmutableOpenMap API closer to java.util.Map (cherry picked from commit cb73e3f)
1 parent aa27fad commit 9b6f449

File tree

91 files changed

+372
-432
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+372
-432
lines changed

client/rest-high-level/src/test/java/org/elasticsearch/client/indices/GetIndexTemplatesResponseTests.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import java.util.ArrayList;
3131
import java.util.Arrays;
3232
import java.util.Comparator;
33-
import java.util.Iterator;
3433
import java.util.List;
3534
import java.util.Locale;
3635
import java.util.Map;
@@ -107,10 +106,10 @@ public void testParsingFromEsResponse() throws IOException {
107106
assertThat(result.mappings().sourceAsMap(), equalTo(expectedMapping.get("_doc")));
108107

109108
assertThat(result.aliases().size(), equalTo(esIMD.aliases().size()));
110-
List<AliasMetadata> expectedAliases = Arrays.stream(esIMD.aliases().values().toArray(AliasMetadata.class))
109+
List<AliasMetadata> expectedAliases = esIMD.aliases().values().stream()
111110
.sorted(Comparator.comparing(AliasMetadata::alias))
112111
.collect(Collectors.toList());
113-
List<AliasMetadata> actualAliases = Arrays.stream(result.aliases().values().toArray(AliasMetadata.class))
112+
List<AliasMetadata> actualAliases = result.aliases().values().stream()
114113
.sorted(Comparator.comparing(AliasMetadata::alias))
115114
.collect(Collectors.toList());
116115
for (int j = 0; j < result.aliases().size(); j++) {
@@ -192,8 +191,7 @@ static void toXContent(GetIndexTemplatesResponse response, XContentBuilder build
192191

193192
serverTemplateBuilder.patterns(clientITMD.patterns());
194193

195-
Iterator<AliasMetadata> aliases = clientITMD.aliases().valuesIt();
196-
aliases.forEachRemaining((a)->serverTemplateBuilder.putAlias(a));
194+
clientITMD.aliases().values().forEach(serverTemplateBuilder::putAlias);
197195

198196
serverTemplateBuilder.settings(clientITMD.settings());
199197
serverTemplateBuilder.order(clientITMD.order());

modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@
1616
import org.elasticsearch.action.ingest.SimulatePipelineRequest;
1717
import org.elasticsearch.action.ingest.SimulatePipelineResponse;
1818
import org.elasticsearch.action.search.SearchResponse;
19+
import org.elasticsearch.cluster.node.DiscoveryNode;
1920
import org.elasticsearch.common.bytes.BytesReference;
20-
import org.elasticsearch.core.Set;
2121
import org.elasticsearch.common.settings.Settings;
2222
import org.elasticsearch.common.xcontent.XContentBuilder;
2323
import org.elasticsearch.common.xcontent.XContentType;
2424
import org.elasticsearch.common.xcontent.json.JsonXContent;
25+
import org.elasticsearch.core.Set;
2526
import org.elasticsearch.core.SuppressForbidden;
2627
import org.elasticsearch.core.TimeValue;
2728
import org.elasticsearch.env.Environment;
@@ -47,7 +48,6 @@
4748
import java.util.concurrent.TimeUnit;
4849
import java.util.stream.Collectors;
4950
import java.util.stream.Stream;
50-
import java.util.stream.StreamSupport;
5151
import java.util.zip.GZIPInputStream;
5252

5353
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
@@ -370,10 +370,9 @@ private void putPipeline() throws IOException {
370370
}
371371

372372
private List<Path> getGeoIpTmpDirs() throws IOException {
373-
final java.util.Set<String> ids =
374-
StreamSupport.stream(clusterService().state().nodes().getDataNodes().values().spliterator(), false)
375-
.map(c -> c.value.getId())
376-
.collect(Collectors.toSet());
373+
final java.util.Set<String> ids = clusterService().state().nodes().getDataNodes().values().stream()
374+
.map(DiscoveryNode::getId)
375+
.collect(Collectors.toSet());
377376
// All nodes share the same geoip base dir in the shared tmp dir:
378377
Path geoipBaseTmpDir = internalCluster().getDataNodeInstance(Environment.class).tmpFile().resolve("geoip-databases");
379378
assertThat(Files.exists(geoipBaseTmpDir), is(true));

server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/ShrinkIndexIT.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
import org.elasticsearch.common.Priority;
4040
import org.elasticsearch.common.collect.ImmutableOpenMap;
4141
import org.elasticsearch.common.settings.Settings;
42-
import org.elasticsearch.core.TimeValue;
4342
import org.elasticsearch.common.xcontent.XContentType;
43+
import org.elasticsearch.core.TimeValue;
4444
import org.elasticsearch.index.Index;
4545
import org.elasticsearch.index.IndexService;
4646
import org.elasticsearch.index.engine.SegmentsStats;
@@ -86,7 +86,7 @@ public void testCreateShrinkIndexToN() {
8686
ImmutableOpenMap<String, DiscoveryNode> dataNodes = client().admin().cluster().prepareState().get().getState().nodes()
8787
.getDataNodes();
8888
assertTrue("at least 2 nodes but was: " + dataNodes.size(), dataNodes.size() >= 2);
89-
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(DiscoveryNode.class);
89+
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(new DiscoveryNode[0]);
9090
String mergeNode = discoveryNodes[0].getName();
9191
// ensure all shards are allocated otherwise the ensure green below might not succeed since we require the merge node
9292
// if we change the setting too quickly we will end up with one replica unassigned which can't be assigned anymore due
@@ -159,7 +159,7 @@ public void testShrinkIndexPrimaryTerm() throws Exception {
159159
final ImmutableOpenMap<String, DiscoveryNode> dataNodes =
160160
client().admin().cluster().prepareState().get().getState().nodes().getDataNodes();
161161
assertThat(dataNodes.size(), greaterThanOrEqualTo(2));
162-
final DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(DiscoveryNode.class);
162+
final DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(new DiscoveryNode[0]);
163163
final String mergeNode = discoveryNodes[0].getName();
164164
// This needs more than the default timeout if a large number of shards were created.
165165
ensureGreen(TimeValue.timeValueSeconds(120));
@@ -239,7 +239,7 @@ public void testCreateShrinkIndex() {
239239
ImmutableOpenMap<String, DiscoveryNode> dataNodes =
240240
client().admin().cluster().prepareState().get().getState().nodes().getDataNodes();
241241
assertTrue("at least 2 nodes but was: " + dataNodes.size(), dataNodes.size() >= 2);
242-
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(DiscoveryNode.class);
242+
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(new DiscoveryNode[0]);
243243
// ensure all shards are allocated otherwise the ensure green below might not succeed since we require the merge node
244244
// if we change the setting too quickly we will end up with one replica unassigned which can't be assigned anymore due
245245
// to the require._name below.
@@ -340,7 +340,7 @@ public void testCreateShrinkIndexFails() throws Exception {
340340
ImmutableOpenMap<String, DiscoveryNode> dataNodes = client().admin().cluster().prepareState().get().getState().nodes()
341341
.getDataNodes();
342342
assertTrue("at least 2 nodes but was: " + dataNodes.size(), dataNodes.size() >= 2);
343-
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(DiscoveryNode.class);
343+
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(new DiscoveryNode[0]);
344344
String spareNode = discoveryNodes[0].getName();
345345
String mergeNode = discoveryNodes[1].getName();
346346
// ensure all shards are allocated otherwise the ensure green below might not succeed since we require the merge node
@@ -419,7 +419,7 @@ public void testCreateShrinkWithIndexSort() throws Exception {
419419
ImmutableOpenMap<String, DiscoveryNode> dataNodes = client().admin().cluster().prepareState().get().getState().nodes()
420420
.getDataNodes();
421421
assertTrue("at least 2 nodes but was: " + dataNodes.size(), dataNodes.size() >= 2);
422-
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(DiscoveryNode.class);
422+
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(new DiscoveryNode[0]);
423423
String mergeNode = discoveryNodes[0].getName();
424424
// ensure all shards are allocated otherwise the ensure green below might not succeed since we require the merge node
425425
// if we change the setting too quickly we will end up with one replica unassigned which can't be assigned anymore due
@@ -481,7 +481,7 @@ public void testShrinkCommitsMergeOnIdle() throws Exception {
481481
client().admin().indices().prepareFlush("source").get();
482482
ImmutableOpenMap<String, DiscoveryNode> dataNodes =
483483
client().admin().cluster().prepareState().get().getState().nodes().getDataNodes();
484-
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(DiscoveryNode.class);
484+
DiscoveryNode[] discoveryNodes = dataNodes.values().toArray(new DiscoveryNode[0]);
485485
// ensure all shards are allocated otherwise the ensure green below might not succeed since we require the merge node
486486
// if we change the setting too quickly we will end up with one replica unassigned which can't be assigned anymore due
487487
// to the require._name below.

server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
package org.elasticsearch.cluster;
1010

11-
import com.carrotsearch.hppc.cursors.ObjectCursor;
1211
import org.elasticsearch.ElasticsearchException;
1312
import org.elasticsearch.action.ActionListener;
1413
import org.elasticsearch.action.ActionRequest;
@@ -159,20 +158,20 @@ public void testClusterInfoServiceCollectsInformation() {
159158
assertNotNull(shardDataSetSizes);
160159
assertThat("some usages are populated", leastUsages.values().size(), Matchers.equalTo(2));
161160
assertThat("some shard sizes are populated", shardSizes.values().size(), greaterThan(0));
162-
for (ObjectCursor<DiskUsage> usage : leastUsages.values()) {
163-
logger.info("--> usage: {}", usage.value);
164-
assertThat("usage has be retrieved", usage.value.getFreeBytes(), greaterThan(0L));
161+
for (DiskUsage usage : leastUsages.values()) {
162+
logger.info("--> usage: {}", usage);
163+
assertThat("usage has be retrieved", usage.getFreeBytes(), greaterThan(0L));
165164
}
166-
for (ObjectCursor<DiskUsage> usage : mostUsages.values()) {
167-
logger.info("--> usage: {}", usage.value);
168-
assertThat("usage has be retrieved", usage.value.getFreeBytes(), greaterThan(0L));
165+
for (DiskUsage usage : mostUsages.values()) {
166+
logger.info("--> usage: {}", usage);
167+
assertThat("usage has be retrieved", usage.getFreeBytes(), greaterThan(0L));
169168
}
170-
for (ObjectCursor<Long> size : shardSizes.values()) {
171-
logger.info("--> shard size: {}", size.value);
172-
assertThat("shard size is greater than 0", size.value, greaterThanOrEqualTo(0L));
169+
for (Long size : shardSizes.values()) {
170+
logger.info("--> shard size: {}", size);
171+
assertThat("shard size is greater than 0", size, greaterThanOrEqualTo(0L));
173172
}
174-
for (ObjectCursor<Long> size : shardDataSetSizes.values()) {
175-
assertThat("shard data set size is greater than 0", size.value, greaterThanOrEqualTo(0L));
173+
for (Long size : shardDataSetSizes.values()) {
174+
assertThat("shard data set size is greater than 0", size, greaterThanOrEqualTo(0L));
176175
}
177176

178177
ClusterService clusterService = internalTestCluster.getInstance(ClusterService.class, internalTestCluster.getMasterName());

server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/RemoveReplicaPriorityIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
package org.elasticsearch.cluster.routing;
1010

1111
import org.elasticsearch.cluster.metadata.IndexMetadata;
12+
import org.elasticsearch.cluster.node.DiscoveryNode;
1213
import org.elasticsearch.common.settings.Settings;
1314
import org.elasticsearch.common.util.CollectionUtils;
1415
import org.elasticsearch.plugins.Plugin;
@@ -19,7 +20,6 @@
1920
import java.util.Collection;
2021
import java.util.concurrent.atomic.AtomicBoolean;
2122
import java.util.stream.Collectors;
22-
import java.util.stream.StreamSupport;
2323

2424
import static org.elasticsearch.cluster.routing.ShardRoutingState.INITIALIZING;
2525
import static org.elasticsearch.cluster.routing.ShardRoutingState.STARTED;
@@ -53,9 +53,9 @@ public void testReplicaRemovalPriority() throws Exception {
5353
});
5454
}
5555

56-
final String dataNodeIdFilter = StreamSupport.stream(client().admin().cluster().prepareState().clear().setNodes(true).get()
57-
.getState().nodes().getDataNodes().values().spliterator(), false)
58-
.map(c -> c.value.getId()).limit(3).collect(Collectors.joining(","));
56+
final String dataNodeIdFilter = client().admin().cluster().prepareState().clear().setNodes(true).get()
57+
.getState().nodes().getDataNodes().values().stream()
58+
.map(DiscoveryNode::getId).limit(3).collect(Collectors.joining(","));
5959
final String excludedDataNodeId = dataNodeIdFilter.substring(0, dataNodeIdFilter.indexOf(','));
6060

6161
createIndex(INDEX_NAME, Settings.builder()

server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/decider/DiskThresholdDeciderIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import java.util.Locale;
4141
import java.util.Set;
4242
import java.util.concurrent.TimeUnit;
43-
import java.util.stream.StreamSupport;
4443

4544
import static org.elasticsearch.index.store.Store.INDEX_STORE_STATS_REFRESH_INTERVAL_SETTING;
4645
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
@@ -206,8 +205,8 @@ private void refreshDiskUsage() {
206205
ClusterInfoServiceUtils.refresh(((InternalClusterInfoService) clusterInfoService));
207206
// if the nodes were all under the low watermark already (but unbalanced) then a change in the disk usage doesn't trigger a reroute
208207
// even though it's now possible to achieve better balance, so we have to do an explicit reroute. TODO fix this?
209-
if (StreamSupport.stream(clusterInfoService.getClusterInfo().getNodeMostAvailableDiskUsages().values().spliterator(), false)
210-
.allMatch(cur -> cur.value.getFreeBytes() > WATERMARK_BYTES)) {
208+
if (clusterInfoService.getClusterInfo().getNodeMostAvailableDiskUsages().values().stream()
209+
.allMatch(e -> e.getFreeBytes() > WATERMARK_BYTES)) {
211210
assertAcked(client().admin().cluster().prepareReroute());
212211
}
213212

server/src/internalClusterTest/java/org/elasticsearch/gateway/RecoveryFromGatewayIT.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
package org.elasticsearch.gateway;
1010

11-
import com.carrotsearch.hppc.cursors.ObjectCursor;
1211
import org.elasticsearch.action.admin.cluster.configuration.AddVotingConfigExclusionsAction;
1312
import org.elasticsearch.action.admin.cluster.configuration.AddVotingConfigExclusionsRequest;
1413
import org.elasticsearch.action.admin.cluster.configuration.ClearVotingConfigExclusionsAction;
@@ -134,8 +133,7 @@ private Map<String, long[]> assertAndCapturePrimaryTerms(Map<String, long[]> pre
134133
}
135134
final Map<String, long[]> result = new HashMap<>();
136135
final ClusterState state = client().admin().cluster().prepareState().get().getState();
137-
for (ObjectCursor<IndexMetadata> cursor : state.metadata().indices().values()) {
138-
final IndexMetadata indexMetadata = cursor.value;
136+
for (IndexMetadata indexMetadata : state.metadata().indices().values()) {
139137
final String index = indexMetadata.getIndex().getName();
140138
final long[] previous = previousTerms.get(index);
141139
final long[] current = IntStream.range(0, indexMetadata.getNumberOfShards()).mapToLong(indexMetadata::primaryTerm).toArray();

server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/IndexPrimaryRelocationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void run() {
5858
indexingThread.start();
5959

6060
ClusterState initialState = client().admin().cluster().prepareState().get().getState();
61-
DiscoveryNode[] dataNodes = initialState.getNodes().getDataNodes().values().toArray(DiscoveryNode.class);
61+
DiscoveryNode[] dataNodes = initialState.getNodes().getDataNodes().values().toArray(new DiscoveryNode[0]);
6262
DiscoveryNode relocationSource = initialState.getNodes().getDataNodes().get(initialState.getRoutingTable()
6363
.shardRoutingTable("test", 0).primaryShard().currentNodeId());
6464
for (int i = 0; i < RELOCATION_COUNT; i++) {

server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseIndexIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.elasticsearch.common.settings.Settings;
2424
import org.elasticsearch.common.unit.ByteSizeUnit;
2525
import org.elasticsearch.common.unit.ByteSizeValue;
26-
import org.elasticsearch.common.util.set.Sets;
2726
import org.elasticsearch.index.IndexNotFoundException;
2827
import org.elasticsearch.index.IndexService;
2928
import org.elasticsearch.index.IndexSettings;
@@ -382,8 +381,8 @@ public void testNoopPeerRecoveriesWhenIndexClosed() throws Exception {
382381
public void testRecoverExistingReplica() throws Exception {
383382
final String indexName = "test-recover-existing-replica";
384383
internalCluster().ensureAtLeastNumDataNodes(2);
385-
List<String> dataNodes = randomSubsetOf(2, Sets.newHashSet(
386-
clusterService().state().nodes().getDataNodes().valuesIt()).stream().map(DiscoveryNode::getName).collect(Collectors.toSet()));
384+
List<String> dataNodes = randomSubsetOf(2, clusterService().state().nodes().getDataNodes().values()
385+
.stream().map(DiscoveryNode::getName).collect(Collectors.toSet()));
387386
createIndex(indexName, Settings.builder()
388387
.put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1)
389388
.put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1)

server/src/internalClusterTest/java/org/elasticsearch/routing/PartitionedRoutingIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void testShrinking() throws Exception {
8585
client().admin().indices().prepareUpdateSettings(index)
8686
.setSettings(Settings.builder()
8787
.put("index.routing.allocation.require._name", client().admin().cluster().prepareState().get().getState().nodes()
88-
.getDataNodes().values().toArray(DiscoveryNode.class)[0].getName())
88+
.getDataNodes().values().toArray(new DiscoveryNode[0])[0].getName())
8989
.put("index.blocks.write", true)).get();
9090
ensureGreen();
9191

0 commit comments

Comments
 (0)