**Issue**:
Below two Gradle 9.0.0 specific warnings are observed with current grade 8.14.2
1. The `Project.exec(Closure)` method has been deprecated. This is scheduled to 
be removed in Gradle 9.0
2. Using method `javaexec(Closure)` has been deprecated. This is scheduled to 
be removed in Gradle 9.0.

Both these methods are removed in Gradle 9.0.0.
Hence they should be replaced with appropriate APIs.
Refer: 
https://docs.gradle.org/8.14.2/userguide/upgrading_version_8.html#deprecated_project_exec

**Fix**:
Both warnings can be fixed by replacing the calls with` 
ExecOperations.exec(Action)`.
There are two different scenarios where we use the above two APIs.
- Gradle files
- Groovy class files
=> In Both the scenarios, we have to use the `ExecOperations.exec(Action)`, but 
the approach differs.

1. Gradle file
    - The calls are simply replaced as,
        * `Project.exec {` is replaced with `execOps.exec { ExecSpec spec ->`
        * `Project.javaexex {`  is replaced with `execOps.javaexec { 
JavaExecSpec spec ->`
2. For Groovy classes
    - `ExecOperations` needs to be **injected** using `@Inject` tag
    1. `NativeCompileTask` class
        - In the `NativeCompileTask` class, a method `execCompile()` is added 
which executes an action.
        - The child classes of `NativeCompileTask`, use this `execCompile()` 
method.
    2. Other classes are not related to each other. They independently execute 
the respective action.

**Verification**:
1. Run all gradle tasks with **—warning-mode all** option, with gradle 8.14.2 
2. No Gradle 9.0.0 specific warning is seen in build log
4. Build/all tasks complete successfully.

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

Commit messages:
 - replace project.exec and project.javaexec

Changes: https://git.openjdk.org/jfx/pull/1918/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1918&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8360586
  Stats: 250 lines in 13 files changed: 132 ins; 1 del; 117 mod
  Patch: https://git.openjdk.org/jfx/pull/1918.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1918/head:pull/1918

PR: https://git.openjdk.org/jfx/pull/1918

Reply via email to