Skip to content

Commit 1ce20e3

Browse files
authored
updating compatibility requirements for gradle 9 (#1059)
* updating compatibility requirements for gradle 9 Signed-off-by: Arun Venmany <arun.kumar.v.n@ibm.com> * changes based on review comments Signed-off-by: Arun Venmany <arun.kumar.v.n@ibm.com> * changes on content based on review comments Signed-off-by: Arun Venmany <arun.kumar.v.n@ibm.com> * renaming file to change deploy date Signed-off-by: Arun Venmany <arun.kumar.v.n@ibm.com> --------- Signed-off-by: Arun Venmany <arun.kumar.v.n@ibm.com>
1 parent e709b41 commit 1ce20e3

File tree

2 files changed

+19
-53
lines changed

2 files changed

+19
-53
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@ To run DevContainerTests locally, you must have either Podman or Docker set up a
4040

4141
For the full Java and Gradle version compatibility matrix, see the [Gradle Compatibility Matrix](https://docs.gradle.org/current/userguide/compatibility.html).
4242

43-
- **Gradle 9.x** requires Java 17 or later and plugin version **3.9.4** or later.
44-
- **Gradle 7.6 / 8.x** works with Java 8, 11, 17, or 21 and plugin version **3.8.2** or later.
43+
- **Gradle 9.x** requires Java 17 or later and plugin version **4.0.0** or later.
44+
- **Gradle 7.6 / 8.x** works with Java 8, 11, 17, or 21 and plugin version **3.8.2** or later, but it is **not compatible** with **4.x** or later versions.
4545

46-
The Liberty Gradle Plugin is tested with Long-Term-Support (LTS) releases of Java. The plugin, as of release 3.8, supports Java 8, 11, 17 and 21. As of release 4.0.0, we support Java 25 as well. Versions 3.5 to 3.7.x support Java 8, 11 and 17. Prior to version 3.5, the plugin is supported on Java 8 and 11. For running applications on older versions of Java, please check out our toolchain support.
46+
The Liberty Gradle Plugin is tested with Long-Term-Support (LTS) releases of Java. The plugin, as of release 4.0.0, supports Java 17, 21 and 25. Versions 3.8 to 3.10.x support Java 8, 11, 17 and 21. Versions 3.5 to 3.7.x support Java 8, 11 and 17. Prior to version 3.5, the plugin is supported on Java 8 and 11. For running applications on older versions of Java, please check out our Java toolchain support.
4747

48-
For Liberty Gradle Plugin-specific compatibility details, known limitations, and migration guidance, see the [Detailed Compatibility Matrix](docs/Gradle9MigrationGuide.md#detailed-compatibility-matrix) in the Migration Guide.
48+
For Liberty Gradle Plugin-specific compatibility details, known limitations, and migration guidance, see the [Compatibility Requirements](docs/Gradle9MigrationGuide.md#compatibility-requirements) in the Migration Guide.
4949

5050
### Adding the plugin to the build script
5151

docs/Gradle9MigrationGuide.md

Lines changed: 15 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Please go through [gradle official documentation](https://docs.gradle.org/9.1.0/
1515

1616
## Table of Contents
1717

18-
1. [Detailed Compatibility Matrix](#detailed-compatibility-matrix)
18+
1. [Compatibility Requirements](#compatibility_requirements)
1919
2. [Java Configuration Updates](#java-configuration-updates)
2020
3. [Java Toolchain and Foojay Resolver](#java-toolchain-and-foojay-resolver)
2121
4. [Build Configuration Changes](#build-configuration-changes)
@@ -24,54 +24,20 @@ Please go through [gradle official documentation](https://docs.gradle.org/9.1.0/
2424
7. [Project Dependencies](#project-dependencies)
2525
8. [Known Issues and Workarounds](#known-issues-and-workarounds)
2626

27-
## Detailed Compatibility Matrix
28-
29-
The following matrix shows test results for each combination of Java version, Gradle version, and Liberty Gradle Plugin version. The status applies to `libertyStart`, `libertyRun`, and `libertyDev` tasks (all tasks pass or fail together for a given combination). For a high-level summary, see the [Compatibility / Support](../README.md#compatibility--support) section in the README.
30-
31-
| Java | Gradle | Plugin | Status | Failure Reason |
32-
|------|--------|--------|:------:|----------------|
33-
| 8 | 7.6 | 3.8.2 | pass | |
34-
| 8 | 7.6 | 3.9.4 | pass | |
35-
| 8 | 7.6 | 3.10.0 | fail | Gradle 7.6 ASM incompatible with Java 21 bytecode in jackson-core-2.19.2 |
36-
| 8 | 7.6 | 4.0.0-SNAPSHOT | fail | Gradle 7.6 ASM incompatible with Java 21 bytecode in jackson-core-2.19.2 |
37-
| 8 | 8.5 | 3.8.2 | pass | |
38-
| 8 | 8.5 | 3.9.4 | pass | |
39-
| 8 | 8.5 | 3.10.0 | pass | |
40-
| 8 | 8.5 | 4.0.0-SNAPSHOT | pass | |
41-
| 8 | 9.1.0 | 3.8.2 | fail | Gradle 9 requires Java 17+ |
42-
| 8 | 9.1.0 | 3.9.4 | fail | Gradle 9 requires Java 17+ |
43-
| 8 | 9.1.0 | 3.10.0 | fail | Gradle 9 requires Java 17+ |
44-
| 8 | 9.1.0 | 4.0.0-SNAPSHOT | fail | Gradle 9 requires Java 17+ |
45-
| 11 | 7.6 | 3.8.2 | pass | |
46-
| 11 | 7.6 | 3.9.4 | pass | |
47-
| 11 | 7.6 | 3.10.0 | fail | Gradle 7.6 ASM incompatible with Java 21 bytecode in jackson-core-2.19.2 |
48-
| 11 | 7.6 | 4.0.0-SNAPSHOT | fail | Gradle 7.6 ASM incompatible with Java 21 bytecode in jackson-core-2.19.2 |
49-
| 11 | 8.5 | 3.8.2 | pass | |
50-
| 11 | 8.5 | 3.9.4 | pass | |
51-
| 11 | 8.5 | 3.10.0 | pass | |
52-
| 11 | 8.5 | 4.0.0-SNAPSHOT | pass | |
53-
| 11 | 9.1.0 | 3.8.2 | fail | Gradle 9 requires Java 17+ |
54-
| 11 | 9.1.0 | 3.9.4 | fail | Gradle 9 requires Java 17+ |
55-
| 11 | 9.1.0 | 3.10.0 | fail | Gradle 9 requires Java 17+ |
56-
| 11 | 9.1.0 | 4.0.0-SNAPSHOT | fail | Gradle 9 requires Java 17+ |
57-
| 17 | 7.6 | 3.8.2 | pass | |
58-
| 17 | 7.6 | 3.9.4 | pass | |
59-
| 17 | 7.6 | 3.10.0 | fail | Gradle 7.6 ASM incompatible with Java 21 bytecode in jackson-core-2.19.2 |
60-
| 17 | 7.6 | 4.0.0-SNAPSHOT | fail | Gradle 7.6 ASM incompatible with Java 21 bytecode in jackson-core-2.19.2 |
61-
| 17 | 8.5 | 3.8.2 | pass | |
62-
| 17 | 8.5 | 3.9.4 | pass | |
63-
| 17 | 8.5 | 3.10.0 | pass | |
64-
| 17 | 8.5 | 4.0.0-SNAPSHOT | pass | |
65-
| 17 | 9.1.0 | 3.8.2 | fail | Plugin 3.8.2 uses removed `ConfigureUtil` API |
66-
| 17 | 9.1.0 | 3.9.4 | pass | |
67-
| 17 | 9.1.0 | 3.10.0 | pass | |
68-
| 17 | 9.1.0 | 4.0.0-SNAPSHOT | pass | |
69-
70-
### Key Takeaways
71-
72-
- **Gradle 9 requires Java 17 or later.** Java 8 and 11 are not supported with any plugin version on Gradle 9.
73-
- **Gradle 7.6 is incompatible with plugin 3.10.0+** due to ASM version limitations that cannot handle Java 21 bytecode in jackson-core-2.19.2. Upgrade to Gradle 8.5+ or stay on plugin 3.9.4.
74-
- **Plugin 3.8.2 is incompatible with Gradle 9** because it relies on the `ConfigureUtil` API which was removed in Gradle 9. Use plugin 3.9.4 or later.
27+
## Compatibility Requirements
28+
29+
30+
To ensure a successful migration, please note the following version requirements:
31+
32+
* **Liberty Gradle Plugin 4.0.0+**: Starting with version 4.0.0, the Liberty Gradle Plugin requires Gradle 9.0 or later.
33+
34+
* **Java Requirement**: Gradle 9 requires Java 17 as the minimum runtime version. Java 21 and 25 are supported via toolchains.
35+
36+
* **Kotlin Update**: If your build uses Kotlin, an upgrade to Kotlin 2.0 is mandatory.
37+
38+
* **Recommended Version**: We recommend using Gradle 9.1.0 or later to ensure full support for Java 25.
39+
40+
Note: If you must remain on Gradle 8 or earlier, you must use a **3.x** version of Liberty Gradle Plugin. We recommend using the latest **3.x** version of Liberty Gradle Plugin available.
7541

7642
## Java Configuration Updates
7743

0 commit comments

Comments
 (0)