JDK-8189111 : Cannot build JavaFX modules with boot JDK that does not already include them
  • Type: Bug
  • Component: javafx
  • Sub-Component: build
  • Affected Version: 9,10
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2017-10-10
  • Updated: 2018-03-26
  • Resolved: 2017-11-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10
10Fixed
Related Reports
Relates :  
Description
We have a bootstrap problem in that we can no longer build javafx.* modules using a boot JDK that does not already include the javafx.* modules.
Comments
Changeset: c69cde9a039e Author: kcr Date: 2017-11-20 07:58 -0800 URL: http://hg.openjdk.java.net/openjfx/10-dev/rt/rev/c69cde9a039e 8189111: Cannot build JavaFX modules with boot JDK that does not already include them Reviewed-by: prr
20-11-2017

+1 -phil.
17-11-2017

Webrev: http://cr.openjdk.java.net/~kcr/8189111/webrev.00/ The fix basically does two things: 1. Add the needed qualified exports when compiling the module classes 2. Fixed an issue with the JSL and Css2Bin tasks, where they were still mistakenly putting the classes for the graphics module on the classpath (which won't work), rather than using the module path While I was working on this, I added a new HAS_JAVAFX_MODULES property, which is true if the boot JDK has javafx modules. I ended up not needing it, but left the property in anyway. We will eventually need it in order to run tests using a boot JDK without javafx modules, which is currently not possible. This will require conditionally using --patch-module (if the boot JDK has javafx modules) or --module-path (if not). Testing: I fully tested the following combinations on Linux: 1. Boot JDK with javafx modules (Oracle JDK 9), local FX & JDK repo including closed sources 2. Boot JDK without javafx modules (OpenJDK 9), local FX & JDK repo including closed sources 3. Boot JDK with javafx modules (Oracle JDK 9), local FX & JDK repo with only open sources 4. Boot JDK without javafx modules (OpenJDK 9), local FX & JDK repo with only open sources For each of the above combinations I did the following: * build local FX modules using the boot JDK -- gradle sdk jdkZip * build local JDK using the built FX exports * build and test local FX using the locally built JDK -- gradle -PFULL_TEST=true all test Finally, I did a sanity check on Windows and Mac using a boot JDK with / without javafx modules
16-11-2017