From c3cd481a9a51a55649ae4ffb2b98cb9eee8b3bbb Mon Sep 17 00:00:00 2001 From: Roger Riggs Date: Wed, 31 May 2023 19:32:21 +0000 Subject: [PATCH] 8304914: Use OperatingSystem, Architecture, and Version in jpackage Reviewed-by: asemenyuk --- src/java.base/share/classes/module-info.java | 1 + .../jpackage/internal/LinuxDebBundler.java | 5 +- .../jpackage/internal/LinuxRpmBundler.java | 5 +- .../jpackage/internal/MacAppImageBuilder.java | 14 +- .../jdk/jpackage/internal/MacPkgBundler.java | 11 +- .../internal/AddLauncherArguments.java | 9 +- .../jpackage/internal/AppImageBundler.java | 6 +- .../jdk/jpackage/internal/AppImageFile.java | 13 +- .../jpackage/internal/ApplicationLayout.java | 12 +- .../jdk/jpackage/internal/Arguments.java | 4 +- .../jdk/jpackage/internal/CLIHelp.java | 9 +- .../classes/jdk/jpackage/internal/I18N.java | 10 +- .../jdk/jpackage/internal/IOUtils.java | 8 +- .../jdk/jpackage/internal/LauncherData.java | 4 +- .../jdk/jpackage/internal/Platform.java | 125 ------------------ .../jdk/jpackage/internal/ScriptRunner.java | 8 +- .../internal/StandardBundlerParam.java | 6 +- .../jdk/jpackage/internal/ToolValidator.java | 6 +- .../jdk/jpackage/internal/ValidOptions.java | 13 +- .../jpackage/internal/WindowsDefender.java | 8 +- .../jpackage/internal/WixFragmentBuilder.java | 5 +- .../internal/OverridableResourceTest.java | 12 +- .../jpackage/internal/ToolValidatorTest.java | 5 +- 23 files changed, 104 insertions(+), 195 deletions(-) delete mode 100644 src/jdk.jpackage/share/classes/jdk/jpackage/internal/Platform.java diff --git a/src/java.base/share/classes/module-info.java b/src/java.base/share/classes/module-info.java index f8992e14c91..cb2c873113a 100644 --- a/src/java.base/share/classes/module-info.java +++ b/src/java.base/share/classes/module-info.java @@ -283,6 +283,7 @@ module java.base { java.smartcardio, jdk.charsets, jdk.jlink, + jdk.jpackage, jdk.net; exports sun.net to java.net.http, diff --git a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java index 20739a78bb9..e97cfc90a80 100644 --- a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java +++ b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,6 +46,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; +import jdk.internal.util.OperatingSystem; import static jdk.jpackage.internal.OverridableResource.createResource; import static jdk.jpackage.internal.StandardBundlerParam.ABOUT_URL; import static jdk.jpackage.internal.StandardBundlerParam.INSTALLER_NAME; @@ -508,7 +509,7 @@ public class LinuxDebBundler extends LinuxPackageBundler { @Override public boolean supported(boolean runtimeInstaller) { - return Platform.isLinux() && (new ToolValidator(TOOL_DPKG_DEB).validate() == null); + return OperatingSystem.isLinux() && (new ToolValidator(TOOL_DPKG_DEB).validate() == null); } @Override diff --git a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmBundler.java b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmBundler.java index 0cab3daa66b..f65210553de 100644 --- a/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmBundler.java +++ b/src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmBundler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,6 +37,7 @@ import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import jdk.internal.util.OperatingSystem; import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME; import static jdk.jpackage.internal.StandardBundlerParam.INSTALLER_NAME; @@ -331,7 +332,7 @@ public class LinuxRpmBundler extends LinuxPackageBundler { @Override public boolean supported(boolean runtimeInstaller) { - return Platform.isLinux() && (createRpmbuildToolValidator().validate() == null); + return OperatingSystem.isLinux() && (createRpmbuildToolValidator().validate() == null); } @Override diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java index 0e35d7f4fcc..da174a50bfd 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,8 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; +import jdk.internal.util.OperatingSystem; +import jdk.internal.util.OSVersion; import static jdk.jpackage.internal.MacAppBundler.BUNDLE_ID_SIGNING_PREFIX; import static jdk.jpackage.internal.MacAppBundler.DEVELOPER_ID_APP_SIGNING_KEY; import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEYCHAIN; @@ -401,7 +403,7 @@ public class MacAppImageBuilder extends AbstractAppImageBuilder { ENTITLEMENTS.fetchFrom(params)); } restoreKeychainList(params); - } else if (Platform.isMac()) { + } else if (OperatingSystem.isMacOS()) { signAppBundle(params, root, "-", null, null); } else { // Calling signAppBundle() without signingIdentity will result in @@ -608,9 +610,7 @@ public class MacAppImageBuilder extends AbstractAppImageBuilder { public static void addNewKeychain(Map params) throws IOException, InterruptedException { - if (Platform.getMajorVersion() < 10 || - (Platform.getMajorVersion() == 10 && - Platform.getMinorVersion() < 12)) { + if (OSVersion.current().compareTo(new OSVersion(10, 12)) < 0) { // we need this for OS X 10.12+ return; } @@ -662,9 +662,7 @@ public class MacAppImageBuilder extends AbstractAppImageBuilder { public static void restoreKeychainList(Map params) throws IOException{ - if (Platform.getMajorVersion() < 10 || - (Platform.getMajorVersion() == 10 && - Platform.getMinorVersion() < 12)) { + if (OSVersion.current().compareTo(new OSVersion(10, 12)) < 0) { // we need this for OS X 10.12+ return; } diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgBundler.java b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgBundler.java index 16a8d973fe6..034c8013b70 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgBundler.java +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgBundler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,9 @@ package jdk.jpackage.internal; +import jdk.internal.util.Architecture; +import jdk.internal.util.OSVersion; + import java.io.IOException; import java.io.PrintWriter; import java.net.URI; @@ -318,7 +321,7 @@ public class MacPkgBundler extends MacBaseInstallerBundler { xml.writeAttribute("customize", "never"); xml.writeAttribute("require-scripts", "false"); xml.writeAttribute("hostArchitectures", - Platform.isArmMac() ? "arm64" : "x86_64"); + Architecture.isAARCH64() ? "arm64" : "x86_64"); xml.writeEndElement(); // xml.writeStartElement("choices-outline"); xml.writeStartElement("line"); @@ -597,9 +600,7 @@ public class MacPkgBundler extends MacBaseInstallerBundler { // maybe sign if (Optional.ofNullable( SIGN_BUNDLE.fetchFrom(params)).orElse(Boolean.TRUE)) { - if (Platform.getMajorVersion() > 10 || - (Platform.getMajorVersion() == 10 && - Platform.getMinorVersion() >= 12)) { + if (OSVersion.current().compareTo(new OSVersion(10, 12)) >= 0) { // we need this for OS X 10.12+ Log.verbose(I18N.getString("message.signing.pkg")); } diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java index 1421a7c5dd3..d9946075c4f 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,6 +30,9 @@ import java.util.HashMap; import java.util.Map; import java.util.List; import java.util.Optional; + +import jdk.internal.util.OperatingSystem; + import jdk.jpackage.internal.Arguments.CLIOptions; import static jdk.jpackage.internal.StandardBundlerParam.LAUNCHER_DATA; import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME; @@ -128,7 +131,7 @@ class AddLauncherArguments { CLIOptions.LAUNCHER_AS_SERVICE.getId(), getOptionValue( CLIOptions.LAUNCHER_AS_SERVICE)); - if (Platform.isWindows()) { + if (OperatingSystem.isWindows()) { Arguments.putUnlessNull(bundleParams, CLIOptions.WIN_CONSOLE_HINT.getId(), getOptionValue(CLIOptions.WIN_CONSOLE_HINT)); @@ -138,7 +141,7 @@ class AddLauncherArguments { getOptionValue(CLIOptions.WIN_MENU_HINT)); } - if (Platform.isLinux()) { + if (OperatingSystem.isLinux()) { Arguments.putUnlessNull(bundleParams, CLIOptions.LINUX_CATEGORY.getId(), getOptionValue(CLIOptions.LINUX_CATEGORY)); Arguments.putUnlessNull(bundleParams, SHORTCUT_HINT.getID(), diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageBundler.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageBundler.java index 9953b7a856e..68c56856506 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageBundler.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageBundler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ package jdk.jpackage.internal; +import jdk.internal.util.OperatingSystem; + import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -138,7 +140,7 @@ class AppImageBundler extends AbstractBundler { IOUtils.writableOutputDir(outputDirectory); String imageName = APP_NAME.fetchFrom(params); - if (Platform.isMac()) { + if (OperatingSystem.isMacOS()) { imageName = imageName + ".app"; } diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java index 8ce67092b81..31228a8f5a3 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; + +import jdk.internal.util.OperatingSystem; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -72,9 +74,10 @@ public final class AppImageFile { private static final String FILENAME = ".jpackage.xml"; - private static final Map PLATFORM_LABELS = Map.of( - Platform.LINUX, "linux", Platform.WINDOWS, "windows", Platform.MAC, - "macOS"); + private static final Map PLATFORM_LABELS = Map.of( + OperatingSystem.LINUX, "linux", + OperatingSystem.WINDOWS, "windows", + OperatingSystem.MACOS, "macOS"); private AppImageFile(Path appImageDir, String appVersion, String launcherName, String mainClass, List launcherInfos, @@ -434,7 +437,7 @@ public final class AppImageFile { } public static String getPlatform() { - return PLATFORM_LABELS.get(Platform.getPlatform()); + return PLATFORM_LABELS.get(OperatingSystem.current()); } static class LauncherInfo { diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationLayout.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationLayout.java index 110fe79fb5a..e96b6b72de2 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationLayout.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationLayout.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,8 @@ */ package jdk.jpackage.internal; +import jdk.internal.util.OperatingSystem; + import java.nio.file.Path; import java.util.Map; @@ -179,19 +181,19 @@ public final class ApplicationLayout implements PathGroup.FacadePlatform to detect the operating system - * that is currently running. - * - * Example: - * - * Platform platform = Platform.getPlatform(); - * - * switch(platform) { - * case Platform.MAC: { - * // Do something - * break; - * } - * case Platform.WINDOWS: - * case Platform.LINUX: { - * // Do something else - * } - * } - * - */ -enum Platform {UNKNOWN, WINDOWS, LINUX, MAC; - private static final Platform platform; - private static final int majorVersion; - private static final int minorVersion; - - static { - String os = System.getProperty("os.name").toLowerCase(); - - if (os.indexOf("win") >= 0) { - platform = Platform.WINDOWS; - } - else if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0) { - platform = Platform.LINUX; - } - else if (os.indexOf("mac") >= 0) { - platform = Platform.MAC; - } - else { - platform = Platform.UNKNOWN; - } - - String version = System.getProperty("os.version"); - String[] parts = version.split(Pattern.quote(".")); - - if (parts.length > 0) { - majorVersion = Integer.parseInt(parts[0]); - - if (parts.length > 1) { - minorVersion = Integer.parseInt(parts[1]); - } - else { - minorVersion = -1; - } - } - else { - majorVersion = -1; - minorVersion = -1; - } - } - - private Platform() {} - - static Platform getPlatform() { - return platform; - } - - static int getMajorVersion() { - return majorVersion; - } - - static int getMinorVersion() { - return minorVersion; - } - - static boolean isWindows() { - return getPlatform() == WINDOWS; - } - - static boolean isMac() { - return getPlatform() == MAC; - } - - static boolean isArmMac() { - return (isMac() && "aarch64".equals(System.getProperty("os.arch"))); - } - - static boolean isLinux() { - return getPlatform() == LINUX; - } - - static RuntimeException throwUnknownPlatformError() { - throw new IllegalArgumentException("Unknown platform"); - } -} diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ScriptRunner.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ScriptRunner.java index 47fe75da4bc..a43a195cd86 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ScriptRunner.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ScriptRunner.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ package jdk.jpackage.internal; +import jdk.internal.util.OperatingSystem; + import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -99,14 +101,14 @@ class ScriptRunner { } private static String shell() { - if (Platform.isWindows()) { + if (OperatingSystem.isWindows()) { return "cscript"; } return Optional.ofNullable(System.getenv("SHELL")).orElseGet(() -> "sh"); } private static String scriptSuffix() { - if (Platform.isWindows()) { + if (OperatingSystem.isWindows()) { return ".wsf"; } return ".sh"; diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java index f519790de4e..e72efff10df 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ package jdk.jpackage.internal; +import jdk.internal.util.OperatingSystem; + import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -582,7 +584,7 @@ class StandardBundlerParam extends BundlerParamInfo { PREDEFINED_RUNTIME_IMAGE.getID())); } - if (Platform.isMac()) { + if (OperatingSystem.isMacOS()) { // On Mac topImage can be runtime root or runtime home. Path runtimeHome = topImage.resolve("Contents/Home"); if (Files.isDirectory(runtimeHome)) { diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ToolValidator.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ToolValidator.java index c34e2b3813b..793ff623c52 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ToolValidator.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ToolValidator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,8 @@ */ package jdk.jpackage.internal; +import jdk.internal.util.OperatingSystem; + import java.io.IOException; import java.nio.file.Path; import java.text.MessageFormat; @@ -45,7 +47,7 @@ public final class ToolValidator { this.toolPath = toolPath; args = new ArrayList<>(); - if (Platform.getPlatform() == Platform.LINUX) { + if (OperatingSystem.isLinux()) { setCommandLine("--version"); } diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ValidOptions.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ValidOptions.java index 5f0b597e486..4d3e163cdc1 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ValidOptions.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/ValidOptions.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,6 +27,7 @@ package jdk.jpackage.internal; import java.util.EnumSet; import java.util.HashMap; +import jdk.internal.util.OperatingSystem; import jdk.jpackage.internal.Arguments.CLIOptions; /** @@ -94,7 +95,7 @@ class ValidOptions { put(CLIOptions.LICENSE_FILE.getId(), USE.INSTALL); put(CLIOptions.INSTALL_DIR.getId(), USE.INSTALL); put(CLIOptions.PREDEFINED_APP_IMAGE.getId(), - (Platform.getPlatform() == Platform.MAC) ? + (OperatingSystem.isMacOS()) ? EnumSet.of(USE.INSTALL, USE.SIGN) : EnumSet.of(USE.INSTALL)); put(CLIOptions.LAUNCHER_AS_SERVICE.getId(), USE.INSTALL); @@ -102,9 +103,9 @@ class ValidOptions { put(CLIOptions.ABOUT_URL.getId(), USE.INSTALL); put(CLIOptions.FILE_ASSOCIATIONS.getId(), - (Platform.getPlatform() == Platform.MAC) ? USE.ALL : USE.INSTALL); + (OperatingSystem.isMacOS()) ? USE.ALL : USE.INSTALL); - if (Platform.getPlatform() == Platform.WINDOWS) { + if (OperatingSystem.isWindows()) { put(CLIOptions.WIN_CONSOLE_HINT.getId(), USE.LAUNCHER); put(CLIOptions.WIN_HELP_URL.getId(), USE.INSTALL); @@ -120,7 +121,7 @@ class ValidOptions { USE.INSTALL); } - if (Platform.getPlatform() == Platform.MAC) { + if (OperatingSystem.isMacOS()) { put(CLIOptions.MAC_SIGN.getId(), EnumSet.of(USE.ALL, USE.SIGN)); put(CLIOptions.MAC_BUNDLE_NAME.getId(), USE.ALL); @@ -138,7 +139,7 @@ class ValidOptions { put(CLIOptions.DMG_CONTENT.getId(), USE.INSTALL); } - if (Platform.getPlatform() == Platform.LINUX) { + if (OperatingSystem.isLinux()) { put(CLIOptions.LINUX_BUNDLE_NAME.getId(), USE.INSTALL); put(CLIOptions.LINUX_DEB_MAINTAINER.getId(), USE.INSTALL); put(CLIOptions.LINUX_CATEGORY.getId(), USE.INSTALL); diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsDefender.java b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsDefender.java index 9dc0e710b29..075d87bcbca 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsDefender.java +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsDefender.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,8 @@ package jdk.jpackage.internal; import java.util.List; +import jdk.internal.util.OperatingSystem; +import jdk.internal.util.OSVersion; final class WindowsDefender { @@ -34,8 +36,8 @@ final class WindowsDefender { static final boolean isThereAPotentialWindowsDefenderIssue(String dir) { boolean result = false; - if (Platform.getPlatform() == Platform.WINDOWS && - Platform.getMajorVersion() == 10) { + if (OperatingSystem.isWindows() && + OSVersion.current().major() == 10) { // If DisableRealtimeMonitoring is not enabled then there // may be a problem. diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixFragmentBuilder.java b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixFragmentBuilder.java index 9ed4c902a93..5671701e7a9 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixFragmentBuilder.java +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixFragmentBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,7 @@ import jdk.jpackage.internal.IOUtils.XmlConsumer; import jdk.jpackage.internal.OverridableResource.Source; import static jdk.jpackage.internal.OverridableResource.createResource; import static jdk.jpackage.internal.StandardBundlerParam.CONFIG_ROOT; +import jdk.internal.util.Architecture; /** * Creates WiX fragment. @@ -102,7 +103,7 @@ abstract class WixFragmentBuilder { } static boolean is64Bit() { - return !("x86".equals(System.getProperty("os.arch"))); + return Architecture.is64bit(); } protected Path getConfigRoot() { diff --git a/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java b/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java index 1d997b900a2..025f74eb6b4 100644 --- a/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java +++ b/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,8 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; + +import jdk.internal.util.OperatingSystem; import jdk.jpackage.internal.resources.ResourceLocator; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; @@ -198,17 +200,17 @@ public class OverridableResourceTest { private final static String DEFAULT_NAME; private final static Map SUBSTITUTION_DATA; static { - if (Platform.isWindows()) { + if (OperatingSystem.isWindows()) { DEFAULT_NAME = "WinLauncher.template"; SUBSTITUTION_DATA = Map.of("COMPANY_NAME", "Foo9090345"); - } else if (Platform.isLinux()) { + } else if (OperatingSystem.isLinux()) { DEFAULT_NAME = "template.control"; SUBSTITUTION_DATA = Map.of("APPLICATION_PACKAGE", "Package1967"); - } else if (Platform.isMac()) { + } else if (OperatingSystem.isMacOS()) { DEFAULT_NAME = "Info-lite.plist.template"; SUBSTITUTION_DATA = Map.of("DEPLOY_BUNDLE_IDENTIFIER", "12345"); } else { - throw Platform.throwUnknownPlatformError(); + throw new IllegalArgumentException("Unknown platform: " + OperatingSystem.current()); } } diff --git a/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/ToolValidatorTest.java b/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/ToolValidatorTest.java index b514a913ead..0aa104ced3a 100644 --- a/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/ToolValidatorTest.java +++ b/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/ToolValidatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ package jdk.jpackage.internal; import java.nio.file.Path; +import jdk.internal.util.OperatingSystem; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertNull; @@ -93,7 +94,7 @@ public class ToolValidatorTest { static { String fname = "java"; - if (Platform.isWindows()) { + if (OperatingSystem.isWindows()) { fname = fname + ".exe"; } TOOL_JAVA = Path.of(System.getProperty("java.home"), "bin", fname).toString();