From 09a2c1e585a071b5fd1cdfdeb443821908974079 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Thu, 27 Jul 2023 16:03:15 +0200 Subject: [PATCH] Resolve SDKMAN candidates directory from environment. (#54) Evaluate SDKMAN environment variables (SDKMAN_DIR & SDKMAN_CANDIDATES_DIR) to resolve the location of java candidates. --- .../data/release/io/JavaRuntimes.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/release/io/JavaRuntimes.java b/src/main/java/org/springframework/data/release/io/JavaRuntimes.java index fd6d68f..c41d059 100644 --- a/src/main/java/org/springframework/data/release/io/JavaRuntimes.java +++ b/src/main/java/org/springframework/data/release/io/JavaRuntimes.java @@ -51,6 +51,7 @@ import com.dd.plist.XMLPropertyListParser; * Utility to detect a Java runtime version. * * @author Mark Paluch + * @author Christoph Strobl */ public class JavaRuntimes { @@ -185,10 +186,21 @@ public class JavaRuntimes { */ static class SDKmanJdkDetector implements JdkDetector { - private static final File sdkManJavaHome = new File(FileUtils.getUserDirectoryPath(), ".sdkman/candidates/java"); + private static final File sdkManJavaHome; private static final Pattern CANDIDATE = Pattern.compile("(\\d+[\\.\\d+]+)[.-][-a-zA-Z]*"); + static { + + if (System.getenv().containsKey("SDKMAN_CANDIDATES_DIR")) { + sdkManJavaHome = new File(System.getenv().get("SDKMAN_CANDIDATES_DIR"), "java"); + } else if (System.getenv().containsKey("SDKMAN_DIR")) { + sdkManJavaHome = new File(System.getenv().get("SDKMAN_DIR"), "candidates/java"); + } else { + sdkManJavaHome = new File(FileUtils.getUserDirectoryPath(), ".sdkman/candidates/java"); + } + } + @Override public boolean isAvailable() { return isDirectory(sdkManJavaHome);