JDK 25 Compatibility — Build Environment Modernization (Minimum JDK 21)#171
Open
cx-riyaj-shaikh wants to merge 1 commit into2026_Q1_Integration_Branchfrom
Open
Conversation
During investigation of PLUG-2799, it was found that the existing plugin version 2025.4.1 already runs on Jenkins with JDK 17, 21, and 25 without any issues. The actual gap identified was on the build side — the plugin source code could only be built using JDK 8 due to outdated build tooling (Gradle 4.10.2, Jenkins core 2.77, JPI plugin 0.35.0). This PR modernizes the build environment to support minimum JDK 21 for building the plugin from source, which aligns with the Jenkins Java support policy (Java 17 EOL: March 31, 2026).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
During investigation of PLUG-2799, it was found that the existing plugin version 2025.4.1 already runs on Jenkins with JDK 17, 21, and 25 without any issues. The actual gap identified was on the build side — the plugin source code could only be built using JDK 8 due to outdated build tooling (Gradle 4.10.2, Jenkins core 2.77, JPI plugin 0.35.0).
This PR modernizes the build environment to support minimum JDK 21 for building the plugin from source, which aligns with the Jenkins Java support policy (Java 17 EOL: March 31, 2026).
Changes in this PR are intentionally scoped for future activation when the following requirement is formally raised:
"The plugin must be buildable on minimum JDK 21 in CI/CD pipelines."
What was changed:
Gradle wrapper upgraded from 4.10.2 → 8.14
Jenkins core upgraded from 2.77 → 2.541.1 (first LTS with official JDK 25 support)
Gradle JPI plugin upgraded from 0.35.0 → 0.55.2
Deprecated compile/testCompile/testRuntime → implementation/testImplementation/testRuntimeOnly
JUnit upgraded from 5.4.2 → 5.10.2, Mockito from 2.23.0 → 5.10.0
Minimum Java version enforced to JDK 21 (sourceCompatibility = VERSION_21)
Credentials plugin dependency fixed to generate correct MANIFEST.MF
Removed dead dependencies (nebula, wsdl2java)
Testing done:
Build on JDK 21 — PASS
All existing tests — PASS
Plugin install on Jenkins JDK 21 — PASS
Plugin install on Jenkins JDK 25 — PASS
Plugin correctly blocked on Jenkins JDK 17 — PASS (intentional, per Jenkins EOL policy)
Note for reviewer:
These changes are ready to merge whenever the team formally requires JDK 21 as the minimum build environment. No source code (Java files) were modified — only build configuration was updated. Zero regressions observed.