Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8210092

Remove old javafx.swing implementation

XMLWordPrintable

      As part of implementing JDK-8195811, the implementation of JavaFX / Swing interop was refactored to allow for two implementations, the "old" (pre-JDK 11) implementation that relies upon qualified exports of internal Swing and AWT packages, and a "new" (JDK 11) implementation that uses a public API in the jdk.unsupported.desktop module.

      Once openjfx requires JDK 11 to build and run (see JDK-8209966), we can remove the old implementation and the associated build logic needed to support it.

      The main tasks will be:

      1. Remove the 'oldimpl' package as well as the reference to it from the InteropFactory

      2. Unconditionally use jdk.unsupported.desktop from module-info in javafx.swing:
         a. Move the javafx.swing module-info.java back into src/main/java
         b. Remove the build logic that copies module-info.java into gensrc and uses it from there
         c. Change "requires static jdk.unsupported.desktop" to simple "requires jdk.unsupported.desktop" [*]

      3. Remove the support for building and running the 'oldimpl' package:
         d. Remove the build logic that optionally excludes "newimpl" at compile time
         e. Remove dependencies/java.desktop/module-info.java.extra
         f. Remove the qualified exports of the 6 internal java.desktop packages from build.gradle
         g. Remove the HAS_UNSUPPORTED_DESKTOP flag


      [*] This will have the advantage of not forcing developers to explicitly include jdk.unsupported.desktop in a custom jlinked image when including the javafx.swing module, which is a bug reported in JDK-8210759.

            kcr Kevin Rushforth
            kcr Kevin Rushforth
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: