Ticket #17858: 17858.patch
| File 17858.patch, 8.3 KB (added by , 3 years ago) |
|---|
-
src/org/openstreetmap/josm/tools/PlatformHook.java
IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 diff --git a/src/org/openstreetmap/josm/tools/PlatformHook.java b/src/org/openstreetmap/josm/tools/PlatformHook.java
a b 300 300 // #17831 WebStart may be launched with an expired JRE but then launching JOSM with up-to-date JRE 301 301 if (latestVersion == null || !latestVersion.equalsIgnoreCase(currentVersion)) { 302 302 callback.askUpdateJava(latestVersion != null ? latestVersion : "latest", 303 Config.getPref().get("java.update.url", "https://www.java.com/download"),303 Config.getPref().get("java.update.url", getJavaUrl()), 304 304 DateUtils.getDateFormat(DateFormat.MEDIUM).format(expiration), false); 305 305 } 306 306 } 307 307 } 308 308 309 /** 310 * Checks if we will soon not be supporting the running version of Java 311 * @param callback Java expiration callback 312 * @since xxx 313 */ 314 default void warnSoonToBeUnsupportedJava(JavaExpirationCallback callback) { 315 // Java 11 is our next minimum version, and OpenWebStart should be replacing Oracle WebStart 316 // We'd go to 17, but some Linux distributions (Debian) default to Java 11. 317 if (Utils.getJavaVersion() < 11 && !Utils.isRunningWebStart()) { 318 String latestVersion = Utils.getJavaLatestVersion(); 319 String currentVersion = Utils.getSystemProperty("java.version"); 320 // #17831 WebStart may be launched with an expired JRE but then launching JOSM with up-to-date JRE 321 if (latestVersion == null || !latestVersion.equalsIgnoreCase(currentVersion)) { 322 callback.askUpdateJava(latestVersion != null ? latestVersion : "latest", 323 Config.getPref().get("java.update.url", getJavaUrl()), 324 null, Utils.getJavaVersion() < 17); 325 } 326 } 327 } 328 329 /** 330 * Get the Java download URL (really shouldn't be used outside of JOSM startup checks) 331 * @return The download URL to use. 332 * @since xxx 333 */ 334 default String getJavaUrl() { 335 StringBuilder defaultDownloadUrl = new StringBuilder("https://www.azul.com/downloads/?version=java-17-lts&package=jre-fx"); 336 if (PlatformManager.isPlatformWindows()) { 337 defaultDownloadUrl.append("&os=windows"); 338 } else if (PlatformManager.isPlatformOsx()) { 339 defaultDownloadUrl.append("&os=macos"); 340 } // else probably `linux`, but they should be using a package manager. 341 // For available architectures, see 342 // https://github.com/openjdk/jdk/blob/master/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java#L53 343 String osArch = System.getProperty("os.arch"); 344 if (osArch != null) { 345 // See https://learn.microsoft.com/en-us/windows/win32/winprog64/wow64-implementation-details#environment-variables 346 // for PROCESSOR_ARCHITEW6432 347 if ("x86_64".equals(osArch) || "amd64".equals(osArch) 348 || "AMD64".equalsIgnoreCase(System.getenv("PROCESSOR_ARCHITEW6432"))) { 349 defaultDownloadUrl.append("&architecture=x86-64-bit"); 350 } else if ("aarch64".equals(osArch)) { 351 defaultDownloadUrl.append("&architecture=arm-64-bit"); 352 } else if ("x86".equals(osArch)) { 353 // Honestly, just about everyone should be on x86_64 at this point. But just in case someone 354 // is running JOSM on a 10-year-old computer. They'd probably be better off running a RPi. 355 defaultDownloadUrl.append("&architecture=x86-32-bit"); 356 } // else user will have to figure it out themselves. 357 } 358 defaultDownloadUrl.append("#download-openjdk"); // Scrolls to download section 359 return defaultDownloadUrl.toString(); 360 } 361 309 362 /** 310 363 * Checks if we run Oracle Web Start, proposes to user to migrate to OpenWebStart. 311 364 * @param callback WebStart migration callback -
src/org/openstreetmap/josm/tools/PlatformHookOsx.java
IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 diff --git a/src/org/openstreetmap/josm/tools/PlatformHookOsx.java b/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
a b 94 94 // We'll just ignore this for now. The user will still be able to close JOSM by closing all its windows. 95 95 Logging.warn("Failed to register with macOS: " + ex); 96 96 } 97 warnSoonToBeUnsupportedJava(javaCallback); 97 98 checkExpiredJava(javaCallback); 98 99 checkWebStartMigration(webStartCallback); 99 100 } -
src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 diff --git a/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java b/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
a b 188 188 return getPackageDetails("openjdk-10-jre", "java-10-openjdk"); 189 189 } else if (home.contains("java-11-openjdk")) { 190 190 return getPackageDetails("openjdk-11-jre", "java-11-openjdk"); 191 } else if (home.contains("java-17-openjdk")) { 192 return getPackageDetails("openjdk-17-jre", "java-17-openjdk"); 191 193 } else if (home.contains("java-openjdk")) { 192 194 return getPackageDetails("java-openjdk"); 193 195 } else if (home.contains("icedtea")) { -
src/org/openstreetmap/josm/tools/PlatformHookWindows.java
IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 diff --git a/src/org/openstreetmap/josm/tools/PlatformHookWindows.java b/src/org/openstreetmap/josm/tools/PlatformHookWindows.java
a b 154 154 155 155 @Override 156 156 public void startupHook(JavaExpirationCallback javaCallback, WebStartMigrationCallback webStartCallback) { 157 warnSoonToBeUnsupportedJava(javaCallback); 157 158 checkExpiredJava(javaCallback); 158 159 checkWebStartMigration(webStartCallback); 159 160 } -
src/org/openstreetmap/josm/tools/Utils.java
IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 diff --git a/src/org/openstreetmap/josm/tools/Utils.java b/src/org/openstreetmap/josm/tools/Utils.java
a b 1805 1805 "java.baseline.version.url", 1806 1806 Config.getUrls().getJOSMWebsite() + "/remote/oracle-java-update-baseline.version"))) 1807 1807 .connect().fetchContent().split("\n", -1); 1808 if (getJavaVersion() <= 8) {1808 if (getJavaVersion() <= 11 && isRunningWebStart()) { // OpenWebStart currently only has Java 11 1809 1809 for (String version : versions) { 1810 if (version.startsWith("1.8")) { 1810 if (version.startsWith("11")) { 1811 return version; 1812 } 1813 } 1814 } else if (getJavaVersion() <= 17) { 1815 for (String version : versions) { 1816 if (version.startsWith("17")) { // Use current Java LTS 1811 1817 return version; 1812 1818 } 1813 1819 }
