aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-08-02 13:12:38 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2023-08-02 13:12:52 +0200
commit93789e85dbcb0124fdde74fde9c1ba506ec7e1ae (patch)
tree0105e5bf44f8a4d8e8e6c604233adcbf48dd9c23 /config-model
parentcc83212d4c9e1bce12977cdd6d7ff2049c3faa45 (diff)
Modernize code
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java43
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/EngineFactoryBuilder.java6
2 files changed, 17 insertions, 32 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
index 6078215f9b6..74c1b7400c1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
@@ -1,7 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.content;
-import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.ClusterMembership;
@@ -132,8 +131,7 @@ public class StorageGroup {
public void getConfig(StorDistributionConfig.Group.Builder builder) {
builder.index(index == null ? "invalid" : index);
builder.name(name == null ? "invalid" : name);
- if (partitions.isPresent())
- builder.partitions(partitions.get());
+ partitions.ifPresent(builder::partitions);
for (StorageNode node : nodes) {
StorDistributionConfig.Group.Nodes.Builder nb = new StorDistributionConfig.Group.Nodes.Builder();
nb.index(node.getDistributionKey());
@@ -384,11 +382,7 @@ public class StorageGroup {
Map<Optional<ClusterSpec.Group>, Map<HostResource, ClusterMembership>> hostsPerGroup = new LinkedHashMap<>();
for (Map.Entry<HostResource, ClusterMembership> entry : hostMapping.entrySet()) {
Optional<ClusterSpec.Group> group = entry.getValue().cluster().group();
- Map<HostResource, ClusterMembership> hostsInGroup = hostsPerGroup.get(group);
- if (hostsInGroup == null) {
- hostsInGroup = new LinkedHashMap<>();
- hostsPerGroup.put(group, hostsInGroup);
- }
+ Map<HostResource, ClusterMembership> hostsInGroup = hostsPerGroup.computeIfAbsent(group, k -> new LinkedHashMap<>());
hostsInGroup.put(entry.getKey(), entry.getValue());
}
return hostsPerGroup;
@@ -396,23 +390,15 @@ public class StorageGroup {
}
- private static class XmlNodeBuilder {
-
- private final ModelElement clusterElement;
- private final ModelElement element;
-
- private XmlNodeBuilder(ModelElement clusterElement, ModelElement element) {
- this.clusterElement = clusterElement;
- this.element = element;
- }
+ private record XmlNodeBuilder(ModelElement clusterElement, ModelElement element) {
public StorageNode build(DeployState deployState, ContentCluster parent, StorageGroup storageGroup) {
- StorageNode sNode = new StorageNode.Builder().build(deployState, parent.getStorageCluster(), element.getXml());
- PersistenceEngine provider = parent.getPersistence().create(deployState, sNode, storageGroup, element);
- new Distributor.Builder(clusterElement, provider).build(deployState, parent.getDistributorNodes(), element.getXml());
- return sNode;
- }
- }
+ StorageNode sNode = new StorageNode.Builder().build(deployState, parent.getStorageCluster(), element.getXml());
+ PersistenceEngine provider = parent.getPersistence().create(deployState, sNode, storageGroup, element);
+ new Distributor.Builder(clusterElement, provider).build(deployState, parent.getDistributorNodes(), element.getXml());
+ return sNode;
+ }
+ }
/**
* Creates a content group builder from a group and/or nodes element.
@@ -441,14 +427,13 @@ public class StorageGroup {
childAsString(groupElement, VespaDomBuilder.VESPAMALLOC_DEBUG),
childAsString(groupElement, VespaDomBuilder.VESPAMALLOC_DEBUG_STACKTRACE));
- List<GroupBuilder> subGroups = groupElement.isPresent() ? collectSubGroups(isHosted, group, groupElement.get())
- : List.of();
+ List<GroupBuilder> subGroups = groupElement.map(modelElement -> collectSubGroups(isHosted, group, modelElement)).orElseGet(List::of);
List<XmlNodeBuilder> explicitNodes = new ArrayList<>();
explicitNodes.addAll(collectExplicitNodes(groupElement));
explicitNodes.addAll(collectExplicitNodes(nodesElement));
- if (subGroups.size() > 0 && nodesElement.isPresent())
+ if (!subGroups.isEmpty() && nodesElement.isPresent())
throw new IllegalArgumentException("A group can contain either explicit subgroups or a nodes specification, but not both.");
Optional<NodesSpecification> nodeRequirement;
@@ -474,12 +459,10 @@ public class StorageGroup {
return Optional.ofNullable(element.get().childAsString(childTagName));
}
private Optional<Long> childAsLong(Optional<ModelElement> element, String childTagName) {
- if (element.isEmpty()) return Optional.empty();
- return Optional.ofNullable(element.get().childAsLong(childTagName));
+ return element.map(modelElement -> modelElement.childAsLong(childTagName));
}
private Optional<Boolean> childAsBoolean(Optional<ModelElement> element, String childTagName) {
- if (element.isEmpty()) return Optional.empty();
- return Optional.ofNullable(element.get().childAsBoolean(childTagName));
+ return element.map(modelElement -> modelElement.childAsBoolean(childTagName));
}
private boolean booleanAttributeOr(Optional<ModelElement> element, String attributeName, boolean defaultValue) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/EngineFactoryBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/EngineFactoryBuilder.java
index 65e329ab622..8600b40d5a6 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/EngineFactoryBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/EngineFactoryBuilder.java
@@ -2,7 +2,9 @@
package com.yahoo.vespa.model.content.cluster;
import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
-import com.yahoo.vespa.model.content.engines.*;
+import com.yahoo.vespa.model.content.engines.DummyPersistence;
+import com.yahoo.vespa.model.content.engines.PersistenceEngine;
+import com.yahoo.vespa.model.content.engines.ProtonEngine;
/**
* Creates the correct engine factory from XML.
@@ -18,7 +20,7 @@ public class EngineFactoryBuilder {
if (persistence.child("proton") != null) {
return new ProtonEngine.Factory(c.getSearch());
} else if (persistence.child("dummy") != null) {
- return new com.yahoo.vespa.model.content.engines.DummyPersistence.Factory();
+ return new DummyPersistence.Factory();
}
}