aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-04-11 13:10:45 +0200
committerGitHub <noreply@github.com>2024-04-11 13:10:45 +0200
commit80a99f18d8dee42451d09ccafe7af19c510e53f8 (patch)
treee5f3971e718c64cdb7153f80aa3471b2860bb9f8
parent03505948b67cae494b7d2d6a01403a77430ed5ec (diff)
parent01ad9e93cd671c90e180077e3bf0131f6576f51c (diff)
Merge pull request #30877 from vespa-engine/balder/map-dot-of
Unify on Map.of
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java7
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java23
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java3
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java5
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java3
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java8
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java5
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/Notifications.java3
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/SuperModel.java3
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/model/api/ServiceInfoTest.java20
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/StaticConfigDefinitionRepo.java3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java11
-rw-r--r--container-core/src/main/java/com/yahoo/container/bundle/MockBundle.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/StateMetricContext.java19
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/FormPostRequestHandler.java3
-rw-r--r--container-core/src/main/java/com/yahoo/processing/request/Properties.java3
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java6
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java18
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java4
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java6
-rw-r--r--container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java4
-rw-r--r--container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java3
-rw-r--r--container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java4
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java18
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/Hit.java12
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/YqlParser.java4
-rw-r--r--container-search/src/main/java/com/yahoo/text/interpretation/Annotations.java3
-rw-r--r--container-search/src/main/java/com/yahoo/vespa/streamingvisitors/QueryEncoder.java7
-rw-r--r--container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java5
-rw-r--r--container-search/src/test/java/com/yahoo/search/searchers/test/MockMetric.java78
-rw-r--r--docproc/src/test/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerAllMessageTypesTestCase.java8
-rw-r--r--document/src/test/java/com/yahoo/document/DocumentTypeTestCase.java23
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/file/FlagDbFile.java3
-rw-r--r--flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java3
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java3
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionSearcherTestCase.java16
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java10
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java28
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/linguistics/LinguisticsAnnotatorTestCase.java27
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java9
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java3
-rw-r--r--model-integration/src/main/java/ai/vespa/rankingexpression/importer/configmodelview/ImportedMlModels.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Reports.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java3
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java6
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java6
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java12
-rw-r--r--standalone-container/src/main/java/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.java3
-rw-r--r--tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java3
-rw-r--r--vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java6
-rw-r--r--vespajlib/src/test/java/com/yahoo/collections/LazyMapTest.java12
-rw-r--r--zookeeper-server/zookeeper-server-3.9.2/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java3
-rw-r--r--zookeeper-server/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java3
66 files changed, 201 insertions, 334 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());
}
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
index 0f89608f9bd..deef16cfe8c 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
@@ -14,7 +14,6 @@ import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -213,11 +212,11 @@ public interface ApplicationPackage {
}
default Map<Version, FileRegistry> getFileRegistries() {
- return Collections.emptyMap();
+ return Map.of();
}
default Map<String, String> legacyOverrides() {
- return Collections.emptyMap();
+ return Map.of();
}
/**
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/Notifications.java b/config-model-api/src/main/java/com/yahoo/config/application/api/Notifications.java
index 9eef386d7d0..370dfbff2b8 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/Notifications.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/Notifications.java
@@ -5,7 +5,6 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -25,7 +24,7 @@ import static java.util.Collections.emptyList;
*/
public class Notifications {
- private static final Notifications none = new Notifications(Collections.emptyMap(), Collections.emptyMap());
+ private static final Notifications none = new Notifications(Map.of(), Map.of());
public static Notifications none() { return none; }
private final Map<When, List<String>> emailAddresses;
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/SuperModel.java b/config-model-api/src/main/java/com/yahoo/config/model/api/SuperModel.java
index 3424dad4ee5..f6bc8c34aa6 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/SuperModel.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/SuperModel.java
@@ -6,7 +6,6 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.TenantName;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
@@ -23,7 +22,7 @@ public class SuperModel {
private final boolean complete;
public SuperModel() {
- this(Collections.emptyMap(), false);
+ this(Map.of(), false);
}
public SuperModel(Map<ApplicationId, ApplicationInfo> models, boolean complete) {
diff --git a/config-model-api/src/test/java/com/yahoo/config/model/api/ServiceInfoTest.java b/config-model-api/src/test/java/com/yahoo/config/model/api/ServiceInfoTest.java
index f1824763c12..b249b82d818 100644
--- a/config-model-api/src/test/java/com/yahoo/config/model/api/ServiceInfoTest.java
+++ b/config-model-api/src/test/java/com/yahoo/config/model/api/ServiceInfoTest.java
@@ -3,8 +3,8 @@ package com.yahoo.config.model.api;
import org.junit.Test;
-import java.util.Arrays;
-import java.util.Collections;
+import java.util.List;
+import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
@@ -17,14 +17,14 @@ public class ServiceInfoTest {
String commonConfigId = "common-config-id";
String commonHostName = "common-host";
- ServiceInfo a = new ServiceInfo("0", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "bar"), commonConfigId, commonHostName);
- ServiceInfo b = new ServiceInfo("0", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "bar"), commonConfigId, commonHostName);
- ServiceInfo c = new ServiceInfo("0", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "baz"), commonConfigId, commonHostName);
- ServiceInfo d = new ServiceInfo("0", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("bar", "bar"), commonConfigId, commonHostName);
- ServiceInfo e = new ServiceInfo("0", "1", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "bar"), commonConfigId, commonHostName);
- ServiceInfo f = new ServiceInfo("1", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "bar"), commonConfigId, commonHostName);
- ServiceInfo g = new ServiceInfo("1", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "bar"), "different-config-id", commonHostName);
- ServiceInfo h = new ServiceInfo("1", "0", Arrays.asList(new PortInfo(33, null)), Collections.singletonMap("foo", "bar"), commonConfigId, "different-host");
+ ServiceInfo a = new ServiceInfo("0", "0", List.of(new PortInfo(33, null)), Map.of("foo", "bar"), commonConfigId, commonHostName);
+ ServiceInfo b = new ServiceInfo("0", "0", List.of(new PortInfo(33, null)), Map.of("foo", "bar"), commonConfigId, commonHostName);
+ ServiceInfo c = new ServiceInfo("0", "0", List.of(new PortInfo(33, null)), Map.of("foo", "baz"), commonConfigId, commonHostName);
+ ServiceInfo d = new ServiceInfo("0", "0", List.of(new PortInfo(33, null)), Map.of("bar", "bar"), commonConfigId, commonHostName);
+ ServiceInfo e = new ServiceInfo("0", "1", List.of(new PortInfo(33, null)), Map.of("foo", "bar"), commonConfigId, commonHostName);
+ ServiceInfo f = new ServiceInfo("1", "0", List.of(new PortInfo(33, null)), Map.of("foo", "bar"), commonConfigId, commonHostName);
+ ServiceInfo g = new ServiceInfo("1", "0", List.of(new PortInfo(33, null)), Map.of("foo", "bar"), "different-config-id", commonHostName);
+ ServiceInfo h = new ServiceInfo("1", "0", List.of(new PortInfo(33, null)), Map.of("foo", "bar"), commonConfigId, "different-host");
assertEquals(a, b);
assertNotEquals(a, c);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/StaticConfigDefinitionRepo.java b/configserver/src/main/java/com/yahoo/vespa/config/server/StaticConfigDefinitionRepo.java
index 51918b4902a..bfad5af504c 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/StaticConfigDefinitionRepo.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/StaticConfigDefinitionRepo.java
@@ -6,7 +6,6 @@ import com.yahoo.config.model.api.ConfigDefinitionRepo;
import com.yahoo.vespa.config.ConfigDefinitionKey;
import com.yahoo.vespa.config.buildergen.ConfigDefinition;
-import java.util.Collections;
import java.util.Map;
/**
@@ -24,7 +23,7 @@ public class StaticConfigDefinitionRepo implements ConfigDefinitionRepo {
this.repo = new ConfigDefinitionRepo() {
@Override
public Map<ConfigDefinitionKey, ConfigDefinition> getConfigDefinitions() {
- return Collections.emptyMap();
+ return Map.of();
}
@Override
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java
index 3de35a20008..57ecd175435 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java
@@ -16,7 +16,6 @@ import com.yahoo.vespa.config.server.http.JSONResponse;
import java.time.Duration;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -75,7 +74,7 @@ public class FileDistributionStatus extends AbstractComponent {
if (request.isError()) {
return new HostStatus(hostname,
Status.UNKNOWN,
- Collections.emptyMap(),
+ Map.of(),
"error: " + request.errorMessage() + "(" + request.errorCode() + ")");
} else {
Map<String, Double> fileReferenceStatuses = new HashMap<>();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
index b0ecedd4853..6d671377e63 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
@@ -48,7 +48,6 @@ import com.yahoo.vespa.filedistribution.FileReferenceDownload;
import java.nio.ByteBuffer;
import java.time.Duration;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -131,7 +130,7 @@ public class RpcServer implements Runnable, ConfigActivationListener, TenantList
this.superModelRequestHandler = superModelRequestHandler;
metricUpdaterFactory = metrics;
supervisor.setMaxOutputBufferSize(config.maxoutputbuffersize());
- this.metrics = metrics.getOrCreateMetricUpdater(Collections.emptyMap());
+ this.metrics = metrics.getOrCreateMetricUpdater(Map.of());
BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(config.maxgetconfigclients());
int rpcWorkerThreads = (config.numRpcThreads() == 0) ? threadsToUse() : config.numRpcThreads();
executorService = new ThreadPoolExecutor(rpcWorkerThreads, rpcWorkerThreads,
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
index 8c4445f897c..f9f477c9693 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
@@ -194,7 +194,7 @@ public class TenantRepository {
this.configserverConfig = configserverConfig;
this.curator = curator;
this.metrics = metrics;
- metricUpdater = metrics.getOrCreateMetricUpdater(Collections.emptyMap());
+ metricUpdater = metrics.getOrCreateMetricUpdater(Map.of());
this.zkCacheExecutor = zkCacheExecutor;
this.zkApplicationWatcherExecutor = zkApplicationWatcherExecutor;
this.zkSessionWatcherExecutor = zkSessionWatcherExecutor;
@@ -312,7 +312,7 @@ public class TenantRepository {
}
}
- if (failed.size() > 0)
+ if (!failed.isEmpty())
throw new RuntimeException("Could not create all tenants when bootstrapping, failed to create: " + failed);
metricUpdater.setTenants(tenants.size());
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java
index 34045cf3804..452ee53c439 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java
@@ -17,7 +17,7 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.io.IOException;
-import java.util.Collections;
+import java.util.Map;
import static com.yahoo.jdisc.http.HttpRequest.Method.GET;
import static com.yahoo.jdisc.http.HttpResponse.Status.BAD_REQUEST;
@@ -90,7 +90,7 @@ public class HttpGetConfigHandlerTest {
@Test
public void require_that_nocache_property_works() throws IOException {
- HttpRequest request = HttpRequest.createTestRequest(configUri, GET, null, Collections.singletonMap("nocache", "true"));
+ HttpRequest request = HttpRequest.createTestRequest(configUri, GET, null, Map.of("nocache", "true"));
HttpResponse response = handler.handle(request);
String renderedString = SessionHandlerTest.getRenderedString(response);
assertTrue(renderedString, renderedString.startsWith(expected));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java
index a7f86133fce..b58bca074b8 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java
@@ -11,7 +11,7 @@ import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.time.Duration;
-import java.util.Collections;
+import java.util.Map;
import static org.junit.Assert.assertEquals;
@@ -39,7 +39,7 @@ public class HttpHandlerTest {
HttpRequest.createTestRequest("foo",
com.yahoo.jdisc.http.HttpRequest.Method.GET,
null,
- Collections.singletonMap("timeout", "1.5")), Duration.ofSeconds(5)).toMillis());
+ Map.of("timeout", "1.5")), Duration.ofSeconds(5)).toMillis());
}
private static class HttpTestHandler extends HttpHandler {
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java
index 6f2c7366b62..4c140159e12 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java
@@ -24,7 +24,6 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.io.IOException;
-import java.util.Collections;
import java.util.Map;
import static com.yahoo.jdisc.Response.Status.BAD_REQUEST;
@@ -126,7 +125,7 @@ public class HttpGetConfigHandlerTest {
@Test
public void require_that_nocache_property_works() throws IOException {
- HttpRequest request = HttpRequest.createTestRequest(configUri, GET, null, Collections.singletonMap("nocache", "true"));
+ HttpRequest request = HttpRequest.createTestRequest(configUri, GET, null, Map.of("nocache", "true"));
HttpResponse response = handler.handle(request);
String renderedString = SessionHandlerTest.getRenderedString(response);
assertTrue(renderedString, renderedString.startsWith(expected));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java
index b8c9a2f8fb8..4fb514bde17 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java
@@ -30,7 +30,6 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -93,7 +92,7 @@ public class SessionCreateHandlerTest extends SessionHandlerTest {
@Ignore
@Test
public void require_that_from_parameter_cannot_be_set_if_data_in_request() throws IOException {
- HttpRequest request = post(Collections.singletonMap("from", "active"));
+ HttpRequest request = post(Map.of("from", "active"));
HttpResponse response = createHandler().handle(request);
assertHttpStatusCodeErrorCodeAndMessage(response, BAD_REQUEST, HttpErrorResponse.ErrorCode.BAD_REQUEST, "Parameter 'from' is illegal for POST");
}
@@ -114,14 +113,14 @@ public class SessionCreateHandlerTest extends SessionHandlerTest {
private void assertIllegalFromParameter(String fromValue) throws IOException {
File outFile = CompressedApplicationInputStreamTest.createTarFile(temporaryFolder.getRoot().toPath());
- HttpRequest request = post(outFile, postHeaders, Collections.singletonMap("from", fromValue));
+ HttpRequest request = post(outFile, postHeaders, Map.of("from", fromValue));
assertHttpStatusCodeErrorCodeAndMessage(createHandler().handle(request), BAD_REQUEST, HttpErrorResponse.ErrorCode.BAD_REQUEST, "Parameter 'from' has illegal value '" + fromValue + "'");
}
@Test
public void require_that_prepare_url_is_returned_on_success() throws IOException {
File outFile = CompressedApplicationInputStreamTest.createTarFile(temporaryFolder.getRoot().toPath());
- Map<String, String> parameters = Collections.singletonMap("name", "foo");
+ Map<String, String> parameters = Map.of("name", "foo");
HttpResponse response = createHandler().handle(post(outFile, postHeaders, parameters));
assertNotNull(response);
assertEquals(OK, response.getStatus());
@@ -160,7 +159,7 @@ public class SessionCreateHandlerTest extends SessionHandlerTest {
@Test
public void require_that_application_urls_can_be_given_as_from_parameter() throws Exception {
ApplicationId applicationId = ApplicationId.from(tenant.value(), "foo", "quux");
- HttpRequest request = post(Collections.singletonMap(
+ HttpRequest request = post(Map.of(
"from",
"http://myhost:40555/application/v2/tenant/" + tenant + "/application/foo/environment/test/region/baz/instance/quux"));
assertEquals(applicationId, SessionCreateHandler.getFromApplicationId(request));
@@ -180,7 +179,7 @@ public class SessionCreateHandlerTest extends SessionHandlerTest {
public void require_that_content_type_is_parsed_correctly() throws FileNotFoundException {
HttpRequest request = post(new ByteArrayInputStream("foo".getBytes(StandardCharsets.UTF_8)),
Map.of("Content-Type", "multipart/form-data; charset=ISO-8859-1; boundary=g5gJAzUWl_t6"),
- Collections.emptyMap());
+ Map.of());
// Valid header should validate ok
SessionCreateHandler.validateDataAndHeader(request, List.of(ContentType.MULTIPART_FORM_DATA.getMimeType()));
diff --git a/container-core/src/main/java/com/yahoo/container/bundle/MockBundle.java b/container-core/src/main/java/com/yahoo/container/bundle/MockBundle.java
index da5b040e296..29a45c10af3 100644
--- a/container-core/src/main/java/com/yahoo/container/bundle/MockBundle.java
+++ b/container-core/src/main/java/com/yahoo/container/bundle/MockBundle.java
@@ -157,7 +157,7 @@ public class MockBundle implements Bundle, BundleWiring {
@Override
public Map<X509Certificate, List<X509Certificate>> getSignerCertificates(int signersType) {
- return Collections.emptyMap();
+ return Map.of();
}
@SuppressWarnings("unchecked")
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java b/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java
index 1c325654f2e..71449d6edae 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java
@@ -412,7 +412,7 @@ public class HttpRequest {
Map<String, String> mask;
Map<String, String> view;
- mask = Objects.requireNonNullElse(parameterMask, Collections.emptyMap());
+ mask = Objects.requireNonNullElse(parameterMask, Map.of());
view = new HashMap<>(parameters.size() + mask.size());
for (Map.Entry<String, List<String>> parameter : parameters.entrySet()) {
if (existsAsOriginalParameter(parameter.getValue())) {
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/StateMetricContext.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/StateMetricContext.java
index 4cb19653848..6d6635ecc94 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/state/StateMetricContext.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/StateMetricContext.java
@@ -3,10 +3,11 @@ package com.yahoo.container.jdisc.state;
import com.yahoo.jdisc.Metric;
-import java.util.Collections;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Objects;
+
+import static java.util.stream.Collectors.toUnmodifiableMap;
/**
* A context implementation whose identity is the key and values such that this can be used as
@@ -41,16 +42,10 @@ public final class StateMetricContext implements MetricDimensions, Metric.Contex
}
public static StateMetricContext newInstance(Map<String, ?> properties) {
- Map<String, String> data;
- if (properties != null) {
- data = new HashMap<>(properties.size());
- for (Map.Entry<String, ?> entry : properties.entrySet()) {
- data.put(entry.getKey(), entry.getValue() != null ? entry.getValue().toString() : null);
- }
- data = Collections.unmodifiableMap(data);
- } else {
- data = Collections.emptyMap();
- }
+ Map<String, String> data = (properties != null)
+ ? properties.entrySet().stream().collect(
+ toUnmodifiableMap(Map.Entry::getKey, e -> Objects.requireNonNullElse(e.getValue(), "").toString()))
+ : Map.of();
return new StateMetricContext(data);
}
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/FormPostRequestHandler.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/FormPostRequestHandler.java
index b43281c524a..7e6b9b822ac 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/FormPostRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/FormPostRequestHandler.java
@@ -20,7 +20,6 @@ import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
import java.nio.charset.StandardCharsets;
import java.nio.charset.UnsupportedCharsetException;
-import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -134,7 +133,7 @@ class FormPostRequestHandler extends AbstractRequestHandler implements ContentCh
*/
private static Map<String, List<String>> parseFormParameters(String formContent) {
if (formContent.isEmpty()) {
- return Collections.emptyMap();
+ return Map.of();
}
Map<String, List<String>> parameterMap = new HashMap<>();
diff --git a/container-core/src/main/java/com/yahoo/processing/request/Properties.java b/container-core/src/main/java/com/yahoo/processing/request/Properties.java
index d06e8b26cd9..e689ea76f3a 100644
--- a/container-core/src/main/java/com/yahoo/processing/request/Properties.java
+++ b/container-core/src/main/java/com/yahoo/processing/request/Properties.java
@@ -3,7 +3,6 @@ package com.yahoo.processing.request;
import java.util.Map;
import java.util.HashMap;
-import java.util.Collections;
/**
* The properties of a request
@@ -271,7 +270,7 @@ public class Properties implements Cloneable {
* @throws RuntimeException if no instance in the chain accepted this name-value pair
*/
public final void clearAll(String name) {
- clearAll(new CompoundName(name), Collections.<String,String>emptyMap());
+ clearAll(new CompoundName(name), Map.of());
}
/**
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
index aacc43d725b..e99f98cb842 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
@@ -21,9 +21,9 @@ import com.yahoo.vespa.config.ConfigKey;
import org.junit.jupiter.api.Test;
import java.lang.annotation.Annotation;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
@@ -480,7 +480,7 @@ public class ComponentGraphTest {
ComponentGraph graph = new ComponentGraph();
graph.add(mockComponentNodeWithId(ExecutorProvider.class, "dummyId"));
graph.complete();
- graph.setAvailableConfigs(Collections.emptyMap());
+ graph.setAvailableConfigs(Map.of());
return graph;
}
@@ -607,7 +607,7 @@ public class ComponentGraphTest {
}
public static class ExecutorProvider implements Provider<Executor> {
- private Executor executor = Executors.newSingleThreadExecutor();
+ private final Executor executor = Executors.newSingleThreadExecutor();
public Executor get() {
return executor;
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java
index 59c939863dd..17ead389c48 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java
@@ -16,7 +16,7 @@ import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleCompo
import com.yahoo.vespa.config.ConfigKey;
import org.junit.jupiter.api.Test;
-import java.util.Collections;
+import java.util.Map;
import java.util.concurrent.Executor;
import java.util.function.Function;
import java.util.function.Supplier;
@@ -68,12 +68,12 @@ public class ReuseComponentsTest {
Class<ComponentTakingConfig> componentClass = ComponentTakingConfig.class;
ComponentGraph graph = buildGraph(componentClass);
- graph.setAvailableConfigs(Collections.singletonMap(new ConfigKey<>(TestConfig.class, "component"),
+ graph.setAvailableConfigs(Map.of(new ConfigKey<>(TestConfig.class, "component"),
ConfigGetter.getConfig(TestConfig.class, "raw: stringVal \"oldConfig\"")));
ComponentTakingConfig instance = getComponent(graph, componentClass);
ComponentGraph newGraph = buildGraph(componentClass);
- newGraph.setAvailableConfigs(Collections.singletonMap(new ConfigKey<>(TestConfig.class, "component"),
+ newGraph.setAvailableConfigs(Map.of(new ConfigKey<>(TestConfig.class, "component"),
ConfigGetter.getConfig(TestConfig.class, "raw: stringVal \"newConfig\"")));
newGraph.reuseNodes(graph);
ComponentTakingConfig instance2 = getComponent(newGraph, componentClass);
@@ -98,7 +98,7 @@ public class ReuseComponentsTest {
graph.add(injectedComponent);
graph.complete();
- graph.setAvailableConfigs(Collections.singletonMap(new ConfigKey<>(TestConfig.class, configId),
+ graph.setAvailableConfigs(Map.of(new ConfigKey<>(TestConfig.class, configId),
ConfigGetter.getConfig(TestConfig.class, "raw: stringVal \"" + config + "\"")));
return graph;
@@ -132,7 +132,7 @@ public class ReuseComponentsTest {
}
graph.complete();
- graph.setAvailableConfigs(Collections.emptyMap());
+ graph.setAvailableConfigs(Map.of());
return graph;
};
@@ -163,7 +163,7 @@ public class ReuseComponentsTest {
graph.add(injectedComponent);
graph.complete();
- graph.setAvailableConfigs(Collections.singletonMap(new ConfigKey<>(TestConfig.class, configId),
+ graph.setAvailableConfigs(Map.of(new ConfigKey<>(TestConfig.class, configId),
ConfigGetter.getConfig(TestConfig.class, "raw: stringVal \"" + config + "\"")));
return graph;
@@ -188,7 +188,7 @@ public class ReuseComponentsTest {
ComponentGraph graph = new ComponentGraph();
graph.add(mockComponentNode(ComponentTakingExecutor.class, "dummyId"));
graph.complete(ComponentGraphTest.singletonExecutorInjector);
- graph.setAvailableConfigs(Collections.emptyMap());
+ graph.setAvailableConfigs(Map.of());
return graph;
};
@@ -224,7 +224,7 @@ public class ReuseComponentsTest {
private void completeNode(ComponentNode node) {
node.setArguments(new Object[0]);
- node.setAvailableConfigs(Collections.emptyMap());
+ node.setAvailableConfigs(Map.of());
}
private ComponentGraph buildGraph(Class<?> componentClass) {
@@ -237,7 +237,7 @@ public class ReuseComponentsTest {
private ComponentGraph buildGraphAndSetNoConfigs(Class<?> componentClass) {
ComponentGraph g = buildGraph(componentClass);
- g.setAvailableConfigs(Collections.emptyMap());
+ g.setAvailableConfigs(Map.of());
return g;
}
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java
index f70772b7331..2aa5c888865 100644
--- a/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java
+++ b/container-core/src/test/java/com/yahoo/container/jdisc/HttpRequestTestCase.java
@@ -8,7 +8,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
-import java.util.Collections;
+import java.util.Map;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -30,7 +30,7 @@ public class HttpRequestTestCase {
@BeforeEach
public void setUp() throws Exception {
requestData = new ByteArrayInputStream(Utf8.toBytes(X_RAY_YANKEE_ZULU));
- r = HttpRequest.createTestRequest(HTTP_MAILHOST_25_ALPHA_BRAVO_CHARLIE_DELTA, Method.GET, requestData, Collections.singletonMap("foxtrot", "golf"));
+ r = HttpRequest.createTestRequest(HTTP_MAILHOST_25_ALPHA_BRAVO_CHARLIE_DELTA, Method.GET, requestData, Map.of("foxtrot", "golf"));
}
@AfterEach
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java
index 3217bff4bb3..ccc7b22f348 100644
--- a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java
+++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricSnapshotTest.java
@@ -3,8 +3,8 @@ package com.yahoo.container.jdisc.state;
import org.junit.jupiter.api.Test;
-import java.util.Collections;
import java.util.HashMap;
+import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -29,8 +29,8 @@ public class MetricSnapshotTest {
@Test
void testEquality() {
- assertEquals(Collections.unmodifiableMap(new HashMap(0)).hashCode(), Collections.emptyMap().hashCode());
- assertEquals(Collections.unmodifiableMap(new HashMap(0)), Collections.emptyMap());
+ assertEquals(new HashMap(0).hashCode(), Map.of().hashCode());
+ assertEquals(new HashMap(0), Map.of());
}
}
diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java
index 0368c925bcc..ad95c87ca8c 100644
--- a/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java
+++ b/container-core/src/test/java/com/yahoo/metrics/simple/PointTest.java
@@ -3,8 +3,8 @@ package com.yahoo.metrics.simple;
import org.junit.jupiter.api.Test;
-import java.util.Collections;
import java.util.HashMap;
+import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -15,7 +15,7 @@ public class PointTest {
@Test
void testPointEquality() {
- Point a = new Point(Collections.emptyMap());
+ Point a = new Point(Map.of());
Point b = new Point(new HashMap<>(0));
assertEquals(a.hashCode(), b.hashCode());
assertEquals(a, b);
diff --git a/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java b/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java
index d8743d063fb..40ec5973510 100644
--- a/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java
+++ b/container-core/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java
@@ -14,7 +14,6 @@ import com.yahoo.metrics.simple.Point;
import com.yahoo.metrics.simple.UntypedMetric;
import org.junit.jupiter.api.Test;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -29,7 +28,7 @@ public class SnapshotConverterTest {
@Test
void testPointConversion() {
- MetricDimensions a = SnapshotConverter.convert(new Point(Collections.emptyMap()));
+ MetricDimensions a = SnapshotConverter.convert(new Point(Map.of()));
MetricDimensions b = SnapshotConverter.convert(new Point(new HashMap<>(0)));
MetricDimensions c = SnapshotConverter.convert((Point) null);
assertEquals(a.hashCode(), b.hashCode());
diff --git a/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java b/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java
index e514453bc08..1c85ec37e34 100644
--- a/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java
+++ b/container-messagebus/src/test/java/com/yahoo/container/jdisc/messagebus/MbusClientProviderTest.java
@@ -5,11 +5,9 @@ import com.yahoo.container.jdisc.ContainerMbusConfig;
import com.yahoo.container.jdisc.config.SessionConfig;
import com.yahoo.document.DocumentTypeManager;
import com.yahoo.document.config.DocumentmanagerConfig;
-import com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig;
import com.yahoo.messagebus.MessagebusConfig;
import com.yahoo.messagebus.network.NetworkMultiplexer;
import com.yahoo.messagebus.shared.NullNetwork;
-import com.yahoo.vespa.config.content.DistributionConfig;
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
diff --git a/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java b/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java
index f59124e293e..7b969404984 100644
--- a/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java
+++ b/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java
@@ -331,7 +331,7 @@ public class PageTemplateXMLReader {
private Map<String,String> readParameters(Element containingElement) {
List<Element> parameterElements=XML.getChildren(containingElement,"parameter");
- if (parameterElements.size()==0) return Collections.emptyMap(); // Shortcut
+ if (parameterElements.size()==0) return Map.of(); // Shortcut
Map<String,String> parameters=new LinkedHashMap<>();
for (Element parameter : parameterElements) {
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java b/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java
index 53f8ccbe6de..3587175b671 100644
--- a/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java
+++ b/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java
@@ -66,7 +66,7 @@ public class CopyOnWriteContent extends FreezableClass implements Cloneable {
public void freeze() {
// Freeze this
if (unmodifiableMap==null)
- unmodifiableMap= map!=null ? Collections.unmodifiableMap(map) : Collections.<String, Object>emptyMap();
+ unmodifiableMap= map!=null ? Collections.unmodifiableMap(map) : Map.of();
map=null; // just to keep the states simpler
// Freeze content
@@ -119,7 +119,7 @@ public class CopyOnWriteContent extends FreezableClass implements Cloneable {
//------- Content access -------------------------------------------------------
public Map<String,Object> unmodifiableMap() {
- if (isEmpty()) return Collections.emptyMap();
+ if (isEmpty()) return Map.of();
if (map==null) // in COPYONWRITE or FROZEN state
return unmodifiableMap;
// In WRITABLE state: Create unmodifiable wrapper if necessary and return it
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java
index 8778dcc7348..261e42a972d 100644
--- a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java
+++ b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java
@@ -18,7 +18,6 @@ import com.yahoo.search.query.profile.types.QueryProfileType;
import com.yahoo.tensor.Tensor;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -127,7 +126,7 @@ public class QueryProfileProperties extends Properties {
name = unalias(name, context);
if (context == null)
- context = Collections.emptyMap();
+ context = Map.of();
if ( ! profile.isOverridable(name, context)) return;
@@ -237,7 +236,7 @@ public class QueryProfileProperties extends Properties {
context = contextWithZoneInfo(context);
path = unalias(path, context);
- if (context == null) context = Collections.emptyMap();
+ if (context == null) context = Map.of();
Map<String, Object> properties = new HashMap<>();
for (var entry : profile.listValues(path, context, substitution).entrySet()) {
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java
index 4b3c3ede1e9..562d59846d1 100644
--- a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java
+++ b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java
@@ -9,7 +9,6 @@ import com.yahoo.search.query.profile.QueryProfileProperties;
import com.yahoo.search.query.profile.SubstituteString;
import com.yahoo.search.query.profile.types.QueryProfileType;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
@@ -102,7 +101,7 @@ public class CompiledQueryProfile extends AbstractComponent implements Cloneable
* For example, if {a.d =&gt; "a.d-value" ,a.e =&gt; "a.e-value", b.d =&gt; "b.d-value", then calling listValues("a")
* will return {"d" =&gt; "a.d-value","e" =&gt; "a.e-value"}
*/
- public final Map<String, Object> listValues(CompoundName prefix) { return listValues(prefix, Collections.emptyMap()); }
+ public final Map<String, Object> listValues(CompoundName prefix) { return listValues(prefix, Map.of()); }
public final Map<String, Object> listValues(String prefix) { return listValues(new CompoundName(prefix)); }
/**
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java
index b6fa58628a1..0823989a104 100644
--- a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java
+++ b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java
@@ -2,18 +2,15 @@
package com.yahoo.search.query.profile.compiled;
import com.yahoo.processing.request.CompoundName;
-import com.yahoo.search.query.profile.DimensionBinding;
import com.yahoo.search.query.profile.SubstituteString;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.Set;
/**
* Contains the values a given key in a DimensionalMap may take for different dimensional contexts.
@@ -44,7 +41,7 @@ public class DimensionalValue<VALUE> {
/** Returns the value matching this context, or null if none */
public VALUE get(Map<String, String> context) {
if (context == null)
- context = Collections.emptyMap();
+ context = Map.of();
for (BindingSpec spec : bindingSpecs) {
if ( ! spec.matches(context)) continue;
@@ -156,8 +153,7 @@ public class DimensionalValue<VALUE> {
variants.add(binding);
// We're combining values for efficiency, so remove incorrect provenance info
- if (value instanceof ValueWithSource) {
- ValueWithSource v1 = (ValueWithSource)value;
+ if (value instanceof ValueWithSource v1) {
ValueWithSource v2 = (ValueWithSource)newValue;
if (v1.source() != null && ! v1.source().equals(v2.source()))
@@ -220,14 +216,12 @@ public class DimensionalValue<VALUE> {
private VALUE substituteIfRelative(VALUE value,
Binding variant,
Map<CompoundName, DimensionalValue.Builder<VALUE>> entries) {
- if (value instanceof ValueWithSource && ((ValueWithSource)value).value() instanceof SubstituteString) {
- ValueWithSource valueWithSource = (ValueWithSource)value;
+ if (value instanceof ValueWithSource valueWithSource && ((ValueWithSource)value).value() instanceof SubstituteString) {
SubstituteString substitute = (SubstituteString)valueWithSource.value();
if (substitute.hasRelative()) {
List<SubstituteString.Component> resolvedComponents = new ArrayList<>(substitute.components().size());
for (SubstituteString.Component component : substitute.components()) {
- if (component instanceof SubstituteString.RelativePropertyComponent) {
- SubstituteString.RelativePropertyComponent relativeComponent = (SubstituteString.RelativePropertyComponent)component;
+ if (component instanceof SubstituteString.RelativePropertyComponent relativeComponent) {
var substituteValues = lookupByLocalName(relativeComponent.fieldName(), entries);
if (substituteValues == null)
throw new IllegalArgumentException("Could not resolve local substitution '" +
@@ -274,8 +268,8 @@ public class DimensionalValue<VALUE> {
/** Returns whether this context contains all the keys of this */
public boolean matches(Map<String, String> context) {
- for (int i = 0; i < dimensions.length; i++)
- if ( ! context.containsKey(dimensions[i])) return false;
+ for (String dimension : dimensions)
+ if (!context.containsKey(dimension)) return false;
return true;
}
diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java
index 080f938d61a..e5319b50b4f 100644
--- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java
+++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java
@@ -1,7 +1,6 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.query.textserialize.item;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -19,7 +18,7 @@ public class ItemArguments {
properties = (Map<?, ?>) ListUtil.first(arguments);
children = ListUtil.rest(arguments);
} else {
- properties = Collections.emptyMap();
+ properties = Map.of();
children = arguments;
}
}
diff --git a/container-search/src/main/java/com/yahoo/search/result/Hit.java b/container-search/src/main/java/com/yahoo/search/result/Hit.java
index d81880cc548..77411167222 100644
--- a/container-search/src/main/java/com/yahoo/search/result/Hit.java
+++ b/container-search/src/main/java/com/yahoo/search/result/Hit.java
@@ -333,6 +333,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
*/
public void setFillable() {
if (filled == null) {
+ //TODO Should have used Set.of(), but it checks that contains it not called with null
filled = Collections.emptySet();
unmodifiableFilled = filled;
}
@@ -347,6 +348,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
*/
public void setFilled(String summaryClass) {
if (filled == null || filled.isEmpty()) {
+ //TODO Should have used Set.of(), but it checks that contains it not called with null
filled = Collections.singleton(summaryClass);
unmodifiableFilled = filled;
} else if (filled.size() == 1) {
@@ -483,7 +485,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
private Map<String, Object> getUnmodifiableFieldMap() {
if (unmodifiableFieldMap == null) {
if (fields == null) {
- return Collections.emptyMap();
+ return Map.of();
} else {
unmodifiableFieldMap = Collections.unmodifiableMap(fields);
}
@@ -574,12 +576,12 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
/** Attach some data to this hit for this searcher */
public void setSearcherSpecificMetaData(Searcher searcher, Object data) {
if (searcherSpecificMetaData == null) {
- searcherSpecificMetaData = Collections.singletonMap(searcher, data);
+ if (data != null)
+ searcherSpecificMetaData = Map.of(searcher, data);
} else {
if (searcherSpecificMetaData.size() == 1) {
- Object tmp = searcherSpecificMetaData.get(searcher);
- if (tmp != null) {
- searcherSpecificMetaData = Collections.singletonMap(searcher, data);
+ if (searcherSpecificMetaData.containsKey(searcher)) {
+ searcherSpecificMetaData = (data != null) ? Map.of(searcher, data) : null;
} else {
searcherSpecificMetaData = new TreeMap<>(searcherSpecificMetaData);
searcherSpecificMetaData.put(searcher, data);
diff --git a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java
index 7ae02c18e7a..e66cac5766c 100644
--- a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java
+++ b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java
@@ -913,7 +913,7 @@ public class YqlParser implements Parser {
GroupingOperation groupingOperation = GroupingOperation.fromString(groupingAst.getArgument(0));
VespaGroupingStep groupingStep = new VespaGroupingStep(groupingOperation);
List<Object> continuations = getAnnotation(groupingAst, "continuations", List.class,
- Collections.emptyList(), "grouping continuations");
+ List.of(), "grouping continuations");
for (Object continuation : continuations) {
groupingStep.continuations().add(Continuation.fromString(dereference(continuation)));
@@ -1614,7 +1614,7 @@ public class YqlParser implements Parser {
{
Item leaf = (Item) out;
Map<?, ?> itemAnnotations = getAnnotation(ast, ANNOTATIONS,
- Map.class, Collections.emptyMap(), "item annotation map");
+ Map.class, Map.of(), "item annotation map");
for (Map.Entry<?, ?> entry : itemAnnotations.entrySet()) {
Preconditions.checkArgument(entry.getKey() instanceof String,
"Expected String annotation key, got %s.", entry.getKey().getClass());
diff --git a/container-search/src/main/java/com/yahoo/text/interpretation/Annotations.java b/container-search/src/main/java/com/yahoo/text/interpretation/Annotations.java
index 561d2bf34d0..c957432a957 100644
--- a/container-search/src/main/java/com/yahoo/text/interpretation/Annotations.java
+++ b/container-search/src/main/java/com/yahoo/text/interpretation/Annotations.java
@@ -1,7 +1,6 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.text.interpretation;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -28,7 +27,7 @@ public class Annotations {
public Map<String,Object> getMap() {
if (annotations == null) {
- return Collections.emptyMap();
+ return Map.of();
} else {
return annotations;
}
diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/QueryEncoder.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/QueryEncoder.java
index 112c3669133..c0ded6a4c39 100644
--- a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/QueryEncoder.java
+++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/QueryEncoder.java
@@ -8,7 +8,6 @@ import com.yahoo.search.Query;
import com.yahoo.search.dispatch.rpc.ProtobufSerialization;
import java.nio.ByteBuffer;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -68,10 +67,10 @@ class QueryEncoder {
return cacheSettingMap;
}
if (query.getGroupingSessionCache())
- return Collections.singletonMap("grouping", true);
+ return Map.of("grouping", true);
if (query.getRanking().getQueryCache())
- return Collections.singletonMap("query", true);
- return Collections.emptyMap();
+ return Map.of("query", true);
+ return Map.of();
}
private static Map<String, String> createModelMap(Query query) {
diff --git a/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java b/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java
index a9f4c3dfac5..35d5cfd3855 100644
--- a/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java
+++ b/container-search/src/test/java/ai/vespa/llm/clients/ConfigurableLanguageModelTest.java
@@ -11,7 +11,6 @@ import com.yahoo.container.jdisc.secretstore.SecretStore;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -85,7 +84,7 @@ public class ConfigurableLanguageModelTest {
}
private static InferenceParameters inferenceParams() {
- return new InferenceParameters(s -> lookupParameter(s, Collections.emptyMap()));
+ return new InferenceParameters(s -> lookupParameter(s, Map.of()));
}
private static InferenceParameters inferenceParams(Map<String, String> params) {
@@ -93,7 +92,7 @@ public class ConfigurableLanguageModelTest {
}
private static InferenceParameters inferenceParamsWithDefaultKey() {
- return new InferenceParameters(MockLLMClient.ACCEPTED_API_KEY, s -> lookupParameter(s, Collections.emptyMap()));
+ return new InferenceParameters(MockLLMClient.ACCEPTED_API_KEY, s -> lookupParameter(s, Map.of()));
}
private LlmClientConfig modelParams(String apiKeySecretName, String endpoint) {
diff --git a/container-search/src/test/java/com/yahoo/search/searchers/test/MockMetric.java b/container-search/src/test/java/com/yahoo/search/searchers/test/MockMetric.java
deleted file mode 100644
index 7835a9934c7..00000000000
--- a/container-search/src/test/java/com/yahoo/search/searchers/test/MockMetric.java
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.search.searchers.test;
-
-import com.yahoo.jdisc.Metric;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
-* @author bratseth
-*/
-class MockMetric implements Metric {
-
- private Map<Context, Map<String, Number>> metrics = new HashMap<>();
-
- public Map<String, Number> values(Context context) {
- return metricsForContext(context);
- }
-
- @Override
- public void set(String key, Number val, Context context) {
- metricsForContext(context).put(key, val);
- }
-
- @Override
- public void add(String key, Number value, Context context) {
- Number previousValue = metricsForContext(context).get(key);
- if (previousValue == null)
- previousValue = 0;
- metricsForContext(context).put(key, value.doubleValue() + previousValue.doubleValue());
- }
-
- /** Returns the metrics for a given context, never null */
- private Map<String, Number> metricsForContext(Context context) {
- Map<String, Number> metricsForContext = metrics.get(context);
- if (metricsForContext == null) {
- metricsForContext = new HashMap<>();
- metrics.put(context, metricsForContext);
- }
- return metricsForContext;
- }
-
- @Override
- public Context createContext(Map<String, ?> dimensions) {
- return new MapContext(dimensions);
- }
-
- /** Creates a context containing a single dimension */
- public Metric.Context createContext(String dimensionName, String dimensionValue) {
- if (dimensionName.isEmpty())
- return createContext(Collections.emptyMap());
- return createContext(Collections.singletonMap(dimensionName, dimensionValue));
- }
-
- private class MapContext implements Metric.Context {
-
- private final Map<String, ?> dimensions;
-
- public MapContext(Map<String, ?> dimensions) {
- this.dimensions = dimensions;
- }
-
- @Override
- public int hashCode() {
- return dimensions.hashCode();
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if ( ! (o instanceof MapContext)) return false;
- return dimensions.equals(((MapContext)o).dimensions);
- }
-
- }
-
-}
diff --git a/docproc/src/test/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerAllMessageTypesTestCase.java b/docproc/src/test/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerAllMessageTypesTestCase.java
index aacac7b5c04..822359d7c09 100644
--- a/docproc/src/test/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerAllMessageTypesTestCase.java
+++ b/docproc/src/test/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerAllMessageTypesTestCase.java
@@ -25,9 +25,8 @@ import com.yahoo.messagebus.Reply;
import org.junit.Test;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertEquals;
@@ -48,7 +47,7 @@ public class DocumentProcessingHandlerAllMessageTypesTestCase extends DocumentPr
this.type.addField(new Field("blahblah", DataType.STRING));
this.type.addField(new Field("defaultWait", DataType.INT));
this.type.addField(new Field("customWait", DataType.INT));
- type.addFieldSets(Collections.singletonMap(DocumentType.DOCUMENT, Arrays.asList("blahblah", "defaultWait", "customWait")));
+ type.addFieldSets(Map.of(DocumentType.DOCUMENT, List.of("blahblah", "defaultWait", "customWait")));
}
@Test
@@ -158,8 +157,7 @@ public class DocumentProcessingHandlerAllMessageTypesTestCase extends DocumentPr
Document doc = ((DocumentPut) op).getDocument();
for (Field f : doc.getDataType().fieldSet()) {
FieldValue val = doc.getFieldValue(f);
- if (val instanceof StringFieldValue) {
- StringFieldValue sf = (StringFieldValue) val;
+ if (val instanceof StringFieldValue sf) {
doc.setFieldValue(f, new StringFieldValue(sf.getString().toUpperCase()));
}
}
diff --git a/document/src/test/java/com/yahoo/document/DocumentTypeTestCase.java b/document/src/test/java/com/yahoo/document/DocumentTypeTestCase.java
index 5f8e95a2b4f..17d1d745f6a 100644
--- a/document/src/test/java/com/yahoo/document/DocumentTypeTestCase.java
+++ b/document/src/test/java/com/yahoo/document/DocumentTypeTestCase.java
@@ -3,15 +3,14 @@ package com.yahoo.document;
import org.junit.Test;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
/**
* @author Thomas Gundersen
@@ -37,7 +36,7 @@ public class DocumentTypeTestCase {
root.addField("rootfield1", DataType.STRING);
root.addField("rootfield2", DataType.STRING);
root.addField("rootfield3", DataType.STRING);
- root.addFieldSets(Collections.singletonMap(DocumentType.DOCUMENT, Arrays.asList("rootfield2")));
+ root.addFieldSets(Map.of(DocumentType.DOCUMENT, List.of("rootfield2")));
assertEquals(1, root.fieldSet().size());
assertEquals("rootfield2", root.fieldSet().iterator().next().getName());
assertEquals(3, root.fieldSetAll().size());
@@ -49,25 +48,25 @@ public class DocumentTypeTestCase {
DocumentType root = new DocumentType("root");
root.addField("rootfield", DataType.STRING);
- root.addFieldSets(Collections.singletonMap(DocumentType.DOCUMENT, Arrays.asList("rootfield")));
+ root.addFieldSets(Map.of(DocumentType.DOCUMENT, List.of("rootfield")));
DocumentType parent1 = new DocumentType("parent1");
parent1.addField("overridden", DataType.STRING);
parent1.addField("parent1field", DataType.STRING);
parent1.inherit(root);
- parent1.addFieldSets(Collections.singletonMap(DocumentType.DOCUMENT, Arrays.asList("parent1field", "overridden")));
+ parent1.addFieldSets(Map.of(DocumentType.DOCUMENT, List.of("parent1field", "overridden")));
DocumentType parent2 = new DocumentType("parent2");
parent2.addField("parent2field", DataType.STRING);
parent2.inherit(root);
- parent2.addFieldSets(Collections.singletonMap(DocumentType.DOCUMENT, Arrays.asList("parent2field")));
+ parent2.addFieldSets(Map.of(DocumentType.DOCUMENT, List.of("parent2field")));
DocumentType child = new DocumentType("child");
child.addField("childfield", DataType.INT);
child.addField("overridden", DataType.STRING);
child.inherit(parent1);
child.inherit(parent2);
- child.addFieldSets(Collections.singletonMap(DocumentType.DOCUMENT, Arrays.asList("childfield", "overridden")));
+ child.addFieldSets(Map.of(DocumentType.DOCUMENT, List.of("childfield", "overridden")));
typeManager.register(root);
typeManager.register(parent1);
@@ -77,19 +76,19 @@ public class DocumentTypeTestCase {
Iterator inherited = child.getInheritedTypes().iterator();
assertEquals(parent1, inherited.next());
assertEquals(parent2, inherited.next());
- assertTrue(!inherited.hasNext());
+ assertFalse(inherited.hasNext());
inherited = parent1.getInheritedTypes().iterator();
assertEquals(root, inherited.next());
- assertTrue(!inherited.hasNext());
+ assertFalse(inherited.hasNext());
inherited = parent2.getInheritedTypes().iterator();
assertEquals(root, inherited.next());
- assertTrue(!inherited.hasNext());
+ assertFalse(inherited.hasNext());
inherited = root.getInheritedTypes().iterator();
assertEquals(DataType.DOCUMENT, inherited.next());
- assertTrue(!inherited.hasNext());
+ assertFalse(inherited.hasNext());
Iterator fields = child.fieldSet().iterator();
Field field;
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/file/FlagDbFile.java b/flags/src/main/java/com/yahoo/vespa/flags/file/FlagDbFile.java
index c4597d1d3b4..73803e5bc5f 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/file/FlagDbFile.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/file/FlagDbFile.java
@@ -14,7 +14,6 @@ import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -55,7 +54,7 @@ public class FlagDbFile {
public Map<FlagId, FlagData> read() {
Optional<byte[]> bytes = readFile();
- if (!bytes.isPresent()) return Collections.emptyMap();
+ if (!bytes.isPresent()) return Map.of();
return FlagData.deserializeList(bytes.get()).stream().collect(Collectors.toMap(FlagData::id, Function.identity()));
}
diff --git a/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java b/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java
index 4ea4f8ab638..d8530bf0a9d 100644
--- a/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java
+++ b/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java
@@ -12,7 +12,6 @@ import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystem;
import java.nio.file.Files;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -68,7 +67,7 @@ public class FlagDbFileTest {
assertThat(anotherReadDataMap, IsMapContaining.hasKey(id3));
assertThat(anotherReadDataMap.get(id1).serializeToJson(), equalTo("{\"id\":\"id1\",\"attributes\":{\"hostname\":\"h1\"}}"));
- assertThat(flagDb.sync(Collections.emptyMap()), equalTo(true));
+ assertThat(flagDb.sync(Map.of()), equalTo(true));
assertThat(getDbContent(), equalTo("{\"flags\":[]}"));
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java
index 72a03e938fb..52a015137aa 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java
@@ -55,7 +55,6 @@ import com.yahoo.vespa.indexinglanguage.expressions.ZCurveExpression;
import com.yahoo.vespa.indexinglanguage.linguistics.AnnotatorConfig;
import org.junit.Test;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -109,7 +108,7 @@ public class ExpressionConverterTestCase {
assertConvertable(new StatementExpression(new InputExpression("foo")));
assertConvertable(new SubstringExpression(6, 9));
assertConvertable(new SummaryExpression("foo"));
- assertConvertable(new SwitchExpression(Collections.singletonMap("foo", (Expression)new IndexExpression("bar")),
+ assertConvertable(new SwitchExpression(Map.of("foo", (Expression)new IndexExpression("bar")),
new InputExpression("baz")));
assertConvertable(new ThisExpression());
assertConvertable(new ToArrayExpression());
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionSearcherTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionSearcherTestCase.java
index 4a8348204a6..c4f71402afa 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionSearcherTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionSearcherTestCase.java
@@ -17,8 +17,8 @@ import com.yahoo.vespa.indexinglanguage.expressions.StatementExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SwitchExpression;
import org.junit.Test;
-import java.util.Arrays;
-import java.util.Collections;
+import java.util.List;
+import java.util.Map;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
@@ -67,18 +67,18 @@ public class ExpressionSearcherTestCase {
assertFound(exp, new ScriptExpression(new StatementExpression(new AttributeExpression("foo")),
new StatementExpression(exp)));
assertFound(exp, new SelectInputExpression(
- Arrays.asList(new Pair<String, Expression>("foo", exp),
- new Pair<String, Expression>("bar", new AttributeExpression("bar")))));
+ List.of(new Pair<>("foo", exp),
+ new Pair<>("bar", new AttributeExpression("bar")))));
assertFound(exp, new SelectInputExpression(
- Arrays.asList(new Pair<String, Expression>("foo", new AttributeExpression("bar")),
- new Pair<String, Expression>("bar", exp))));
+ List.of(new Pair<>("foo", new AttributeExpression("bar")),
+ new Pair<>("bar", exp))));
assertFound(exp, new StatementExpression(exp));
assertFound(exp, new StatementExpression(new AttributeExpression("foo"), exp));
assertFound(exp, new SwitchExpression(
- Collections.singletonMap("foo", exp),
+ Map.of("foo", exp),
new AttributeExpression("bar")));
assertFound(exp, new SwitchExpression(
- Collections.singletonMap("foo", new AttributeExpression("bar")),
+ Map.of("foo", new AttributeExpression("bar")),
exp));
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java
index 5bbf62bfff7..de512997b64 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java
@@ -55,7 +55,8 @@ import com.yahoo.vespa.indexinglanguage.expressions.ZCurveExpression;
import com.yahoo.vespa.indexinglanguage.linguistics.AnnotatorConfig;
import org.junit.Test;
-import java.util.Collections;
+
+import java.util.Map;
import static org.junit.Assert.assertEquals;
@@ -64,7 +65,6 @@ import static org.junit.Assert.assertEquals;
*/
public class ExpressionVisitorTestCase {
- @SuppressWarnings("unchecked")
@Test
public void requireThatAllExpressionsAreVisited() {
assertCount(3, new ArithmeticExpression(new InputExpression("foo"), ArithmeticExpression.Operator.ADD,
@@ -96,8 +96,8 @@ public class ExpressionVisitorTestCase {
assertCount(2, new ParenthesisExpression(new InputExpression("foo")));
assertCount(1, new RandomExpression(69));
assertCount(3, new ScriptExpression(new StatementExpression(new InputExpression("foo"))));
- assertCount(3, new SelectInputExpression(new Pair<String, Expression>("foo", new IndexExpression("bar")),
- new Pair<String, Expression>("bar", new IndexExpression("foo"))));
+ assertCount(3, new SelectInputExpression(new Pair<>("foo", new IndexExpression("bar")),
+ new Pair<>("bar", new IndexExpression("foo"))));
assertCount(1, new SetLanguageExpression());
assertCount(1, new ConstantExpression(new IntegerFieldValue(69)));
assertCount(1, new SetVarExpression("foo"));
@@ -105,7 +105,7 @@ public class ExpressionVisitorTestCase {
assertCount(2, new StatementExpression(new InputExpression("foo")));
assertCount(1, new SummaryExpression("foo"));
assertCount(1, new SubstringExpression(6, 9));
- assertCount(3, new SwitchExpression(Collections.singletonMap("foo", (Expression)new IndexExpression("bar")),
+ assertCount(3, new SwitchExpression(Map.of("foo", (Expression)new IndexExpression("bar")),
new InputExpression("baz")));
assertCount(1, new ThisExpression());
assertCount(1, new ToArrayExpression());
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java
index 62d333e356f..376677b6f57 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java
@@ -7,7 +7,6 @@ import com.yahoo.document.datatypes.IntegerFieldValue;
import com.yahoo.document.datatypes.StringFieldValue;
import org.junit.Test;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -45,10 +44,10 @@ public class SwitchTestCase {
cases.put("bar", bar);
SwitchExpression exp = new SwitchExpression(cases, baz);
- assertFalse(exp.equals(new Object()));
- assertFalse(exp.equals(new SwitchExpression(Collections.singletonMap("foo", foo))));
- assertFalse(exp.equals(new SwitchExpression(Collections.singletonMap("foo", foo), baz)));
- assertFalse(exp.equals(new SwitchExpression(cases)));
+ assertNotEquals(exp, new Object());
+ assertNotEquals(exp, new SwitchExpression(Map.of("foo", foo)));
+ assertNotEquals(exp, new SwitchExpression(Map.of("foo", foo), baz));
+ assertNotEquals(exp, new SwitchExpression(cases));
assertEquals(exp, new SwitchExpression(cases, baz));
assertEquals(exp.hashCode(), new SwitchExpression(cases, baz).hashCode());
}
@@ -56,7 +55,7 @@ public class SwitchTestCase {
@Test
public void requireThatExpressionCanBeVerified() {
Expression foo = SimpleExpression.newConversion(DataType.STRING, DataType.INT);
- Expression exp = new SwitchExpression(Collections.singletonMap("foo", foo));
+ Expression exp = new SwitchExpression(Map.of("foo", foo));
assertVerify(DataType.STRING, exp, DataType.STRING); // does not touch output
assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
@@ -68,15 +67,14 @@ public class SwitchTestCase {
cases.put("foo", SimpleExpression.newRequired(DataType.INT));
assertVerifyThrows(DataType.STRING, new SwitchExpression(cases),
"Expected int input, got string");
- assertVerifyThrows(DataType.STRING, new SwitchExpression(Collections.<String, Expression>emptyMap(),
- SimpleExpression.newRequired(DataType.INT)),
+ assertVerifyThrows(DataType.STRING, new SwitchExpression(Map.of(), SimpleExpression.newRequired(DataType.INT)),
"Expected int input, got string");
}
@Test
public void requireThatIllegalArgumentThrows() {
try {
- new SwitchExpression(Collections.<String, Expression>emptyMap()).execute(new IntegerFieldValue(69));
+ new SwitchExpression(Map.of()).execute(new IntegerFieldValue(69));
fail();
} catch (IllegalArgumentException e) {
assertEquals("Expected string input, got int", e.getMessage());
@@ -85,18 +83,18 @@ public class SwitchTestCase {
@Test
public void requireThatDefaultExpressionIsNullIfNotGiven() {
- assertNull(new SwitchExpression(Collections.<String, Expression>emptyMap()).getDefaultExpression());
+ assertNull(new SwitchExpression(Map.of()).getDefaultExpression());
}
@Test
public void requireThatIsEmptyReflectsOnBothCasesAndDefault() {
- assertTrue(new SwitchExpression(Collections.<String, Expression>emptyMap()).isEmpty());
- assertTrue(new SwitchExpression(Collections.<String, Expression>emptyMap(), null).isEmpty());
- assertFalse(new SwitchExpression(Collections.<String, Expression>emptyMap(),
+ assertTrue(new SwitchExpression(Map.of()).isEmpty());
+ assertTrue(new SwitchExpression(Map.of(), null).isEmpty());
+ assertFalse(new SwitchExpression(Map.of(),
new AttributeExpression("foo")).isEmpty());
- assertFalse(new SwitchExpression(Collections.singletonMap("foo", new AttributeExpression("foo")),
+ assertFalse(new SwitchExpression(Map.of("foo", new AttributeExpression("foo")),
null).isEmpty());
- assertFalse(new SwitchExpression(Collections.singletonMap("foo", new AttributeExpression("foo")),
+ assertFalse(new SwitchExpression(Map.of("foo", new AttributeExpression("foo")),
new AttributeExpression("foo")).isEmpty());
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/linguistics/LinguisticsAnnotatorTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/linguistics/LinguisticsAnnotatorTestCase.java
index 0bdf98f2ae0..136e71564d8 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/linguistics/LinguisticsAnnotatorTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/linguistics/LinguisticsAnnotatorTestCase.java
@@ -18,7 +18,9 @@ import com.yahoo.language.simple.SimpleToken;
import org.junit.Test;
import org.mockito.Mockito;
-import java.util.*;
+
+import java.util.List;
+import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -90,7 +92,7 @@ public class LinguisticsAnnotatorTestCase {
public void requireThatTermAnnotationsAreEmptyIfOrigIsLowerCase() {
SpanTree expected = new SpanTree(SpanTrees.LINGUISTICS);
expected.spanList().span(0, 3).annotate(new Annotation(AnnotationTypes.TERM));
- for (boolean specialToken : Arrays.asList(true, false)) {
+ for (boolean specialToken : List.of(true, false)) {
for (TokenType type : TokenType.values()) {
if (!specialToken && !type.isIndexable()) {
continue;
@@ -104,7 +106,7 @@ public class LinguisticsAnnotatorTestCase {
public void requireThatTermAnnotationsPreserveCasing() {
SpanTree expected = new SpanTree(SpanTrees.LINGUISTICS);
expected.spanList().span(0, 3).annotate(new Annotation(AnnotationTypes.TERM, new StringFieldValue("BaR")));
- for (boolean specialToken : Arrays.asList(true, false)) {
+ for (boolean specialToken : List.of(true, false)) {
for (TokenType type : TokenType.values()) {
if (!specialToken && !type.isIndexable()) {
continue;
@@ -153,7 +155,7 @@ public class LinguisticsAnnotatorTestCase {
public void requireThatTermReplacementsAreApplied() {
SpanTree expected = new SpanTree(SpanTrees.LINGUISTICS);
expected.spanList().span(0, 3).annotate(new Annotation(AnnotationTypes.TERM, new StringFieldValue("bar")));
- for (boolean specialToken : Arrays.asList(true, false)) {
+ for (boolean specialToken : List.of(true, false)) {
for (TokenType type : TokenType.values()) {
if (!specialToken && !type.isIndexable()) {
continue;
@@ -161,7 +163,7 @@ public class LinguisticsAnnotatorTestCase {
assertAnnotations(expected, "foo",
new AnnotatorConfig(),
newLinguistics(List.of(token("foo", "foo", type, specialToken)),
- Collections.singletonMap("foo", "bar")));
+ Map.of("foo", "bar")));
}
}
}
@@ -175,7 +177,7 @@ public class LinguisticsAnnotatorTestCase {
val.setSpanTree(spanTree);
Linguistics linguistics = newLinguistics(List.of(token("foo", "bar", TokenType.ALPHABETIC, false)),
- Collections.<String, String>emptyMap());
+ Map.of());
assertTrue(new LinguisticsAnnotator(linguistics, new AnnotatorConfig()).annotate(val));
assertEquals(spanTree, val.getSpanTree(SpanTrees.LINGUISTICS));
}
@@ -244,11 +246,11 @@ public class LinguisticsAnnotatorTestCase {
}
private static void assertAnnotations(SpanTree expected, String value, Token... tokens) {
- assertAnnotations(expected, value, new AnnotatorConfig(), newLinguistics(Arrays.asList(tokens), Collections.emptyMap()));
+ assertAnnotations(expected, value, new AnnotatorConfig(), newLinguistics(List.of(tokens), Map.of()));
}
private static void assertAnnotations(SpanTree expected, String value, AnnotatorConfig config, Token... tokens) {
- assertAnnotations(expected, value, config, newLinguistics(Arrays.asList(tokens), Collections.emptyMap()));
+ assertAnnotations(expected, value, config, newLinguistics(List.of(tokens), Map.of()));
}
private static void assertAnnotations(SpanTree expected, String str, AnnotatorConfig config, Linguistics linguistics) {
@@ -272,9 +274,12 @@ public class LinguisticsAnnotatorTestCase {
}
private Token replace(Token token, Map<String, String> replacementTerms) {
- var simpleToken = (SimpleToken)token;
- simpleToken.setTokenString(replacementTerms.getOrDefault(token.getTokenString(), token.getTokenString()));
- return simpleToken;
+ String tokenString = token.getTokenString();
+ if (tokenString != null && !replacementTerms.isEmpty()) {
+ var simpleToken = (SimpleToken)token;
+ simpleToken.setTokenString(replacementTerms.getOrDefault(token.getTokenString(), token.getTokenString()));
+ }
+ return token;
}
@Override
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java
index 3fd95220aca..44f4efb41cc 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java
@@ -19,9 +19,6 @@ import java.util.Set;
import java.util.stream.Collectors;
import static com.yahoo.stream.CustomCollectors.toLinkedMap;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.emptyMap;
-import static java.util.Collections.emptySet;
/**
* Datamodel for Yamas execute output
@@ -80,7 +77,7 @@ public class YamasJsonModel {
}
List<Metric> getMetricsList() {
- if (metrics == null) return emptyList();
+ if (metrics == null) return List.of();
return metrics.keySet().stream()
.map(name -> new Metric(MetricId.toMetricId(name), metrics.get(name)))
@@ -88,14 +85,14 @@ public class YamasJsonModel {
}
Map<DimensionId, String> getDimensionsById() {
- if (dimensions == null) return emptyMap();
+ if (dimensions == null) return Map.of();
return dimensions.keySet().stream().collect(toLinkedMap(DimensionId::toDimensionId,
name -> dimensions.get(name)));
}
Set<ConsumerId> getYamasConsumers() {
- if (routing == null || routing.get("yamas") == null) return emptySet();
+ if (routing == null || routing.get("yamas") == null) return Set.of();
return routing.get("yamas").namespaces.stream()
.map(ConsumerId::toConsumerId)
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java
index a83a28ff9c6..573292a6592 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java
@@ -7,7 +7,6 @@ import ai.vespa.metricsproxy.metric.Metrics;
import ai.vespa.metricsproxy.metric.model.DimensionId;
import ai.vespa.metricsproxy.metric.model.ServiceId;
-import java.util.Collections;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@@ -20,7 +19,7 @@ import java.util.concurrent.atomic.AtomicReference;
*/
public class VespaService implements Comparable<VespaService> {
- private static final Map<DimensionId, String> EMPTY_DIMENSIONS = Collections.emptyMap();
+ private static final Map<DimensionId, String> EMPTY_DIMENSIONS = Map.of();
private static final String DEFAULT_MONITORING_PREFIX = "vespa";
public static final String SEPARATOR = ".";
diff --git a/model-integration/src/main/java/ai/vespa/rankingexpression/importer/configmodelview/ImportedMlModels.java b/model-integration/src/main/java/ai/vespa/rankingexpression/importer/configmodelview/ImportedMlModels.java
index c97e4781889..9639d9598a8 100644
--- a/model-integration/src/main/java/ai/vespa/rankingexpression/importer/configmodelview/ImportedMlModels.java
+++ b/model-integration/src/main/java/ai/vespa/rankingexpression/importer/configmodelview/ImportedMlModels.java
@@ -7,7 +7,6 @@ import com.yahoo.yolean.Exceptions;
import java.io.File;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@@ -34,7 +33,7 @@ public class ImportedMlModels {
/** Create a null imported models */
public ImportedMlModels() {
- importedModels = Collections.emptyMap();
+ importedModels = Map.of();
}
public ImportedMlModels(File modelsDirectory, ExecutorService executor, Collection<MlModelImporter> importers) {
@@ -53,7 +52,7 @@ public class ImportedMlModels {
skippedModels.put(name, Exceptions.toMessageString(e));
}
});
- importedModels = Collections.unmodifiableMap(models);
+ importedModels = Map.copyOf(models);
}
/**
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Reports.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Reports.java
index 8e82307deb1..e10a4e82a0c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Reports.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Reports.java
@@ -6,7 +6,6 @@ import com.yahoo.slime.Inspector;
import com.yahoo.slime.ObjectTraverser;
import com.yahoo.slime.Type;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -20,8 +19,8 @@ public class Reports {
private final Map<String, Report> reports;
- public Reports() { this(Collections.emptyMap()); }
- private Reports(Map<String, Report> reports) { this.reports = Collections.unmodifiableMap(reports); }
+ public Reports() { this(Map.of()); }
+ private Reports(Map<String, Report> reports) { this.reports = Map.copyOf(reports); }
public boolean isEmpty() { return reports.isEmpty(); }
public Optional<Report> getReport(String id) { return Optional.ofNullable(reports.get(id)); }
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java
index 5409061c441..700a16577af 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ServiceMonitorStub.java
@@ -19,7 +19,6 @@ import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.service.monitor.ServiceModel;
import com.yahoo.vespa.service.monitor.ServiceMonitor;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -38,7 +37,7 @@ public class ServiceMonitorStub implements ServiceMonitor {
@Inject
@SuppressWarnings("unused")
public ServiceMonitorStub(NodeRepository nodeRepository) {
- this(Collections.emptyMap(), nodeRepository);
+ this(Map.of(), nodeRepository);
}
/** Create a service monitor where all nodes are initially up */
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java
index a2cf662a255..be0a532128f 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java
@@ -4,8 +4,8 @@ package com.yahoo.searchlib.rankingexpression.rule;
import com.yahoo.searchlib.rankingexpression.ExpressionFunction;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -23,12 +23,12 @@ public class FunctionReferenceContext {
/** Create a context for a single serialization task */
public FunctionReferenceContext() {
- this(Collections.emptyList());
+ this(List.of());
}
/** Create a context for a single serialization task */
public FunctionReferenceContext(Collection<ExpressionFunction> functions) {
- this(toMap(functions), Collections.emptyMap());
+ this(toMap(functions), Map.of());
}
public FunctionReferenceContext(Collection<ExpressionFunction> functions, Map<String, String> bindings) {
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java
index d1cb77fb1b4..271e367c1f4 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java
@@ -9,9 +9,9 @@ import com.yahoo.tensor.evaluation.TypeContext;
import static com.yahoo.searchlib.rankingexpression.Reference.wrapInRankingExpression;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -29,7 +29,7 @@ public class SerializationContext extends FunctionReferenceContext {
/** Create a context for a single serialization task */
public SerializationContext() {
- this(Collections.emptyList(), Collections.emptyMap(), Optional.empty(), new LinkedHashMap<>());
+ this(List.of(), Map.of(), Optional.empty(), new LinkedHashMap<>());
}
/**
@@ -40,7 +40,7 @@ public class SerializationContext extends FunctionReferenceContext {
*/
public SerializationContext(Collection<ExpressionFunction> functions,
Optional<TypeContext<Reference>> typeContext) {
- this(functions, Collections.emptyMap(), typeContext, new LinkedHashMap<>());
+ this(functions, Map.of(), typeContext, new LinkedHashMap<>());
}
/**
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java
index 0f367bb5425..7736b0e9ac7 100644
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java
@@ -12,7 +12,7 @@ import com.yahoo.searchlib.rankingexpression.rule.ConstantNode;
import com.yahoo.searchlib.rankingexpression.rule.NegativeNode;
import org.junit.Test;
-import java.util.Collections;
+import java.util.Map;
import static org.junit.Assert.*;
@@ -24,7 +24,7 @@ public class SimplifierTestCase {
@Test
public void testSimplify() throws ParseException {
Simplifier s = new Simplifier();
- TransformContext c = new TransformContext(Collections.emptyMap(), new MapTypeContext());
+ TransformContext c = new TransformContext(Map.of(), new MapTypeContext());
assertEquals("a + b", s.transform(new RankingExpression("a + b"), c).toString());
assertEquals("6.5", s.transform(new RankingExpression("1.0 + 2.0 + 3.5"), c).toString());
assertEquals("6.5", s.transform(new RankingExpression("1.0 + ( 2.0 + 3.5 )"), c).toString());
@@ -48,7 +48,7 @@ public class SimplifierTestCase {
@Test
public void testNaNExpression() throws ParseException {
Simplifier s = new Simplifier();
- TransformContext c = new TransformContext(Collections.emptyMap(), new MapTypeContext());
+ TransformContext c = new TransformContext(Map.of(), new MapTypeContext());
assertEquals("0 / 0", s.transform(new RankingExpression("0/0"), c).toString());
assertEquals("1 + 0.0 / 0.0", s.transform(new RankingExpression("1 + (1-1)/(2-2)"), c).toString());
}
@@ -56,7 +56,7 @@ public class SimplifierTestCase {
@Test
public void testSimplifyComplexExpression() throws ParseException {
RankingExpression initial = new RankingExpression("sqrt(if (if (INFERRED * 0.9 < INFERRED, GMP, (1 + 1.1) * INFERRED) < INFERRED * INFERRED - INFERRED, if (GMP < 85.80799542793133 * GMP, INFERRED, if (GMP < GMP, tanh(INFERRED), log(76.89956221113943))), tanh(tanh(INFERRED))) * sqrt(sqrt(GMP + INFERRED)) * GMP ) + 13.5 * (1 - GMP) * pow(GMP * 0.1, 2 + 1.1 * 0)");
- TransformContext c = new TransformContext(Collections.emptyMap(), new MapTypeContext());
+ TransformContext c = new TransformContext(Map.of(), new MapTypeContext());
RankingExpression simplified = new Simplifier().transform(initial, c);
Context context = new MapContext();
@@ -81,7 +81,7 @@ public class SimplifierTestCase {
@Test
public void testParenthesisPreservation() throws ParseException {
Simplifier s = new Simplifier();
- TransformContext c = new TransformContext(Collections.emptyMap(), new MapTypeContext());
+ TransformContext c = new TransformContext(Map.of(), new MapTypeContext());
CompositeNode transformed = (CompositeNode)s.transform(new RankingExpression("a + (b + c) / 100000000.0"), c).getRoot();
assertEquals("a + (b + c) / 1.0E8", transformed.toString());
}
@@ -89,7 +89,7 @@ public class SimplifierTestCase {
@Test
public void testOptimizingNegativeConstants() throws ParseException {
Simplifier s = new Simplifier();
- TransformContext c = new TransformContext(Collections.emptyMap(), new MapTypeContext());
+ TransformContext c = new TransformContext(Map.of(), new MapTypeContext());
assertEquals("-3", s.transform(new RankingExpression("-3"), c).toString());
assertEquals("-9.0", s.transform(new RankingExpression("-3 + -6"), c).toString());
assertEquals("-a", s.transform(new RankingExpression("-a"), c).toString());
diff --git a/standalone-container/src/main/java/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.java b/standalone-container/src/main/java/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.java
index 8da19fcb64b..5789a69a4db 100644
--- a/standalone-container/src/main/java/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.java
+++ b/standalone-container/src/main/java/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.java
@@ -32,7 +32,6 @@ import java.net.URLClassLoader;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Hashtable;
@@ -226,7 +225,7 @@ public final class ClassLoaderOsgiFramework implements OsgiFramework {
@Override
public Map<X509Certificate, List<X509Certificate>> getSignerCertificates(int signersType) {
- return Collections.emptyMap();
+ return Map.of();
}
@Override
diff --git a/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java b/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java
index dd76827dd2b..1ae5171c93a 100644
--- a/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java
+++ b/tenant-cd-api/src/main/java/ai/vespa/hosted/cd/Endpoint.java
@@ -5,7 +5,6 @@ import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
-import java.util.Collections;
import java.util.Map;
/**
@@ -34,7 +33,7 @@ public interface Endpoint {
/** Creates a request against the endpoint, with the given path. */
default HttpRequest.Builder request(String path) {
- return request(path, Collections.emptyMap());
+ return request(path, Map.of());
}
}
diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java
index e07108a84ad..35faa89388b 100644
--- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java
+++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java
@@ -18,7 +18,6 @@ import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Path;
import java.time.Duration;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@@ -26,7 +25,6 @@ import java.util.OptionalDouble;
import java.util.OptionalInt;
import static ai.vespa.feed.client.FeedClientBuilder.Compression.auto;
-import static ai.vespa.feed.client.FeedClientBuilder.Compression.none;
/**
* Parses command line arguments
@@ -139,7 +137,7 @@ class CliArguments {
Map<String, String> headers() throws CliArgumentsException {
String[] rawArguments = arguments.getOptionValues(HEADER_OPTION);
- if (rawArguments == null) return Collections.emptyMap();
+ if (rawArguments == null) return Map.of();
Map<String, String> headers = new HashMap<>();
for (String rawArgument : rawArguments) {
if (rawArgument.startsWith("\"") || rawArgument.startsWith("'")) {
@@ -152,7 +150,7 @@ class CliArguments {
if (colonIndex == -1) throw new CliArgumentsException("Invalid header: '" + rawArgument + "'");
headers.put(rawArgument.substring(0, colonIndex), rawArgument.substring(colonIndex + 1).trim());
}
- return Collections.unmodifiableMap(headers);
+ return Map.copyOf(headers);
}
boolean sslHostnameVerificationDisabled() { return has(DISABLE_SSL_HOSTNAME_VERIFICATION_OPTION); }
diff --git a/vespajlib/src/test/java/com/yahoo/collections/LazyMapTest.java b/vespajlib/src/test/java/com/yahoo/collections/LazyMapTest.java
index 940dc159a17..930b274ef3e 100644
--- a/vespajlib/src/test/java/com/yahoo/collections/LazyMapTest.java
+++ b/vespajlib/src/test/java/com/yahoo/collections/LazyMapTest.java
@@ -4,7 +4,6 @@ package com.yahoo.collections;
import org.junit.Test;
import org.mockito.Mockito;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -22,7 +21,6 @@ import static org.junit.Assert.fail;
* @author Simon Thoresen Hult
*/
public class LazyMapTest {
-
@Test
public void requireThatInitialDelegateIsEmpty() {
LazyMap<String, String> map = newLazyMap(new HashMap<String, String>());
@@ -36,14 +34,14 @@ public class LazyMapTest {
assertEquals(LazyMap.SingletonMap.class, map.getDelegate().getClass());
map = newLazyMap(new HashMap<String, String>());
- map.putAll(Collections.singletonMap("foo", "bar"));
+ map.put("foo", "bar");
assertEquals(LazyMap.SingletonMap.class, map.getDelegate().getClass());
}
@Test
public void requireThatEmptyMapPutAllEmptyMapDoesNotUpgradeToSingletonMap() {
LazyMap<String, String> map = newLazyMap(new HashMap<String, String>());
- map.putAll(Collections.<String, String>emptyMap());
+ map.putAll(Map.of());
assertEquals(LazyMap.EmptyMap.class, map.getDelegate().getClass());
}
@@ -81,7 +79,7 @@ public class LazyMapTest {
assertEquals("bar", map.put("foo", "baz"));
assertEquals("baz", map.get("foo"));
assertSame(delegate, map.getDelegate());
- map.putAll(Collections.singletonMap("foo", "cox"));
+ map.put("foo", "cox");
assertSame(delegate, map.getDelegate());
assertEquals("cox", map.get("foo"));
}
@@ -89,7 +87,7 @@ public class LazyMapTest {
@Test
public void requireThatSingletonMapPutAllEmptyMapDoesNotUpgradeToFinalMap() {
LazyMap<String, String> map = newSingletonMap("foo", "bar");
- map.putAll(Collections.<String, String>emptyMap());
+ map.putAll(Map.of());
assertEquals(LazyMap.SingletonMap.class, map.getDelegate().getClass());
}
@@ -188,7 +186,7 @@ public class LazyMapTest {
Mockito.verify(delegate).put("foo", "bar");
Mockito.verify(delegate).put("baz", "cox");
- Map<String, String> arg = Collections.singletonMap("baz", "cox");
+ Map<String, String> arg = Map.of("baz", "cox");
map.putAll(arg);
Mockito.verify(delegate).putAll(arg);
diff --git a/zookeeper-server/zookeeper-server-3.9.2/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java b/zookeeper-server/zookeeper-server-3.9.2/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java
index 8ea94fd4daf..99c4ae16dce 100644
--- a/zookeeper-server/zookeeper-server-3.9.2/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java
+++ b/zookeeper-server/zookeeper-server-3.9.2/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java
@@ -19,7 +19,6 @@
package org.apache.zookeeper.server.quorum;
import java.io.IOException;
-import java.util.Collections;
import java.util.Map;
import org.apache.zookeeper.jmx.MBeanRegistry;
import org.apache.zookeeper.server.DataTreeBean;
@@ -61,7 +60,7 @@ public abstract class LearnerZooKeeperServer extends QuorumZooKeeperServer {
if (sessionTracker != null) {
return ((LearnerSessionTracker) sessionTracker).snapshot();
}
- Map<Long, Integer> map = Collections.emptyMap();
+ Map<Long, Integer> map = Map.of();
return map;
}
diff --git a/zookeeper-server/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java b/zookeeper-server/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java
index 8ea94fd4daf..99c4ae16dce 100644
--- a/zookeeper-server/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java
+++ b/zookeeper-server/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerZooKeeperServer.java
@@ -19,7 +19,6 @@
package org.apache.zookeeper.server.quorum;
import java.io.IOException;
-import java.util.Collections;
import java.util.Map;
import org.apache.zookeeper.jmx.MBeanRegistry;
import org.apache.zookeeper.server.DataTreeBean;
@@ -61,7 +60,7 @@ public abstract class LearnerZooKeeperServer extends QuorumZooKeeperServer {
if (sessionTracker != null) {
return ((LearnerSessionTracker) sessionTracker).snapshot();
}
- Map<Long, Integer> map = Collections.emptyMap();
+ Map<Long, Integer> map = Map.of();
return map;
}