From 705979c2be4bc3abc70b868d99ac3be59e2507bf Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 28 Jun 2021 18:54:20 -0700 Subject: [PATCH] Use JavaVersion class in ProcessExecutor to conditionally add JVM options (e.g. --add-opens) based on JRE version. Resolves gh-497. --- .../data/gemfire/process/ProcessExecutor.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/spring-data-geode/src/test/java/org/springframework/data/gemfire/process/ProcessExecutor.java b/spring-data-geode/src/test/java/org/springframework/data/gemfire/process/ProcessExecutor.java index 566527d0..eb54e489 100644 --- a/spring-data-geode/src/test/java/org/springframework/data/gemfire/process/ProcessExecutor.java +++ b/spring-data-geode/src/test/java/org/springframework/data/gemfire/process/ProcessExecutor.java @@ -26,6 +26,7 @@ import java.util.stream.Collectors; import org.springframework.data.gemfire.test.support.FileSystemUtils; import org.springframework.data.gemfire.util.CollectionUtils; +import org.springframework.data.gemfire.util.JavaVersion; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -86,12 +87,7 @@ public abstract class ProcessExecutor { command.add(JAVA_EXE.getAbsolutePath()); command.add("-server"); command.add("-ea"); - command.add("--add-opens"); - command.add("java.base/java.lang=ALL-UNNAMED"); - command.add("--add-opens"); - command.add("java.base/java.nio=ALL-UNNAMED"); - command.add("--add-opens"); - command.add("java.base/java.util=ALL-UNNAMED"); + configureJava16JvmOptions(command); command.add("-classpath"); command.add(StringUtils.hasText(classpath) ? classpath : JAVA_CLASSPATH); command.addAll(getSpringGemFireSystemProperties()); @@ -125,6 +121,20 @@ public abstract class ProcessExecutor { return commandString.toString().trim(); } + protected static List configureJava16JvmOptions(List command) { + + if (JavaVersion.current().isNewerThanOrEqualTo(JavaVersion.SIXTEEN)) { + command.add("--add-opens"); + command.add("java.base/java.lang=ALL-UNNAMED"); + command.add("--add-opens"); + command.add("java.base/java.nio=ALL-UNNAMED"); + command.add("--add-opens"); + command.add("java.base/java.util=ALL-UNNAMED"); + } + + return command; + } + protected static Collection getSpringGemFireSystemProperties() { return System.getProperties().stringPropertyNames().stream()