This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git


The following commit(s) were added to refs/heads/master by this push:
     new 69a51004 Use default Eclipse Adoptium and Oracle locations if present 
for test fixtures
69a51004 is described below

commit 69a51004e0a08a935cb0f8f647e00272bb1188c3
Author: Gary David Gregory (Code signing key) <ggreg...@apache.org>
AuthorDate: Tue Nov 15 07:32:04 2022 -0500

    Use default Eclipse Adoptium and Oracle locations if present for test
    fixtures
---
 .../java/org/apache/bcel/generic/JavaHome.java     | 23 ++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/test/java/org/apache/bcel/generic/JavaHome.java 
b/src/test/java/org/apache/bcel/generic/JavaHome.java
index c7558f4c..cdb24809 100644
--- a/src/test/java/org/apache/bcel/generic/JavaHome.java
+++ b/src/test/java/org/apache/bcel/generic/JavaHome.java
@@ -48,7 +48,17 @@ public class JavaHome {
 
     private static final String EXTRA_JAVA_HOMES = "ExtraJavaHomes";
 
+    /** A folder containing Java homes, for example, on Windows "C:/Program 
Files/Eclipse Adoptium/" */
     private static final String EXTRA_JAVA_ROOT = "ExtraJavaRoot";
+
+    /** The default home for Java installs on Windows for Eclipse Adoptium. */
+    private static final String ADOPTIUM_WINDOWS = "C:/Program Files/Eclipse 
Adoptium/";
+
+    /** The default home for Java installs on Windows for Eclipse Oracle. */
+    private static final String ORACLE_WINDOWS = "C:/Program Files/Java/";
+
+    private static final String EXTRA_JAVA_ROOT_DEFAULT = ADOPTIUM_WINDOWS + 
File.pathSeparator + ORACLE_WINDOWS;
+
     private static final String KEY_JDK = "SOFTWARE\\JavaSoft\\Java 
Development Kit";
     private static final String KEY_JDK_9 = "SOFTWARE\\JavaSoft\\JDK";
     private static final String KEY_JRE = "SOFTWARE\\JavaSoft\\Java Runtime 
Environment";
@@ -75,12 +85,13 @@ public class JavaHome {
         return Stream.empty();
     }
 
-    private static Stream<String> streamFromCustomKey(final String key) {
-        return streamPropertyAndEnvVarValues(key).flatMap(s -> 
find(Paths.get(s), 1, (p, a) -> Files.isDirectory(p)).map(Path::toString));
+    private static Stream<String> streamFromCustomKey(final String key, final 
String defaultValue) {
+        return streamPropertyAndEnvVarValues(key, defaultValue).flatMap(s -> 
find(Paths.get(s), 1, (p, a) -> Files.isDirectory(p)).map(Path::toString));
     }
 
     private static Stream<String> streamFromCustomKeys() {
-        return Stream.concat(streamPropertyAndEnvVarValues(EXTRA_JAVA_HOMES), 
streamFromCustomKey(EXTRA_JAVA_ROOT));
+        final String defaultRoot = SystemUtils.IS_OS_WINDOWS ? 
EXTRA_JAVA_ROOT_DEFAULT : null;
+        return Stream.concat(streamPropertyAndEnvVarValues(EXTRA_JAVA_HOMES, 
null), streamFromCustomKey(EXTRA_JAVA_ROOT, defaultRoot));
     }
 
     /**
@@ -149,8 +160,8 @@ public class JavaHome {
         return streamJavaHome().flatMap(JavaHome::streamModuleByExt);
     }
 
-    private static Stream<String> streamPropertyAndEnvVarValues(final String 
key) {
-        return Stream.concat(toPathStringStream(System.getProperty(key)), 
toPathStringStream(System.getenv(key)));
+    private static Stream<String> streamPropertyAndEnvVarValues(final String 
key, final String defaultValue) {
+        return Stream.concat(toPathStringStream(System.getProperty(key, 
defaultValue)), toPathStringStream(System.getenv(key)));
     }
 
     private static Stream<String> streamWindowsJavaHomes(final String 
keyJavaHome, final String[] keys) {
@@ -168,7 +179,7 @@ public class JavaHome {
 
     private static Stream<String> streamWindowsStrings() {
         return Stream.concat(Stream.of(KEY_JRE, KEY_JRE_9, KEY_JDK, 
KEY_JDK_9).flatMap(JavaHome::streamAllWindowsJavaHomes),
-                streamPropertyAndEnvVarValues(EXTRA_JAVA_HOMES)).distinct();
+                streamPropertyAndEnvVarValues(EXTRA_JAVA_HOMES, 
null)).distinct();
     }
 
     private static Stream<String> toPathStringStream(final String path) {

Reply via email to