Eliminate sun.awt.OSInfo?

Daniel Gredler djgredler at gmail.com
Mon Mar 24 22:18:08 UTC 2025


Hi all,

The sun.awt.OSInfo class seems to replicate the functionality in
jdk.internal.util.OperatingSystem, with one additional capability:
distinguishing between different versions of Windows. However, the Windows
versions included are Windows 95 through Windows 7, which hasn't been an
officially-supported platform for the JDK since Java 7. There are Windows
version checks which rely on OSInfo sprinkled throughout the java.desktop
module, but all of them are checking for Windows versions which are not
even supported anymore, as far as I can tell. Would a PR which removes
OSInfo be accepted, or is there a reason to keep it around that I'm missing?

Thanks!

Daniel

(Somewhat related: https://bugs.openjdk.org/browse/JDK-8305777)

---

$ grep -r --include "*.java" OSInfo src/java.desktop/
src/java.desktop/windows/classes/sun/awt/windows/WTaskbarPeer.java:import
sun.awt.OSInfo;
src/java.desktop/windows/classes/sun/awt/windows/WTaskbarPeer.java:
   supported = OSInfo.getWindowsVersion()
src/java.desktop/windows/classes/sun/awt/windows/WTaskbarPeer.java:
           .compareTo(OSInfo.WINDOWS_7) >= 0
src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java:import
sun.awt.OSInfo;
src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java:
               if (recentFolder != null &&
OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_2000) >= 0) {
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:import
sun.awt.OSInfo;
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
       return OSInfo.getOSType() == OSInfo.OSType.WINDOWS;
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
       if (OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_95) <= 0) {
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
       isClassicWindows =
OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_95) <= 0;
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
               (OSInfo.getOSType() == OSInfo.OSType.WINDOWS &&
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
               OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_XP) >=
0)) {
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
       return OSInfo.getOSType() == OSInfo.OSType.WINDOWS
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
               &&
OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_VISTA) >= 0;
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
       return OSInfo.getOSType() == OSInfo.OSType.WINDOWS
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
               && OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_7) >=
0;
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
           if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS &&
src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java:
                   OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_XP)
< 0) {
src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java:import
sun.awt.OSInfo;
src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java:
     return OSInfo.getOSType() == OSInfo.OSType.MACOSX;
src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java:
     return OSInfo.getOSType() == OSInfo.OSType.LINUX;
src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java:
     return (OSInfo.getOSType() == OSInfo.OSType.LINUX ||
src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java:
             OSInfo.getOSType() == OSInfo.OSType.MACOSX);
src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java:
     return OSInfo.getOSType() == OSInfo.OSType.AIX;
src/java.desktop/unix/classes/sun/awt/X11/XScrollbarPeer.java:import
sun.awt.OSInfo;
src/java.desktop/unix/classes/sun/awt/X11/XScrollbarPeer.java:        if
(OSInfo.getOSType() == OSInfo.OSType.LINUX) {
src/java.desktop/unix/classes/sun/awt/X11/MotifColorUtilities.java:import
sun.awt.OSInfo;
src/java.desktop/unix/classes/sun/awt/X11/MotifColorUtilities.java:
 int numOfColor = OSInfo.getOSType() == OSInfo.OSType.AIX ? 8 : 4;
src/java.desktop/unix/classes/sun/awt/X11/MotifColorUtilities.java:
 if (OSInfo.getOSType() == OSInfo.OSType.LINUX) { // Load motif default
colors on Linux.
src/java.desktop/share/classes/javax/swing/PopupFactory.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/javax/swing/PopupFactory.java:            if
((OSInfo.getOSType() == OSInfo.OSType.MACOSX) && (owner != null) &&
src/java.desktop/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java:
           boolean isWindows = OSInfo.getOSType() == OSInfo.OSType.WINDOWS;
src/java.desktop/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java:
           if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/javax/swing/UIManager.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/javax/swing/UIManager.java:
 OSInfo.OSType osType = OSInfo.getOSType();
src/java.desktop/share/classes/javax/swing/UIManager.java:        if
(osType == OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/javax/swing/UIManager.java:        else if
(osType == OSInfo.OSType.MACOSX) {
src/java.desktop/share/classes/javax/swing/UIManager.java:
 OSInfo.OSType osType = OSInfo.getOSType();
src/java.desktop/share/classes/javax/swing/UIManager.java:        if
(osType == OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/javax/swing/UIManager.java:            if
(osType == OSInfo.OSType.MACOSX) {
src/java.desktop/share/classes/javax/swing/UIManager.java:            if
(OSInfo.getOSType() == OSInfo.OSType.MACOSX) {
src/java.desktop/share/classes/sun/awt/OSInfo.java:import static
sun.awt.OSInfo.OSType.*;
src/java.desktop/share/classes/sun/awt/OSInfo.java:public class OSInfo {
src/java.desktop/share/classes/sun/awt/OSInfo.java:    private static final
Map<String, WindowsVersion> windowsVersionMap = new HashMap<String,
OSInfo.WindowsVersion>();
src/java.desktop/share/classes/sun/awt/OSInfo.java:    private OSInfo() {
src/java.desktop/share/classes/sun/awt/FontConfiguration.java:
   if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java:        if
(f.equals(canonical) || OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/sun/print/PSPrinterJob.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/sun/print/PSPrinterJob.java:        isMac =
OSInfo.getOSType() == OSInfo.OSType.MACOSX;
src/java.desktop/share/classes/sun/print/PSPrinterJob.java:        if
(OSInfo.getOSType() == OSInfo.OSType.LINUX ||
src/java.desktop/share/classes/sun/print/PSPrinterJob.java:
 OSInfo.getOSType() == OSInfo.OSType.MACOSX) {
src/java.desktop/share/classes/sun/print/ServiceDialog.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/sun/print/ServiceDialog.java:            if
(OSInfo.getOSType() != OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/sun/font/FontManagerNativeLibrary.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/sun/font/FontManagerNativeLibrary.java:
  if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
src/java.desktop/share/classes/sun/font/FontUtilities.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/sun/font/FontUtilities.java:        isLinux
= OSInfo.getOSType() == OSInfo.OSType.LINUX;
src/java.desktop/share/classes/sun/font/FontUtilities.java:        isMacOSX
= OSInfo.getOSType() == OSInfo.OSType.MACOSX;
src/java.desktop/share/classes/sun/font/FontUtilities.java:
 isWindows = OSInfo.getOSType() == OSInfo.OSType.WINDOWS;
src/java.desktop/share/classes/sun/swing/WindowsPlacesBar.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/sun/swing/WindowsPlacesBar.java:
 boolean isXPPlatform = (OSInfo.getOSType() == OSInfo.OSType.WINDOWS &&
src/java.desktop/share/classes/sun/swing/WindowsPlacesBar.java:
   OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_XP) >= 0);
src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java:import
sun.awt.OSInfo;
src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java:
                 if (OSInfo.getOSType() == OSInfo.OSType.LINUX) {
src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java:
                 if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20250324/0d44f1f0/attachment-0001.htm>


More information about the client-libs-dev mailing list