From 0cd0b40edeb1100274371f30bfde3ac935894dd1 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 4 Aug 2023 09:37:51 +0200 Subject: [PATCH] [java] Add new versions 21 and 21-preview --- docs/pages/pmd/languages/java.md | 10 ++++++---- docs/pages/pmd/userdocs/tools/ant.md | 2 +- .../sourceforge/pmd/lang/java/JavaLanguageModule.java | 6 ++++-- .../sourceforge/pmd/lang/java/ast/KotlinTestingDsl.kt | 3 ++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/pages/pmd/languages/java.md b/docs/pages/pmd/languages/java.md index 43463f0c74..cc7fc3f814 100644 --- a/docs/pages/pmd/languages/java.md +++ b/docs/pages/pmd/languages/java.md @@ -2,7 +2,7 @@ title: Java support permalink: pmd_languages_java.html author: Clément Fournier -last_updated: March 2021 (7.0.0) +last_updated: August 2023 (7.0.0) tags: [languages] summary: "Java-specific features and guidance" --- @@ -15,8 +15,10 @@ Usually the latest non-preview Java Version is the default version. | Java Version | Alias | Supported by PMD since | |--------------|-------|------------------------| +| 21-preview | | 7.0.0 | +| 21 (default) | | 7.0.0 | | 20-preview | | 6.55.0 | -| 20 (default) | | 6.55.0 | +| 20 | | 6.55.0 | | 19-preview | | 6.48.0 | | 19 | | 6.48.0 | | 18 | | 6.44.0 | @@ -39,10 +41,10 @@ Usually the latest non-preview Java Version is the default version. ## Using Java preview features In order to analyze a project with PMD that uses preview language features, you'll need to enable -it via the environment variable `PMD_JAVA_OPTS` and select the new language version, e.g. `20-preview`: +it via the environment variable `PMD_JAVA_OPTS` and select the new language version, e.g. `21-preview`: export PMD_JAVA_OPTS=--enable-preview - pmd check --use-version java-20-preview ... + pmd check --use-version java-21-preview ... Note: we only support preview language features for the latest two java versions. diff --git a/docs/pages/pmd/userdocs/tools/ant.md b/docs/pages/pmd/userdocs/tools/ant.md index ae3abbcbab..02feb2cef1 100644 --- a/docs/pages/pmd/userdocs/tools/ant.md +++ b/docs/pages/pmd/userdocs/tools/ant.md @@ -213,7 +213,7 @@ accordingly and this rule won't be executed. The specific version of a language to be used is selected via the `sourceLanguage` nested element. Example: - + The available versions depend on the language. You can get a list of the currently supported language versions via the CLI option `--help`. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/JavaLanguageModule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/JavaLanguageModule.java index 5ab1b6e64e..d9f9b53132 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/JavaLanguageModule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/JavaLanguageModule.java @@ -47,8 +47,10 @@ public class JavaLanguageModule extends LanguageModuleBase { .addVersion("18") .addVersion("19") .addVersion("19-preview") - .addDefaultVersion("20") // 20 is the default - .addVersion("20-preview")); + .addVersion("20") + .addVersion("20-preview") + .addDefaultVersion("21") // 21 is the default + .addVersion("21-preview")); } diff --git a/pmd-java/src/test/kotlin/net/sourceforge/pmd/lang/java/ast/KotlinTestingDsl.kt b/pmd-java/src/test/kotlin/net/sourceforge/pmd/lang/java/ast/KotlinTestingDsl.kt index 84685e03e2..1eaa12872b 100644 --- a/pmd-java/src/test/kotlin/net/sourceforge/pmd/lang/java/ast/KotlinTestingDsl.kt +++ b/pmd-java/src/test/kotlin/net/sourceforge/pmd/lang/java/ast/KotlinTestingDsl.kt @@ -33,7 +33,8 @@ enum class JavaVersion : Comparable { J17, J18, J19, J19__PREVIEW, - J20, J20__PREVIEW; + J20, J20__PREVIEW, + J21, J21__PREVIEW; /** Name suitable for use with e.g. [JavaParsingHelper.parse] */ val pmdName: String = name.removePrefix("J").replaceFirst("__", "-").replace('_', '.').lowercase()