From 377f81539e84132387a13a2875743f9b9c0bfaf9 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 4 Jan 2026 06:22:00 -0700 Subject: [PATCH 1/5] Test with Java 25 and Java 21 --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 34a625c..4a4c563 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,6 +4,6 @@ * allowing one to test against multiple Jenkins versions. */ buildPlugin(useContainerAgent: true, configurations: [ - [ platform: 'windows', jdk: '17' ], - [ platform: 'linux', jdk: '21' ] + [ platform: 'linux', jdk: 25 ] + [ platform: 'windows', jdk: 21 ], ]) From 8ab3defbcd41c5c85cf4aba433c8108016d8c3ca Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 4 Jan 2026 06:22:56 -0700 Subject: [PATCH 2/5] Use parent pom 2.1326.v00b_e26755312 Require Java 21 or newer --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6da1903..d3f87fb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.jenkins-ci jenkins - 1.142 + 2.1326.v00b_e26755312 From fce1fbe88a89793e320a5269dd11e72584810db3 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 4 Jan 2026 06:39:59 -0700 Subject: [PATCH 3/5] Test that curent JVM can be converted to a class version integer Java 21 and Java 25 are unknown, cannot be converted --- .../lib/versionnumber/JavaSpecificationVersionTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/test/java/io/jenkins/lib/versionnumber/JavaSpecificationVersionTest.java b/src/test/java/io/jenkins/lib/versionnumber/JavaSpecificationVersionTest.java index 09d4166..2eedc1c 100644 --- a/src/test/java/io/jenkins/lib/versionnumber/JavaSpecificationVersionTest.java +++ b/src/test/java/io/jenkins/lib/versionnumber/JavaSpecificationVersionTest.java @@ -79,6 +79,12 @@ void shouldRetrieveSpecVersionForTheCurrentJVM() { assertNotNull(JavaSpecificationVersion.forCurrentJVM()); } + @Test + void shouldRetrieveClassVersionForTheCurrentJVM() { + // Library no longer supports Java versions before 21 + assertTrue(JavaSpecificationVersion.forCurrentJVM().toClassVersion() >= 21); + } + @Test void invalidVersions() { assertThrows(NumberFormatException.class, () -> new JavaSpecificationVersion("1.1.1")); From b404135a7e6e09490d9dae090ce0db7612a20ff5 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 4 Jan 2026 06:40:40 -0700 Subject: [PATCH 4/5] Add Java 21 through Java 25 to the known class version numbers Allow a Java specification version to be converted to a Java class version. Fixes issue detected in plugin BOM pull request: * https://github.com/jenkinsci/bom/pull/6179 --- .../jenkins/lib/versionnumber/JavaSpecificationVersion.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/io/jenkins/lib/versionnumber/JavaSpecificationVersion.java b/src/main/java/io/jenkins/lib/versionnumber/JavaSpecificationVersion.java index 5017407..3b4feab 100644 --- a/src/main/java/io/jenkins/lib/versionnumber/JavaSpecificationVersion.java +++ b/src/main/java/io/jenkins/lib/versionnumber/JavaSpecificationVersion.java @@ -75,6 +75,11 @@ public class JavaSpecificationVersion extends VersionNumber { releaseToClass.put(18, 62); releaseToClass.put(19, 63); releaseToClass.put(20, 64); + releaseToClass.put(21, 65); + releaseToClass.put(22, 66); + releaseToClass.put(23, 67); + releaseToClass.put(24, 68); + releaseToClass.put(25, 69); RELEASE_TO_CLASS = Collections.unmodifiableNavigableMap(releaseToClass); NavigableMap classToRelease = new TreeMap<>(); From 5d89622b6120ad0c910a91d68142a9f6a5984f65 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 4 Jan 2026 06:49:59 -0700 Subject: [PATCH 5/5] Fix syntax error in Jenkinsfile --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4a4c563..1be0a79 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,6 +4,6 @@ * allowing one to test against multiple Jenkins versions. */ buildPlugin(useContainerAgent: true, configurations: [ - [ platform: 'linux', jdk: 25 ] - [ platform: 'windows', jdk: 21 ], + [ platform: 'linux', jdk: 25 ], + [ platform: 'windows', jdk: 21 ] ])