summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-01-06 08:31:49 +0100
committerHarald Musum <musum@yahooinc.com>2022-01-06 08:31:49 +0100
commita74719efbde771c979041a234442eb098edc681d (patch)
tree9c5b218a82dff8a10e6d3dc00d84d929259b9237 /config-model
parentacde63829224e901a86fb2d570f707fc3065ef64 (diff)
Warn when using 'jvmargs' or 'jvm-options' in services.xml
Log application package warning and note that those options are deprecated and will be removed in Vespa 8
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java21
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTestBase.java9
3 files changed, 23 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 7f9364f904f..657eb6a29e7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -1095,23 +1095,34 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
String jvmOptions;
if (nodesElement.hasAttribute(VespaDomBuilder.JVM_OPTIONS)) {
jvmOptions = nodesElement.getAttribute(VespaDomBuilder.JVM_OPTIONS);
- validateJvmOptions(jvmOptions);
if (nodesElement.hasAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME)) {
String jvmArgs = nodesElement.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME);
- throw new IllegalArgumentException("You have specified both jvm-options='" + jvmOptions + "'" +
+ throw new IllegalArgumentException("You have specified both deprecated jvm-options='" + jvmOptions + "'" +
" and deprecated jvmargs='" + jvmArgs +
- "'. Merge jvmargs into 'options' in 'jvm' element." +
+ "'. 'jvm-options' and 'jvmargs' are deprecated and will be removed in Vespa 8." +
+ " Please merge 'jvmargs' into 'options' or 'gc-options' in 'jvm' element." +
" See https://docs.vespa.ai/en/reference/services-container.html#jvm");
}
+ if (! jvmOptions.isEmpty())
+ logger.logApplicationPackage(WARNING, "'jvm-options' is deprecated and will be removed in Vespa 8." +
+ " Please merge 'jvm-options' into 'options' or 'gc-options' in 'jvm' element." +
+ " See https://docs.vespa.ai/en/reference/services-container.html#jvm");
} else {
jvmOptions = nodesElement.getAttribute(VespaDomBuilder.JVMARGS_ATTRIB_NAME);
- validateJvmOptions(jvmOptions);
if (incompatibleGCOptions(jvmOptions)) {
- logger.logApplicationPackage(WARNING, "You need to move your GC-related options from deprecated 'jvmargs' to 'gc-options' in 'jvm' element." +
+ logger.logApplicationPackage(WARNING, "You need to move your GC-related options from deprecated 'jvmargs'" +
+ " to 'gc-options' in 'jvm' element. 'jvmargs' is deprecated and will be removed in Vespa 8." +
" See https://docs.vespa.ai/en/reference/services-container.html#jvm");
cluster.setJvmGCOptions(ContainerCluster.G1GC);
}
+ if (! jvmOptions.isEmpty())
+ logger.logApplicationPackage(WARNING, "'jvmargs' is deprecated and will be removed in Vespa 8." +
+ " Please merge 'jvmargs' into 'options' or 'gc-options' in 'jvm' element." +
+ " See https://docs.vespa.ai/en/reference/services-container.html#jvm");
}
+
+ validateJvmOptions(jvmOptions);
+
return jvmOptions;
}
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 0f3121afd24..2447709f778 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
@@ -1534,8 +1534,9 @@ public class ModelProvisioningTest {
fail("Expected exception");
}
catch (IllegalArgumentException e) {
- assertEquals("You have specified both jvm-options='xyz' and deprecated jvmargs='abc'. " +
- "Merge jvmargs into 'options' in 'jvm' element. " +
+ assertEquals("You have specified both deprecated jvm-options='xyz' and deprecated jvmargs='abc'. " +
+ "'jvm-options' and 'jvmargs' are deprecated and will be removed in Vespa 8. " +
+ "Please merge 'jvmargs' into 'options' or 'gc-options' in 'jvm' element. " +
"See https://docs.vespa.ai/en/reference/services-container.html#jvm",
e.getMessage());
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTestBase.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTestBase.java
index 5f6513f5803..cfe4b72f37d 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTestBase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTestBase.java
@@ -9,12 +9,11 @@ import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.test.MockRoot;
import com.yahoo.container.ComponentsConfig;
import com.yahoo.vespa.model.VespaModel;
-import com.yahoo.vespa.model.container.ContainerCluster;
import com.yahoo.vespa.model.container.ApplicationContainerCluster;
+import com.yahoo.vespa.model.container.ContainerCluster;
import com.yahoo.vespa.model.container.ContainerModel;
import com.yahoo.vespa.model.container.component.Component;
import com.yahoo.vespa.model.container.search.ContainerSearch;
-import com.yahoo.vespa.model.search.AbstractSearchCluster;
import org.junit.Before;
import org.w3c.dom.Element;
@@ -61,7 +60,7 @@ public abstract class ContainerModelBuilderTestBase {
for (Element containerElem : containerElems) {
ContainerModel model = new ContainerModelBuilder(false, ContainerModelBuilder.Networking.enable)
.build(deployState, vespaModel, null, root, containerElem);
- ContainerCluster cluster = model.getCluster();
+ ContainerCluster<?> cluster = model.getCluster();
generateDefaultSearchChains(cluster);
}
root.freezeModelTopology();
@@ -75,10 +74,10 @@ public abstract class ContainerModelBuilderTestBase {
createModel(root, DeployState.createTestState(testLogger), null, containerElems);
}
- private static void generateDefaultSearchChains(ContainerCluster cluster) {
+ private static void generateDefaultSearchChains(ContainerCluster<?> cluster) {
ContainerSearch search = cluster.getSearch();
if (search != null)
- search.initializeSearchChains(Collections.<String, AbstractSearchCluster>emptyMap());
+ search.initializeSearchChains(Collections.emptyMap());
}
@Before