|
51 | 51 | import java.util.Arrays;
|
52 | 52 | import java.util.List;
|
53 | 53 | import java.util.Locale;
|
| 54 | +import java.util.Optional; |
54 | 55 | import java.util.Random;
|
55 | 56 | import java.util.concurrent.atomic.AtomicReference;
|
56 | 57 | import java.util.stream.Collectors;
|
@@ -97,24 +98,25 @@ public void apply(Project project) {
|
97 | 98 | JavaVersion minimumCompilerVersion = JavaVersion.toVersion(getResourceContents("/minimumCompilerVersion"));
|
98 | 99 | JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(getResourceContents("/minimumRuntimeVersion"));
|
99 | 100 |
|
100 |
| - File runtimeJavaHome = findRuntimeJavaHome(); |
101 |
| - boolean isRuntimeJavaHomeSet = Jvm.current().getJavaHome().equals(runtimeJavaHome) == false; |
| 101 | + Optional<File> selectedRuntimeJavaHome = findRuntimeJavaHome(); |
| 102 | + File actualRuntimeJavaHome = selectedRuntimeJavaHome.orElse(Jvm.current().getJavaHome()); |
| 103 | + boolean isRuntimeJavaHomeSet = selectedRuntimeJavaHome.isPresent(); |
102 | 104 |
|
103 | 105 | GitInfo gitInfo = GitInfo.gitInfo(project.getRootDir());
|
104 | 106 |
|
105 | 107 | BuildParams.init(params -> {
|
106 | 108 | params.reset();
|
107 |
| - params.setRuntimeJavaHome(runtimeJavaHome); |
| 109 | + params.setRuntimeJavaHome(actualRuntimeJavaHome); |
108 | 110 | params.setJavaToolChainSpec(resolveToolchainSpecFromEnv());
|
109 | 111 | params.setRuntimeJavaVersion(
|
110 | 112 | determineJavaVersion(
|
111 | 113 | "runtime java.home",
|
112 |
| - runtimeJavaHome, |
| 114 | + actualRuntimeJavaHome, |
113 | 115 | isRuntimeJavaHomeSet ? minimumRuntimeVersion : Jvm.current().getJavaVersion()
|
114 | 116 | )
|
115 | 117 | );
|
116 | 118 | params.setIsRuntimeJavaHomeSet(isRuntimeJavaHomeSet);
|
117 |
| - JvmInstallationMetadata runtimeJdkMetaData = metadataDetector.getMetadata(getJavaInstallation(runtimeJavaHome)); |
| 119 | + JvmInstallationMetadata runtimeJdkMetaData = metadataDetector.getMetadata(getJavaInstallation(actualRuntimeJavaHome)); |
118 | 120 | params.setRuntimeJavaDetails(formatJavaVendorDetails(runtimeJdkMetaData));
|
119 | 121 | params.setJavaVersions(getAvailableJavaVersions());
|
120 | 122 | params.setMinimumCompilerVersion(minimumCompilerVersion);
|
@@ -298,19 +300,19 @@ private static void assertMinimumCompilerVersion(JavaVersion minimumCompilerVers
|
298 | 300 | }
|
299 | 301 | }
|
300 | 302 |
|
301 |
| - private File findRuntimeJavaHome() { |
| 303 | + private Optional<File> findRuntimeJavaHome() { |
302 | 304 | String runtimeJavaProperty = System.getProperty("runtime.java");
|
303 | 305 |
|
304 | 306 | if (runtimeJavaProperty != null) {
|
305 |
| - return resolveJavaHomeFromToolChainService(runtimeJavaProperty); |
| 307 | + return Optional.of(resolveJavaHomeFromToolChainService(runtimeJavaProperty)); |
306 | 308 | }
|
307 | 309 | String env = System.getenv("RUNTIME_JAVA_HOME");
|
308 | 310 | if (env != null) {
|
309 |
| - return new File(env); |
| 311 | + return Optional.of(new File(env)); |
310 | 312 | }
|
311 | 313 | // fall back to tool chain if set.
|
312 | 314 | env = System.getenv("JAVA_TOOLCHAIN_HOME");
|
313 |
| - return env == null ? Jvm.current().getJavaHome() : new File(env); |
| 315 | + return env == null ? Optional.empty() : Optional.of(new File(env)); |
314 | 316 | }
|
315 | 317 |
|
316 | 318 | @NotNull
|
|
0 commit comments