On Fri, 6 Sep 2024 22:56:37 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

>> 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 incrementally with one 
> additional commit since the last revision:
> 
>   Update copyright year in settings.gradle

> > > Old version of classes `netscape.javascript.JSObject` and 
> > > `netscape.javascript.JSException` seems to be delivered with JavaFX for 
> > > Android [1].
> > > Should these classes be removed?
> > > [1] : 
> > > https://github.com/openjdk/jfx/tree/jfx23/modules/javafx.web/src/android/java/netscape/javascript
> > 
> > 
> > I'll let @johanvos speak to that. If this is desired, then it's probably 
> > best done as a follow-up, since I can't test the Android (or iOS) 
> > implementation.
> 
> Yes, those can be removed. There is more (ios/android) code that can be 
> removed, or that even _should_ be removed. I'll file a follow-up for this.

Created https://bugs.openjdk.org/browse/JDK-8339705 for this

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1529#issuecomment-2336600640

Reply via email to