diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-10-19 14:49:42 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-10-19 14:49:42 +0200 |
commit | 70ef529c2a86d9a2768dac1914de78f6a56ebbc6 (patch) | |
tree | 02afafff8a096712d9c6ac49a43aacdc1ab07d8d /config-model | |
parent | 6e342bed5e62cb9a2b42d0a0c9e6554d9e555a6c (diff) |
Use an SettableOptional to handle xml processing independant of element order.
Diffstat (limited to 'config-model')
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")); |