On 9/21/2018 6:00 PM, Ty Young wrote:
Is requiring the previously released JDK to build JavaFX really
necessary? Does something *actually* break as a result of using an
older boot JDK?
Yes, there is a good reason to do this, and that is to fix JDK-8210092
[1], which gets rid of the legacy swing interop implementation and the
associated qualified exports, and some crufty build logic to optionally
exclude the classes that depend on JDK 11; this also fixes JDK-8210759
[2] . Also, JDK 10 is obsoleted by JDK 11, which is an LTS, so even if
we don't adopt a model of always bumping the minimum boot JDK for each
release, it is appropriate to do so now.
In other words, if I wanted to compile JavaFX 12 right now I'd need to
use Oracle JDK 10(which may not even be available for download in the
future, who knows?), use it to compile JDK 11 with JavaFX 11, and then
use that to compile JavaFX 12 if I couldn't find JDK 11 with JavaFX
online somewhere.
You misunderstand. Today you need to use a JDK 10 (or JDK 11) *without*
the JavaFX classes to build JavaFX 12, just like we did for building
JavaFX 11. Starting with JDK 11 there are no more JDKs that include
JavaFX. That's why we build JavaFX as a separate SDK and set of maven
modules.
And it's only going to get worse as time goes on. Would it not be
possible to support up until the last JDK LTS(Starting at 11) release
for building JavaFX? I feel like maybe that would be more reasonable.
This is a good question, and maybe in the future we might not be so
quick to do this...or maybe we will. We should discuss this before we
get to this point for JavaFX 13, a little less than six months from now.
The choices for the model are:
1. Allow building JavaFX N with either JDK N-1 or JDK N.
2. Allow building JavaFX N with the most recent LTS or later.
Choice #1 will allow JavaFX to better keep pace with JDK features (API
or language features). Choice #2 will allow JavaFX to build and run with
the most current, stable JDK LTS at the cost of not being able to use
newer JDK features.
-- Kevin
[1] https://bugs.openjdk.java.net/browse/JDK-8210092
[2] https://bugs.openjdk.java.net/browse/JDK-8210759