From 2bffd4cc700c46053ebd834c20fbd5d3a02e7cad Mon Sep 17 00:00:00 2001 From: Mike Kamornikov Date: Tue, 19 Dec 2023 21:25:56 +0100 Subject: [PATCH] Add UnlockExperimentalVMOptions to priority JVM options (#9476) Signed-off-by: Mikhail Kamornikau --- .../cluster/model/JvmOptionUtils.java | 2 +- .../cluster/model/JvmOptionUtilsTest.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/cluster-operator/src/main/java/io/strimzi/operator/cluster/model/JvmOptionUtils.java b/cluster-operator/src/main/java/io/strimzi/operator/cluster/model/JvmOptionUtils.java index 16ba193ff0..c909829656 100644 --- a/cluster-operator/src/main/java/io/strimzi/operator/cluster/model/JvmOptionUtils.java +++ b/cluster-operator/src/main/java/io/strimzi/operator/cluster/model/JvmOptionUtils.java @@ -29,7 +29,7 @@ public final class JvmOptionUtils { /** * Set of JVM performance options to be prioritized in sorting. */ - private static final Set JVM_PERFORMANCE_PRIORITY_OPTIONS = Set.of("UnlockDiagnosticVMOptions"); + private static final Set JVM_PERFORMANCE_PRIORITY_OPTIONS = Set.of("UnlockDiagnosticVMOptions", "UnlockExperimentalVMOptions"); private static final String X_MS = "-Xms"; private static final String X_MX = "-Xmx"; diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/JvmOptionUtilsTest.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/JvmOptionUtilsTest.java index b2f0448092..e7d81ae6ec 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/JvmOptionUtilsTest.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/JvmOptionUtilsTest.java @@ -224,6 +224,29 @@ void testThatUnlockDiagnosticVMOptionsPerformanceOptionIsAlwaysSetFirst() { assertThat(envVars, equalTo(List.of(expectedPerformanceOpts))); } + @ParallelTest + void testThatUnlockExperimentalVMOptionsPerformanceOptionIsAlwaysSetFirst() { + // when + var envVars = new ArrayList(); + var jvmOptions = new JvmOptions(); + jvmOptions.setXx(Map.of( + "a", "1", + "b", "false", + "c", "true", + "UnlockExperimentalVMOptions", "true", + "z", "anything")); + + // when + JvmOptionUtils.jvmPerformanceOptions(envVars, jvmOptions); + + // then + var expectedPerformanceOpts = new EnvVarBuilder() + .withName(AbstractModel.ENV_VAR_KAFKA_JVM_PERFORMANCE_OPTS) + .withValue("-XX:+UnlockExperimentalVMOptions -XX:a=1 -XX:-b -XX:+c -XX:z=anything") + .build(); + assertThat(envVars, equalTo(List.of(expectedPerformanceOpts))); + } + @ParallelTest void testThatJavaOptionsAreIgnoredOnNullJvmOptions() { // given