From cd5c542deaad17283be5ba17a1ff7aec9ad4c509 Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Tue, 23 Sep 2025 10:57:54 +0200 Subject: [PATCH 1/2] Update Java version checks to include JDK 25 --- .../plexus/compiler/ajc/AspectJCompiler.java | 66 ++++++++----------- .../EclipseCompilerErrorsAsWarningsTest.java | 5 +- .../EclipseCompilerFailOnWarningsTest.java | 2 +- .../compiler/eclipse/EclipseCompilerTest.java | 2 +- .../javac/JavacErrorProneCompilerTest.java | 8 +-- .../javac/AbstractJavacCompilerTest.java | 32 +++------ .../javac/JavaxToolsCompilerTest.java | 2 +- 7 files changed, 42 insertions(+), 75 deletions(-) diff --git a/plexus-compilers/plexus-compiler-aspectj/src/main/java/org/codehaus/plexus/compiler/ajc/AspectJCompiler.java b/plexus-compilers/plexus-compiler-aspectj/src/main/java/org/codehaus/plexus/compiler/ajc/AspectJCompiler.java index 35d059e8..147aad25 100644 --- a/plexus-compilers/plexus-compiler-aspectj/src/main/java/org/codehaus/plexus/compiler/ajc/AspectJCompiler.java +++ b/plexus-compilers/plexus-compiler-aspectj/src/main/java/org/codehaus/plexus/compiler/ajc/AspectJCompiler.java @@ -550,45 +550,33 @@ private static long versionStringToMajorMinor(String version) throws CompilerExc // Accept, but cut off trailing ".0", as ECJ/ACJ explicitly support versions like 5.0, 8.0, 11.0 .replaceFirst("[.]0$", ""); - switch (version) { - // Java 1.6 as a default source/target seems to make sense. Maven Compiler should set its own default - // anyway, so this probably never needs to be used. But not having a default feels bad, too. - case "": - return ClassFileConstants.JDK1_6; - case "1": - return ClassFileConstants.JDK1_1; - case "2": - return ClassFileConstants.JDK1_2; - case "3": - return ClassFileConstants.JDK1_3; - case "4": - return ClassFileConstants.JDK1_4; - case "5": - return ClassFileConstants.JDK1_5; - case "6": - return ClassFileConstants.JDK1_6; - case "7": - return ClassFileConstants.JDK1_7; - case "8": - return ClassFileConstants.JDK1_8; - case "9": - return ClassFileConstants.JDK9; - case "10": - return ClassFileConstants.JDK10; - case "11": - return ClassFileConstants.JDK11; - case "12": - return ClassFileConstants.JDK12; - case "13": - return ClassFileConstants.JDK13; - case "14": - return ClassFileConstants.JDK14; - case "15": - return ClassFileConstants.JDK15; - case "16": - return ClassFileConstants.JDK16; - } - throw new CompilerException("Unknown Java source/target version number: " + version); + return switch (version) { + // Java 1.6 as a default source/target seems to make sense. Maven Compiler should set its own default + // anyway, so this probably never needs to be used. But not having a default feels bad, too. + case "" -> ClassFileConstants.JDK1_6; + case "1" -> ClassFileConstants.JDK1_1; + case "2" -> ClassFileConstants.JDK1_2; + case "3" -> ClassFileConstants.JDK1_3; + case "4" -> ClassFileConstants.JDK1_4; + case "5" -> ClassFileConstants.JDK1_5; + case "6" -> ClassFileConstants.JDK1_6; + case "7" -> ClassFileConstants.JDK1_7; + case "8" -> ClassFileConstants.JDK1_8; + case "9" -> ClassFileConstants.JDK9; + case "10" -> ClassFileConstants.JDK10; + case "11" -> ClassFileConstants.JDK11; + case "12" -> ClassFileConstants.JDK12; + case "13" -> ClassFileConstants.JDK13; + case "14" -> ClassFileConstants.JDK14; + case "15" -> ClassFileConstants.JDK15; + case "16" -> ClassFileConstants.JDK16; + case "17" -> ClassFileConstants.JDK17; + case "18" -> ClassFileConstants.JDK18; + case "19" -> ClassFileConstants.JDK19; + case "20" -> ClassFileConstants.JDK20; + case "21" -> ClassFileConstants.JDK21; + default -> throw new CompilerException("Unknown Java source/target version number: " + version); + }; } /** diff --git a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerErrorsAsWarningsTest.java b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerErrorsAsWarningsTest.java index 1ed824cd..86e118d0 100644 --- a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerErrorsAsWarningsTest.java +++ b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerErrorsAsWarningsTest.java @@ -37,11 +37,10 @@ protected int expectedWarnings() { @Override protected Collection expectedOutputFiles() { String javaVersion = getJavaVersion(); - if (javaVersion.contains("9.0") - || javaVersion.contains("11") + if (javaVersion.contains("11") || javaVersion.contains("17") || javaVersion.contains("21") - || javaVersion.contains("24")) { + || javaVersion.contains("25")) { return Arrays.asList( "org/codehaus/foo/Deprecation.class", "org/codehaus/foo/ExternalDeps.class", diff --git a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java index 2312f693..6dc10e0c 100644 --- a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java +++ b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java @@ -34,7 +34,7 @@ protected Collection expectedOutputFiles() { || javaVersion.contains("11") || javaVersion.contains("17") || javaVersion.contains("21") - || javaVersion.contains("24")) { + || javaVersion.contains("25")) { return Arrays.asList( "org/codehaus/foo/Deprecation.class", "org/codehaus/foo/ExternalDeps.class", diff --git a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerTest.java b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerTest.java index 1cca0c30..f7a24a88 100644 --- a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerTest.java +++ b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerTest.java @@ -68,7 +68,7 @@ protected Collection expectedOutputFiles() { || javaVersion.contains("11") || javaVersion.contains("17") || javaVersion.contains("21") - || javaVersion.contains("24")) { + || javaVersion.contains("25")) { return Arrays.asList( "org/codehaus/foo/Deprecation.class", "org/codehaus/foo/ExternalDeps.class", diff --git a/plexus-compilers/plexus-compiler-javac-errorprone/src/test/java/org/codehaus/plexus/compiler/javac/JavacErrorProneCompilerTest.java b/plexus-compilers/plexus-compiler-javac-errorprone/src/test/java/org/codehaus/plexus/compiler/javac/JavacErrorProneCompilerTest.java index 3e0900ee..2e6eb9a2 100644 --- a/plexus-compilers/plexus-compiler-javac-errorprone/src/test/java/org/codehaus/plexus/compiler/javac/JavacErrorProneCompilerTest.java +++ b/plexus-compilers/plexus-compiler-javac-errorprone/src/test/java/org/codehaus/plexus/compiler/javac/JavacErrorProneCompilerTest.java @@ -17,13 +17,7 @@ protected int expectedWarnings() { String javaVersion = getJavaVersion(); if (javaVersion.startsWith("1.8")) { return 1; - } else if (javaVersion.contains("18") - || javaVersion.contains("19") - || javaVersion.contains("20") - || javaVersion.contains("21") - || javaVersion.contains("22") - || javaVersion.contains("23") - || javaVersion.contains("24")) { + } else if (javaVersion.contains("21") || javaVersion.contains("25")) { return 5; } return 2; diff --git a/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java b/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java index 895b53e8..eb321591 100644 --- a/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java +++ b/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java @@ -62,7 +62,7 @@ protected int expectedErrors() { if (javaVersion.contains("11") || javaVersion.contains("17") || javaVersion.contains("21") - || javaVersion.contains("24")) { + || javaVersion.contains("25")) { return 5; } // javac output changed for misspelled modifiers starting in 1.6...they now generate 2 errors per occurrence, @@ -77,19 +77,10 @@ protected int expectedErrors() { @Override protected int expectedWarnings() { String javaVersion = getJavaVersion(); - if (javaVersion.contains("9.0") - || javaVersion.contains("11") - || javaVersion.contains("14") - || javaVersion.contains("15") - || javaVersion.contains("16") + if (javaVersion.contains("11") || javaVersion.contains("17") - || javaVersion.contains("18") - || javaVersion.contains("19") - || javaVersion.contains("20") || javaVersion.contains("21") - || javaVersion.contains("22") - || javaVersion.contains("23") - || javaVersion.contains("24")) { + || javaVersion.contains("25")) { return 1; } if (javaVersion.contains("1.8")) { @@ -134,6 +125,8 @@ public String getTargetVersion() { return "23"; } else if (javaVersion.contains("24")) { return "24"; + } else if (javaVersion.contains("25")) { + return "25"; } return super.getTargetVersion(); } @@ -167,6 +160,8 @@ public String getSourceVersion() { return "23"; } else if (javaVersion.contains("24")) { return "24"; + } else if (javaVersion.contains("25")) { + return "25"; } return super.getTargetVersion(); } @@ -174,19 +169,10 @@ public String getSourceVersion() { @Override protected Collection expectedOutputFiles() { String javaVersion = getJavaVersion(); - if (javaVersion.contains("9.0") - || javaVersion.contains("11") - || javaVersion.contains("14") - || javaVersion.contains("15") - || javaVersion.contains("16") + if (javaVersion.contains("11") || javaVersion.contains("17") - || javaVersion.contains("18") - || javaVersion.contains("19") - || javaVersion.contains("20") || javaVersion.contains("21") - || javaVersion.contains("22") - || javaVersion.contains("23") - || javaVersion.contains("24")) { + || javaVersion.contains("25")) { return Arrays.asList( "org/codehaus/foo/Deprecation.class", "org/codehaus/foo/ExternalDeps.class", diff --git a/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompilerTest.java b/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompilerTest.java index 4aa9a88c..5568689c 100644 --- a/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompilerTest.java +++ b/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompilerTest.java @@ -27,7 +27,7 @@ public class JavaxToolsCompilerTest extends AbstractJavacCompilerTest { @Override protected int expectedWarnings() { String javaVersion = getJavaVersion(); - if (javaVersion.contains("21") || javaVersion.contains("24")) { + if (javaVersion.contains("21") || javaVersion.contains("25")) { return 1; } else { return super.expectedWarnings(); From df357a15d1e39f4925a5b9e4dc981ab959715398 Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Tue, 23 Sep 2025 12:45:13 +0200 Subject: [PATCH 2/2] Update plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../plexus/compiler/javac/AbstractJavacCompilerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java b/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java index eb321591..b3d33045 100644 --- a/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java +++ b/plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java @@ -163,7 +163,7 @@ public String getSourceVersion() { } else if (javaVersion.contains("25")) { return "25"; } - return super.getTargetVersion(); + return super.getSourceVersion(); } @Override