aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-10-19 14:49:42 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-10-19 14:49:42 +0200
commit70ef529c2a86d9a2768dac1914de78f6a56ebbc6 (patch)
tree02afafff8a096712d9c6ac49a43aacdc1ab07d8d /config-model
parent6e342bed5e62cb9a2b42d0a0c9e6554d9e555a6c (diff)
Use an SettableOptional to handle xml processing independant of element order.
Diffstat (limited to 'config-model')
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java4
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java9
3 files changed, 14 insertions, 6 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index c077060cc96..ec8db5faa05 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -33,6 +33,7 @@ import com.yahoo.container.logging.AccessLog;
import com.yahoo.container.usability.BindingsOverviewHandler;
import com.yahoo.document.config.DocumentmanagerConfig;
import com.yahoo.jdisc.http.ServletPathsConfig;
+import com.yahoo.lang.SettableOptional;
import com.yahoo.metrics.simple.runtime.MetricProperties;
import com.yahoo.osgi.provider.model.ComponentModel;
import com.yahoo.prelude.semantics.SemanticRulesConfig;
@@ -181,7 +182,7 @@ public final class ContainerCluster
private Zone zone;
private Optional<String> hostClusterId = Optional.empty();
- private Optional<Integer> memoryPercentage = Optional.empty();
+ private final SettableOptional<Integer> memoryPercentage = new SettableOptional<>();
private static class AcceptAllVerifier implements ContainerClusterVerifier {
@Override
@@ -783,13 +784,13 @@ public final class ContainerCluster
*/
public Optional<String> getHostClusterId() { return hostClusterId; }
- public void setMemoryPercentage(Optional<Integer> memoryPercentage) { this.memoryPercentage = memoryPercentage; }
+ public void setMemoryPercentage(Optional<Integer> memoryPercentage) { this.memoryPercentage.set(memoryPercentage); }
/**
* Returns the percentage of host physical memory this application has specified for nodes in this cluster,
* or empty if this is not specified by the application.
*/
- public Optional<Integer> getMemoryPercentage() { return memoryPercentage; }
+ public SettableOptional<Integer> getMemoryPercentage() { return memoryPercentage; }
boolean messageBusEnabled() { return messageBusEnabled; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
index 36feba34680..227deca959f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.container.search;
import com.yahoo.binaryprefix.BinaryPrefix;
import com.yahoo.binaryprefix.BinaryScaledAmount;
import com.yahoo.container.bundle.BundleInstantiationSpecification;
+import com.yahoo.lang.SettableOptional;
import com.yahoo.osgi.provider.model.ComponentModel;
import com.yahoo.prelude.fastsearch.FS4ResourcePool;
import com.yahoo.prelude.semantics.SemanticRulesConfig;
@@ -47,7 +48,7 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains>
private SemanticRules semanticRules;
private PageTemplates pageTemplates;
private final ContainerCluster owningCluster;
- private final Optional<Integer> memoryPercentage;
+ private final SettableOptional<Integer> memoryPercentage;
public ContainerSearch(ContainerCluster cluster, SearchChains chains, Options options) {
super(chains);
@@ -200,6 +201,7 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains>
public Options getOptions() {
return options;
}
+ public Optional<Integer> getMemoryPercentage() { return memoryPercentage.asOptional(); }
/**
* Struct that encapsulates qrserver options.
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index 786abc3f85a..d4a11052a71 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -82,6 +82,7 @@ public class ModelProvisioningTest {
" <nodes count=\"3\"/>" +
"</jdisc>" +
"<jdisc id='mydisc2' version='1.0'>" +
+ " <search/>" +
" <document-processing/>" +
" <handler id='myHandler'>" +
" <component id='injected' />" +
@@ -131,13 +132,17 @@ public class ModelProvisioningTest {
assertThat(model.getContainerClusters().get("mydisc").getContainers().get(0).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
assertThat(model.getContainerClusters().get("mydisc").getContainers().get(1).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
assertThat(model.getContainerClusters().get("mydisc").getContainers().get(2).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
- assertThat(model.getContainerClusters().get("mydisc").getMemoryPercentage(), is(Optional.empty()));
+ assertThat(model.getContainerClusters().get("mydisc").getMemoryPercentage().asOptional(), is(Optional.empty()));
assertThat(model.getContainerClusters().get("mydisc2").getContainers().get(0).getJvmArgs(), is("-verbosegc"));
assertThat(model.getContainerClusters().get("mydisc2").getContainers().get(1).getJvmArgs(), is("-verbosegc"));
assertThat(model.getContainerClusters().get("mydisc2").getContainers().get(0).getPreLoad(), is("lib/blablamalloc.so"));
assertThat(model.getContainerClusters().get("mydisc2").getContainers().get(1).getPreLoad(), is("lib/blablamalloc.so"));
- assertThat(model.getContainerClusters().get("mydisc2").getMemoryPercentage(), is(Optional.of(45)));
+ assertThat(model.getContainerClusters().get("mydisc2").getMemoryPercentage().asOptional(), is(Optional.of(45)));
+ QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
+ model.getContainerClusters().get("mydisc2").getConfig(qrStartBuilder);
+ QrStartConfig qrsStartConfig = new QrStartConfig(qrStartBuilder);
+ assertEquals(45, qrsStartConfig.jvm().heapSizeAsPercentageOfPhysicalMemory());
HostSystem hostSystem = model.getHostSystem();
assertNotNull(hostSystem.getHostByHostname("myhost0"));