You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/11/15 12:32:08 UTC
[commons-bcel] branch master updated: Use default Eclipse Adoptium and Oracle locations if present for test fixtures
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) <gg...@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) {