diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-04-11 09:12:53 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-04-11 09:12:53 +0200 |
commit | 42a9f71995b99044652bddf52ad869a824d98ddc (patch) | |
tree | 8766842d727e4a766c39d19dab6eb756ed06f829 /clustercontroller-core | |
parent | ed76cd45f86c8af9431860a9ac7c40fc59fb9e3c (diff) |
Unify on Map.of
Diffstat (limited to 'clustercontroller-core')
7 files changed, 22 insertions, 31 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java index e0ddf16ab5f..7991e1c34b6 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.clustercontroller.core; import com.yahoo.vdslib.state.ClusterState; import com.yahoo.vdslib.state.Node; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -47,7 +46,7 @@ public class AnnotatedClusterState implements Cloneable { Map<Node, NodeStateReason> nodeStateReasons) { this.clusterState = Objects.requireNonNull(clusterState, "Cluster state cannot be null"); this.clusterStateReason = Objects.requireNonNull(clusterStateReason, "Cluster state reason cannot be null"); - this.nodeStateReasons = Objects.requireNonNull(nodeStateReasons, "Node state reasons cannot be null"); + this.nodeStateReasons = Map.copyOf(Objects.requireNonNull(nodeStateReasons, "Node state reasons cannot be null")); } public static AnnotatedClusterState emptyState() { @@ -59,7 +58,7 @@ public class AnnotatedClusterState implements Cloneable { } static Map<Node, NodeStateReason> emptyNodeStateReasons() { - return Collections.emptyMap(); + return Map.of(); } public ClusterState getClusterState() { @@ -67,7 +66,7 @@ public class AnnotatedClusterState implements Cloneable { } public Map<Node, NodeStateReason> getNodeStateReasons() { - return Collections.unmodifiableMap(nodeStateReasons); + return nodeStateReasons; } public Optional<ClusterStateReason> getClusterStateReason() { diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java index 53a39968720..d99d46c11ce 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.clustercontroller.core; import com.yahoo.vdslib.state.ClusterState; import java.util.Arrays; -import java.util.Collections; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -56,7 +55,7 @@ public class ClusterStateBundle { public FeedBlock(boolean blockFeedInCluster, String description) { this.blockFeedInCluster = blockFeedInCluster; this.description = description; - this.concreteExhaustions = Collections.emptySet(); + this.concreteExhaustions = Set.of(); } public FeedBlock(boolean blockFeedInCluster, String description, @@ -165,14 +164,10 @@ public class ClusterStateBundle { return ClusterStateBundle.ofBaselineOnly(baselineState, feedBlock, deferredActivation); } Map<String, AnnotatedClusterState> derived; - if (explicitDerivedStates != null) { - derived = explicitDerivedStates; - } else { - derived = bucketSpaces.stream() - .collect(Collectors.toMap( - Function.identity(), - s -> stateDeriver.derivedFrom(baselineState, s))); - } + derived = Objects.requireNonNullElseGet(explicitDerivedStates, () -> bucketSpaces.stream() + .collect(Collectors.toUnmodifiableMap( + Function.identity(), + s -> stateDeriver.derivedFrom(baselineState, s)))); return new ClusterStateBundle(baselineState, derived, feedBlock, deferredActivation); } } @@ -186,7 +181,7 @@ public class ClusterStateBundle { FeedBlock feedBlock, boolean deferredActivation) { this.baselineState = baselineState; - this.derivedBucketSpaceStates = Collections.unmodifiableMap(derivedBucketSpaceStates); + this.derivedBucketSpaceStates = Map.copyOf(derivedBucketSpaceStates); this.feedBlock = feedBlock; this.deferredActivation = deferredActivation; } @@ -209,11 +204,11 @@ public class ClusterStateBundle { public static ClusterStateBundle ofBaselineOnly(AnnotatedClusterState baselineState, FeedBlock feedBlock, boolean deferredActivation) { - return new ClusterStateBundle(baselineState, Collections.emptyMap(), feedBlock, deferredActivation); + return new ClusterStateBundle(baselineState, Map.of(), feedBlock, deferredActivation); } public static ClusterStateBundle ofBaselineOnly(AnnotatedClusterState baselineState) { - return new ClusterStateBundle(baselineState, Collections.emptyMap()); + return new ClusterStateBundle(baselineState, Map.of()); } public static ClusterStateBundle empty() { @@ -238,7 +233,7 @@ public class ClusterStateBundle { AnnotatedClusterState clonedBaseline = baselineState.cloneWithClusterState( mapper.apply(baselineState.getClusterState().clone())); Map<String, AnnotatedClusterState> clonedDerived = derivedBucketSpaceStates.entrySet().stream() - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue().cloneWithClusterState( + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().cloneWithClusterState( mapper.apply(e.getValue().getClusterState().clone())))); return new ClusterStateBundle(clonedBaseline, clonedDerived, feedBlock, deferredActivation); } diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java index a0efaa70b58..44b2c8833db 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java @@ -10,7 +10,6 @@ import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory; import java.time.Duration; import java.util.Collection; -import java.util.Collections; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -433,7 +432,7 @@ public class FleetControllerOptions { private double minMergeCompletionRatio = 1.0; private int maxDivergentNodesPrintedInTaskErrorMessages = 10; private boolean clusterFeedBlockEnabled = false; - private Map<String, Double> clusterFeedBlockLimit = Collections.emptyMap(); + private Map<String, Double> clusterFeedBlockLimit = Map.of(); private double clusterFeedBlockNoiseLevel = 0.01; private int maxNumberOfGroupsAllowedToBeDown = 1; private Function<FleetControllerContext, DatabaseFactory> dbFactoryFn = ZooKeeperDatabaseFactory::new; diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java index 12db5c27375..3a6b9a635fa 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java @@ -41,11 +41,10 @@ public class SlimeClusterStateBundleCodec implements ClusterStateBundleCodec, En // TODO add another function that is not toString for this..! states.setString("baseline", stateBundle.getBaselineClusterState().toString()); Cursor spaces = states.setObject("spaces"); - stateBundle.getDerivedBucketSpaceStates().entrySet() - .forEach(entry -> spaces.setString(entry.getKey(), entry.getValue().toString())); + stateBundle.getDerivedBucketSpaceStates().forEach((key, value) -> spaces.setString(key, value.toString())); // Only bother to encode feed block state if cluster is actually blocked - if (stateBundle.getFeedBlock().map(fb -> fb.blockFeedInCluster()).orElse(false)) { + if (stateBundle.getFeedBlock().map(ClusterStateBundle.FeedBlock::blockFeedInCluster).orElse(false)) { Cursor feedBlock = root.setObject("feed-block"); feedBlock.setBool("block-feed-in-cluster", true); feedBlock.setString("description", stateBundle.getFeedBlock().get().getDescription()); diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java index 7c39135291c..8280706bcd2 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java @@ -14,13 +14,13 @@ public class ClusterStateBundleUtil { public static ClusterStateBundle.Builder makeBundleBuilder(String baselineState, StateMapping... bucketSpaceStates) { return ClusterStateBundle.builder(AnnotatedClusterState.withoutAnnotations(ClusterState.stateFromString(baselineState))) - .explicitDerivedStates(Stream.of(bucketSpaceStates).collect(Collectors.toMap(sm -> sm.bucketSpace, + .explicitDerivedStates(Stream.of(bucketSpaceStates).collect(Collectors.toUnmodifiableMap(sm -> sm.bucketSpace, sm -> AnnotatedClusterState.withoutAnnotations(sm.state)))); } public static ClusterStateBundle makeBundle(String baselineState, StateMapping... bucketSpaceStates) { return ClusterStateBundle.of(AnnotatedClusterState.withoutAnnotations(ClusterState.stateFromString(baselineState)), - Stream.of(bucketSpaceStates).collect(Collectors.toMap(sm -> sm.bucketSpace, + Stream.of(bucketSpaceStates).collect(Collectors.toUnmodifiableMap(sm -> sm.bucketSpace, sm -> AnnotatedClusterState.withoutAnnotations(sm.state)))); } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java index 175b7de8f4f..8048e77b05c 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java @@ -11,7 +11,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.io.IOException; -import java.util.Collections; import java.util.Map; import java.util.TreeMap; @@ -53,7 +52,7 @@ public class ContentClusterHtmlRendererTest { statsAggregator, 1.0, 10, - Collections.emptyMap(), + Map.of(), eventLog, "pathPrefix", "name"); diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java index b4246806079..168fe6521d5 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java @@ -4,7 +4,7 @@ package com.yahoo.vespa.clustercontroller.core; import org.junit.jupiter.api.Test; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -46,20 +46,20 @@ public class ResourceUsageStatsTest { @Test void nodes_above_limit_is_zero_without_feed_block_status() { - var stats = ResourceUsageStats.calculateFrom(Collections.emptyList(), Collections.emptyMap(), Optional.empty()); + var stats = ResourceUsageStats.calculateFrom(List.of(), Map.of(), Optional.empty()); assertEquals(0, stats.getNodesAboveLimit()); } @Test void nodes_above_limit_is_equal_to_node_resource_exhaustions() { - var stats = ResourceUsageStats.calculateFrom(Collections.emptyList(), Collections.emptyMap(), + var stats = ResourceUsageStats.calculateFrom(List.of(), Map.of(), createFeedBlock(exhaustion(1, "disk"), exhaustion(2, "memory"))); assertEquals(2, stats.getNodesAboveLimit()); } @Test void nodes_above_limit_counts_each_node_only_once() { - var stats = ResourceUsageStats.calculateFrom(Collections.emptyList(), Collections.emptyMap(), + var stats = ResourceUsageStats.calculateFrom(List.of(), Map.of(), createFeedBlock(exhaustion(1, "disk"), exhaustion(1, "memory"))); assertEquals(1, stats.getNodesAboveLimit()); } |