RFR: 8290530: Bump minimum JDK version for JavaFX to JDK 17
Kevin Rushforth
kcr at openjdk.org
Wed Jul 27 16:52:00 UTC 2022
On Wed, 27 Jul 2022 16:21:12 GMT, Phil Race <prr at openjdk.org> wrote:
>> This PR bumps the minimum JDK version needed to build and run JavaFX to JDK 17, starting with JavaFX 20.
>>
>> As discussed in [this thread](https://mail.openjdk.org/pipermail/openjfx-dev/2022-July/034874.html) on the `openjfx-dev` mailing list, this means that we can start using language features and APIs available from JDK 12 through 17. However, this is not an open invitation to globally refactor data classes into records, or change all multi-line Strings into text blocks. Rather we will be able to start using recent JDK capabilities in new code where it makes sense to do so.
>>
>> The changes are as follows:
>>
>> 1. Added a new `jfx.jdk.target.version` property in `build.properties` to define the minimum JDK version, and set it to 17.
>> 2. Bumped the minimum version of the boot JDK to 17 and the minimum version of gradle to 7.3.
>> 3. Use the recent gradle feature to implement the minimum JDK version using `--release NN` instead of `-source NN -target NN` where possible (everywhere except when building the `javafx.swing` module and the system tests).
>> 4. Update `CONTRIBUTING.md` to say that JDK 17 is the minimum.
>>
>> Because this change has behavioral compatibility impact, it will need a CSR and a release note.
>
> build.gradle line 634:
>
>> 632: // Define global properties based on the version of Java
>> 633: // def status = compareJdkVersion(jdkVersion, "18")
>> 634: // ext.jdk18OrLater = (status >= 0)
>
> Why do we have this if it is commented out ?
It's meant to be an example of how to do a conditional based on the JDK version. I could have just removed it, but I'll add a comment to make that clear.
-------------
PR: https://git.openjdk.org/jfx/pull/850
More information about the openjfx-dev
mailing list