diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e436abd95..ac03e6d1af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,6 +49,9 @@ jobs: - kind: maven jre: 11 os: windows-latest + - kind: maven + jre: 21 + os: ubuntu-latest - kind: gradle jre: 17 os: windows-latest diff --git a/CHANGES.md b/CHANGES.md index d5443669a0..372483551e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,6 +10,10 @@ This document is intended for Spotless developers. We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `1.27.0`). ## [Unreleased] +### +* Bump palantir-java-format to 2.38.0 ([#1822](https://github.com/diffplug/spotless/pull/1822)) +### Added +* Add Java 21 to CI ([#1822](https://github.com/diffplug/spotless/pull/1822)) ## [2.43.0] - 2023-11-27 ### Added diff --git a/lib/src/main/java/com/diffplug/spotless/java/PalantirJavaFormatStep.java b/lib/src/main/java/com/diffplug/spotless/java/PalantirJavaFormatStep.java index f769ad09ec..2c3b84c40d 100644 --- a/lib/src/main/java/com/diffplug/spotless/java/PalantirJavaFormatStep.java +++ b/lib/src/main/java/com/diffplug/spotless/java/PalantirJavaFormatStep.java @@ -30,7 +30,7 @@ private PalantirJavaFormatStep() {} private static final String DEFAULT_STYLE = "PALANTIR"; private static final String NAME = "palantir-java-format"; private static final String MAVEN_COORDINATE = "com.palantir.javaformat:palantir-java-format:"; - private static final Jvm.Support JVM_SUPPORT = Jvm. support(NAME).add(8, "1.1.0").add(11, "2.28.0"); + private static final Jvm.Support JVM_SUPPORT = Jvm. support(NAME).add(8, "1.1.0").add(11, "2.28.0").add(21, "2.38.0"); /** Creates a step which formats everything - code, import order, and unused imports. */ public static FormatterStep create(Provisioner provisioner) { diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/GradleProvisioner.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/GradleProvisioner.java index 288cc10c72..dd5a55ba8b 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/GradleProvisioner.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/GradleProvisioner.java @@ -28,7 +28,9 @@ import org.gradle.api.artifacts.dsl.DependencyHandler; import org.gradle.api.attributes.Bundling; import org.gradle.api.attributes.Category; +import org.gradle.api.attributes.java.TargetJvmEnvironment; import org.gradle.api.initialization.dsl.ScriptHandler; +import org.gradle.util.GradleVersion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -124,6 +126,10 @@ private static Provisioner forConfigurationContainer(Project project, Configurat config.attributes(attr -> { attr.attribute(Category.CATEGORY_ATTRIBUTE, project.getObjects().named(Category.class, Category.LIBRARY)); attr.attribute(Bundling.BUNDLING_ATTRIBUTE, project.getObjects().named(Bundling.class, Bundling.EXTERNAL)); + // TARGET_JVM_ENVIRONMENT_ATTRIBUTE has been added in Gradle 7.0 + if (GradleVersion.current().compareTo(GradleVersion.version(SpotlessPlugin.VER_GRADLE_7)) >= 0) { + attr.attribute(TargetJvmEnvironment.TARGET_JVM_ENVIRONMENT_ATTRIBUTE, project.getObjects().named(TargetJvmEnvironment.class, TargetJvmEnvironment.STANDARD_JVM)); + } }); return config.resolve(); } catch (Exception e) { diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessPlugin.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessPlugin.java index 0043e2b274..4e01d98eb3 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessPlugin.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessPlugin.java @@ -27,6 +27,7 @@ public class SpotlessPlugin implements Plugin { static final String SPOTLESS_MODERN = "spotlessModern"; static final String VER_GRADLE_min = "6.1.1"; + static final String VER_GRADLE_7 = "7.0"; static final String VER_GRADLE_javaPluginExtension = "7.1"; private static final int MINIMUM_JRE = 11; diff --git a/testlib/src/main/java/com/diffplug/spotless/TestProvisioner.java b/testlib/src/main/java/com/diffplug/spotless/TestProvisioner.java index 7c7b7b67f7..0575e35350 100644 --- a/testlib/src/main/java/com/diffplug/spotless/TestProvisioner.java +++ b/testlib/src/main/java/com/diffplug/spotless/TestProvisioner.java @@ -33,7 +33,9 @@ import org.gradle.api.artifacts.dsl.RepositoryHandler; import org.gradle.api.attributes.Bundling; import org.gradle.api.attributes.Category; +import org.gradle.api.attributes.java.TargetJvmEnvironment; import org.gradle.testfixtures.ProjectBuilder; +import org.gradle.util.GradleVersion; import com.diffplug.common.base.Errors; import com.diffplug.common.base.StandardSystemProperty; @@ -73,6 +75,10 @@ private static Provisioner createWithRepositories(Consumer re config.attributes(attr -> { attr.attribute(Category.CATEGORY_ATTRIBUTE, project.getObjects().named(Category.class, Category.LIBRARY)); attr.attribute(Bundling.BUNDLING_ATTRIBUTE, project.getObjects().named(Bundling.class, Bundling.EXTERNAL)); + // TARGET_JVM_ENVIRONMENT_ATTRIBUTE has been added in Gradle 7.0 + if (GradleVersion.current().compareTo(GradleVersion.version("7.0")) >= 0) { + attr.attribute(TargetJvmEnvironment.TARGET_JVM_ENVIRONMENT_ATTRIBUTE, project.getObjects().named(TargetJvmEnvironment.class, TargetJvmEnvironment.STANDARD_JVM)); + } }); try { return config.resolve();