> Add the `jdk.jsobject` module to JavaFX. This module is currently delivered > by the JDK, but will be terminally-deprecated in JDK 24 by > [JDK-8311530](https://bugs.openjdk.org/browse/JDK-8311530), which is out for > review at openjdk/jdk#20555. We therefore plan to start delivering it with > JavaFX in JavaFX 24. > > ### Testing scenarios > > Both JDK and JavaFX for some period of time, so we need to test various > scenarios. I built and tested this PR branch with each of the following JDKs: > > 1. JDK 23 or earlier (I used the default boot JDK, which is currently JDK > 22.0.2); this JDK includes `jdk.jsobject` as a normal, non-upgradable module > 2. A locally-built JDK 24 from my > [8311530-depr-jsobject](https://github.com/kevinrushforth/jdk/tree/8311530-depr-jsobject) > branch, which has the fix for > [JDK-8311530](https://bugs.openjdk.org/browse/JDK-8311530); this JDK includes > `jdk.jsobject` as a terminally-deprecated, upgradable module > 3. A locally-built JDK 24 from my > [WIP-rm-jsobject](https://github.com/kevinrushforth/jdk/tree/WIP-rm-jsobject) > branch, which removes the `jdk.jsobject` module, and is therefore a prototype > of what will happen in JDK 26 (or later) when it is removed from the JDK > > I ran a build and test of JavaFX from this PR branch using each of the above > JDKs. All tests pass. > > I then took the JavaFX artifacts built by JDK 1 (matching how we will deliver > this in JavaFX 24), and ran the following additional tests, all of which > match my expectations: > > * java --module-path=.../jfx/build/sdk/lib without any additional flags > (required for JDK 1; recommended for JDK 3) <br> RESULT: JDKs 1 and 2 use the > `jdk.jsobject` module from the JDK; JDK 3 uses the `jdk.jsobject` module from > JavaFX > * java --module-path=.../jfx/build/sdk/lib > --upgrade-module-path=.../jfx/build/sdk/lib (recommended for JDK 2, OK for 3) > <br> RESULT: JDK 1 will fail to launch; JDKs 2 and 3 use the `jdk.jsobject` > module from JavaFX > * jlink with .../jfx/build/jmods ahead of $JAVA_HOME/jmods (recommended for > JDKs 2 and 3) <br> RESULT: JDK 1 will fail to link; JDKs 2 and 3 use the > `jdk.jsobject` module from JavaFX > * jlink with $JAVA_HOME/jmods ahead of .../jfx/build/jmods (required for JDK > 1) <br> RESULT: JDKs 1 and 2 will use the `jdk.jsobject` module from the JDK; > JDK 3 uses the `jdk.jsobject` module from JavaFX > > I have not verified the maven artifacts, but they are being generated > correctly.
Kevin Rushforth has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 14 additional commits since the last revision: - Merge branch 'master' into 8337280-jsobject - Add modules/jdk.jsobject/make/build.properties to match other modules - Revert debug print statement - Merge branch 'master' into 8337280-jsobject - Use --upgrade-module-path when compiling or running tests on JDK 24 or later - Merge branch 'master' into 8337280-jsobject - Update copyright year in settings.gradle - Merge branch 'master' into 8337280-jsobject - Merge branch 'master' into 8337280-jsobject - Merge branch 'master' into 8337280-jsobject - ... and 4 more: https://git.openjdk.org/jfx/compare/bcac8979...ce91c15c ------------- Changes: - all: https://git.openjdk.org/jfx/pull/1529/files - new: https://git.openjdk.org/jfx/pull/1529/files/4640d7f3..ce91c15c Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=1529&range=06 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1529&range=05-06 Stats: 741 lines in 53 files changed: 487 ins; 96 del; 158 mod Patch: https://git.openjdk.org/jfx/pull/1529.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/1529/head:pull/1529 PR: https://git.openjdk.org/jfx/pull/1529