Proposal: Bump minimum JDK version for JavaFX 20 to JDK 17

Philip Race philip.race at oracle.com
Tue Jul 19 20:38:21 UTC 2022


I've read the various comments so far and so have weighed those and my 
view is that
it is about time to move on from JDK11 and think a policy of making the 
minimum an LTS is a
reasonable position - so JDK 17 LTS is what comes out of that today.

What to do in future (ie what is the policy) is a separate question

OpenJDK LTS releases will be every two years in future, so there is a 
reasonable argument that
is too frequent to bump the FX minimum without a really compelling reason.

Also consider that FX 20 will GA 4 1/2 years after FX 11  and the next 
JDK LTS will be 21 ..
just 6 months later .. we surely aren't going to bump the minimum again 
immediately.

So we should not have a policy of the "latest LTS" should always be the 
minimum - just that it should
be "some" LTS

And perhaps we skip every other LTS or at the very least we don't bump 
until the LTS has been available for 1 year ..

-phil.

PS I agree this should never be an invitation for code churn with no 
conceivable benefit to the users of the platform.


On 7/19/22 6:44 AM, Kevin Rushforth wrote:
> Even though we build JavaFX binaries with JDK 18 as the boot JDK, the 
> latest version of JavaFX still runs with JDK 11 (and is capable of 
> being built using JDK 12 or later, and with some limitations, using 
> JDK 11), although it isn't tested with older JDK versions. In order 
> for JavaFX to be able to use newer JDK features, such as records, 
> switch expressions, text blocks, and so forth, we need to increase the 
> minimum version of the JDK that can run the latest JavaFX. 
> Additionally, there is an ongoing cost to keeping JavaFX buildable and 
> runnable on older versions of Java, and very little reason to continue 
> to do so.
>
> To this end, I propose to bump the minimum version of the JDK needed 
> to run JavaFX 20 to JDK 17. I filed JDK-8290530 [1] to track this. 
> This will not affect update releases of earlier versions of JavaFX 
> (e.g., JavaFX 17.0.NN), which will continue to run with the same 
> minimum JDK that they run on today.
>
> As a reminder, we only assure that JavaFX NN will run with JDK NN-1 or 
> later, although in practice, we haven't bumped the minimum required 
> JDK version in several releases. So, while JavaFX 19 is built using 
> JDK 18 as the boot JDK, it produces class files that will run with JDK 
> 11, using "--source 11 --target 11". The proposed change discussed 
> here would update that in JavaFX 20 to "--source 17 --target 17".
>
> NOTE: this will not be an invitation to do wholesale refactoring of 
> existing classes or methods to use newer language features (e.g., a PR 
> that turns a bunch of existing data classes into records would not be 
> welcome). Rather, this can be seen as enabling judicious use of new 
> features in new code, much as we did when we started allowing the use 
> of "var".
>
> Absent a compelling reason to remain stuck in the past, I plan to send 
> out a pull request for this change next week.
>
> Comments are welcome.
>
> -- Kevin
>
> [1] https://bugs.openjdk.org/browse/JDK-8290530
>



More information about the openjfx-dev mailing list