diff --git a/CHANGES.md b/CHANGES.md index ef02491061..dc11ed9af2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -12,8 +12,10 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( ## [Unreleased] ### Changes * Bump default `ktfmt` version to latest `0.58` -> `0.59`. ([#2681](https://github.com/diffplug/spotless/pull/2681) +* Use Task Providers for task initialization. [#2719](https://github.com/diffplug/spotless/pull/2719) +* **BREAKING** Bump minimum supported Gradle version from 7.3 to 8.1. [#2719](https://github.com/diffplug/spotless/pull/2719) ### Fixed -- palantirJavaFormat is no longer arbitrarily set to outdated versions on Java 17, latest available version is always used ([#2686](https://github.com/diffplug/spotless/pull/2686) fixes [#2685](https://github.com/diffplug/spotless/issues/2685)) +* palantirJavaFormat is no longer arbitrarily set to outdated versions on Java 17, latest available version is always used ([#2686](https://github.com/diffplug/spotless/pull/2686) fixes [#2685](https://github.com/diffplug/spotless/issues/2685)) ### Removed * **BREAKING** Drop support for older Ktlint versions. ([#2711](https://github.com/diffplug/spotless/pull/2711)) diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java index 448cf4b506..14dcc8ce82 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java @@ -1139,7 +1139,7 @@ public TaskProvider createIndependentApplyTaskLazy(String taskNam return spotless.project.getTasks().register(taskName, SpotlessApply.class, task -> { task.dependsOn(spotlessTask); - task.init(spotlessTask.get()); + task.init(spotlessTask); }); } diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessCheck.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessCheck.java index fdc93ce04a..824690e94e 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessCheck.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessCheck.java @@ -32,6 +32,7 @@ import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Internal; import org.gradle.api.tasks.TaskAction; +import org.gradle.api.tasks.TaskProvider; import org.gradle.work.DisableCachingByDefault; import org.jetbrains.annotations.NotNull; @@ -133,10 +134,10 @@ public void visitFile(FileVisitDetails fileVisitDetails) { abstract Property getProjectPath(); @Override - void init(SpotlessTaskImpl impl) { + void init(TaskProvider impl) { super.init(impl); getProjectPath().set(getProject().getPath()); - getEncoding().set(impl.getEncoding()); + getEncoding().set(impl.map(SpotlessTask::getEncoding)); getRunToFixMessage().convention( "Run '" + calculateGradleCommand() + " spotlessApply' to fix all violations."); } diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessDiagnoseTask.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessDiagnoseTask.java index a029bd00d4..284febb2ee 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessDiagnoseTask.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessDiagnoseTask.java @@ -24,6 +24,7 @@ import org.gradle.api.DefaultTask; import org.gradle.api.tasks.Internal; import org.gradle.api.tasks.TaskAction; +import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.UntrackedTask; import com.diffplug.spotless.Formatter; @@ -33,10 +34,10 @@ @UntrackedTask(because = "undeclared inputs/outputs") public class SpotlessDiagnoseTask extends DefaultTask { - SpotlessTask source; + TaskProvider source; @Internal - public SpotlessTask getSource() { + public TaskProvider getSource() { return source; } @@ -45,10 +46,10 @@ public SpotlessTask getSource() { public void performAction() throws IOException { Path srcRoot = getProject().getProjectDir().toPath(); Path diagnoseRoot = getProject().getLayout().getBuildDirectory().getAsFile().get() - .toPath().resolve("spotless-diagnose-" + source.formatName()); + .toPath().resolve("spotless-diagnose-" + source.get().formatName()); getProject().delete(diagnoseRoot.toFile()); - try (Formatter formatter = source.buildFormatter()) { - for (File file : source.target) { + try (Formatter formatter = source.get().buildFormatter()) { + for (File file : source.get().target) { getLogger().debug("Running padded cell check on " + file); PaddedCell padded = PaddedCell.check(formatter, file); if (!padded.misbehaved()) { diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java index d252491cbb..42a5414c3f 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java @@ -78,7 +78,7 @@ protected void createFormatTasks(String name, FormatExtension formatExtension) { // create the check and apply control tasks TaskProvider applyTask = tasks.register(taskName + APPLY, SpotlessApply.class, task -> { - task.init(spotlessTask.get()); + task.init(spotlessTask); task.setGroup(TASK_GROUP); task.setEnabled(ideHook.path == null); task.dependsOn(spotlessTask); @@ -86,11 +86,10 @@ protected void createFormatTasks(String name, FormatExtension formatExtension) { rootApplyTask.configure(task -> task.dependsOn(ideHook.path == null ? applyTask : spotlessTask)); TaskProvider checkTask = tasks.register(taskName + CHECK, SpotlessCheck.class, task -> { - SpotlessTaskImpl source = spotlessTask.get(); task.setGroup(TASK_GROUP); - task.init(source); + task.init(spotlessTask); task.setEnabled(ideHook.path == null); - task.dependsOn(source); + task.dependsOn(spotlessTask); // if the user runs both, make sure that apply happens first, task.mustRunAfter(applyTask); @@ -99,7 +98,7 @@ protected void createFormatTasks(String name, FormatExtension formatExtension) { // create the diagnose task TaskProvider diagnoseTask = tasks.register(taskName + DIAGNOSE, SpotlessDiagnoseTask.class, task -> { - task.source = spotlessTask.get(); + task.source = spotlessTask; task.setGroup(TASK_GROUP); task.mustRunAfter(BasePlugin.CLEAN_TASK_NAME); }); 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 bb8c36ad02..e85f49f204 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,7 +27,7 @@ public class SpotlessPlugin implements Plugin { static final String SPOTLESS_MODERN = "spotlessModern"; - static final String VER_GRADLE_MIN = "7.3"; + static final String VER_GRADLE_MIN = "8.1"; static final String VER_GRADLE_MIN_VERSION_FOR_CUSTOM = "8.4"; private static final int MINIMUM_JRE = 17; diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessTaskService.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessTaskService.java index 33347f8dfc..73510af32a 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessTaskService.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessTaskService.java @@ -38,6 +38,7 @@ import org.gradle.api.services.BuildService; import org.gradle.api.services.BuildServiceParameters; import org.gradle.api.tasks.Internal; +import org.gradle.api.tasks.TaskProvider; import org.gradle.tooling.events.FinishEvent; import org.gradle.tooling.events.OperationCompletionListener; @@ -125,12 +126,12 @@ abstract static class ClientTask extends DefaultTask { @Inject protected abstract ObjectFactory getConfigCacheWorkaround(); - void init(SpotlessTaskImpl impl) { - usesServiceTolerateTestFailure(this, impl.getTaskServiceProvider()); - getSpotlessCleanDirectory().set(impl.getCleanDirectory()); - getSpotlessLintsDirectory().set(impl.getLintsDirectory()); - getTaskService().set(impl.getTaskService()); - getProjectDir().set(impl.getProjectDir()); + void init(TaskProvider impl) { + usesServiceTolerateTestFailure(this, impl.flatMap(SpotlessTaskImpl::getTaskServiceProvider)); + getSpotlessCleanDirectory().set(impl.map(SpotlessTask::getCleanDirectory)); + getSpotlessLintsDirectory().set(impl.map(SpotlessTask::getLintsDirectory)); + getTaskService().set(impl.flatMap(SpotlessTask::getTaskService)); + getProjectDir().set(impl.flatMap(SpotlessTask::getProjectDir)); } String sourceTaskPath() { diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ConfigurationCacheTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ConfigurationCacheTest.java index e76585fe54..bc47ad54e1 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ConfigurationCacheTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ConfigurationCacheTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2024 DiffPlug + * Copyright 2020-2025 DiffPlug * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,8 +24,7 @@ public class ConfigurationCacheTest extends GradleIntegrationHarness { @Override public GradleRunner gradleRunner() throws IOException { setFile("gradle.properties").toContent("org.gradle.unsafe.configuration-cache=true"); - setFile("settings.gradle").toContent("enableFeaturePreview(\"STABLE_CONFIGURATION_CACHE\")"); - return super.gradleRunner().withGradleVersion(GradleVersionSupport.STABLE_CONFIGURATION_CACHE.version); + return super.gradleRunner(); } @Test diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/DiffMessageFormatterTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/DiffMessageFormatterTest.java index a942d6a9e8..7f8459b02a 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/DiffMessageFormatterTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/DiffMessageFormatterTest.java @@ -26,6 +26,7 @@ import org.gradle.api.Project; import org.gradle.api.provider.Provider; import org.gradle.api.services.BuildServiceParameters; +import org.gradle.api.tasks.TaskProvider; import org.junit.jupiter.api.Test; import com.diffplug.common.base.StringPrinter; @@ -48,34 +49,30 @@ public BuildServiceParameters.None getParameters() { }); File file; - SpotlessTaskImpl task; - SpotlessCheck check; + TaskProvider task; + TaskProvider check; Bundle(String name) throws IOException { file = setFile("src/test." + name).toContent("CCC"); - task = createFormatTask(name); - check = createCheckTask(name, task); - createApplyTask(name, task); + task = registerFormatTask(name); + check = registerCheckTask(name, task); + registerApplyTask(name, task); } - private SpotlessTaskImpl createFormatTask(String name) { - SpotlessTaskImpl task = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name), SpotlessTaskImpl.class); - task.init(taskService); - task.setLineEndingsPolicy(project.provider(LineEnding.UNIX::createPolicy)); - task.setTarget(Collections.singletonList(file)); - return task; + private TaskProvider registerFormatTask(String name) { + return project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name), SpotlessTaskImpl.class, task -> { + task.init(taskService); + task.setLineEndingsPolicy(project.provider(LineEnding.UNIX::createPolicy)); + task.setTarget(Collections.singletonList(file)); + }); } - private SpotlessCheck createCheckTask(String name, SpotlessTaskImpl source) { - SpotlessCheck task = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name) + "Check", SpotlessCheck.class); - task.init(source); - return task; + private TaskProvider registerCheckTask(String name, TaskProvider source) { + return project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name) + "Check", SpotlessCheck.class, task -> task.init(source)); } - private SpotlessApply createApplyTask(String name, SpotlessTaskImpl source) { - SpotlessApply task = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name) + "Apply", SpotlessApply.class); - task.init(source); - return task; + private TaskProvider registerApplyTask(String name, TaskProvider source) { + return project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name) + "Apply", SpotlessApply.class, task -> task.init(source)); } String checkFailureMsg() { @@ -88,8 +85,8 @@ String checkFailureMsg() { } void check() throws Exception { - Tasks.execute(task); - check.performActionTest(); + Tasks.execute(task.get()); + check.get().performActionTest(); } } @@ -99,8 +96,8 @@ private Bundle create(File... files) throws IOException { private Bundle create(List files) throws IOException { Bundle bundle = new Bundle("underTest"); - bundle.task.setLineEndingsPolicy(bundle.project.provider(LineEnding.UNIX::createPolicy)); - bundle.task.setTarget(files); + bundle.task.get().setLineEndingsPolicy(bundle.project.provider(LineEnding.UNIX::createPolicy)); + bundle.task.get().setTarget(files); return bundle; } @@ -138,7 +135,7 @@ void lineEndingProblem() throws Exception { void customRunToFixMessage() throws Exception { Bundle task = create(setFile("testFile").toContent("A\r\nB\r\nC\r\n")); String customMessage = "Formatting issues detected, please read automatic-code-formatting.txt and correct."; - task.check.getRunToFixMessage().set(customMessage); + task.check.get().getRunToFixMessage().set(customMessage); String msg = task.checkFailureMsg(); @@ -150,7 +147,7 @@ void customRunToFixMessage() throws Exception { @Test void whitespaceProblem() throws Exception { Bundle spotless = create(setFile("testFile").toContent("A \nB\t\nC \n")); - spotless.task.setSteps(List.of(TrimTrailingWhitespaceStep.create())); + spotless.task.get().setSteps(List.of(TrimTrailingWhitespaceStep.create())); assertCheckFailure(spotless, " testFile", " @@ -1,3 +1,3 @@", diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/GradleIntegrationHarness.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/GradleIntegrationHarness.java index 3402cbada3..ebfe6e24a9 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/GradleIntegrationHarness.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/GradleIntegrationHarness.java @@ -46,9 +46,6 @@ public class GradleIntegrationHarness extends ResourceHarness { public enum GradleVersionSupport { MINIMUM(SpotlessPlugin.VER_GRADLE_MIN), - // https://docs.gradle.org/7.5/userguide/configuration_cache.html#config_cache:stable - STABLE_CONFIGURATION_CACHE("7.5"), - CUSTOM_STEPS(SpotlessPlugin.VER_GRADLE_MIN_VERSION_FOR_CUSTOM), ; @@ -59,7 +56,8 @@ public enum GradleVersionSupport { String minVersionForRunningJRE; switch (Jvm.version()) { case 25: - // TODO: https://docs.gradle.org/current/userguide/compatibility.html + minVersionForRunningJRE = "9.1.0"; + break; case 24: minVersionForRunningJRE = "8.14"; break; @@ -75,12 +73,6 @@ public enum GradleVersionSupport { case 20: minVersionForRunningJRE = "8.3"; break; - case 19: - minVersionForRunningJRE = "7.6"; - break; - case 18: - minVersionForRunningJRE = "7.5"; - break; default: minVersionForRunningJRE = null; break; diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/IdeHookTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/IdeHookTest.java index da2cf86440..98f94433f5 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/IdeHookTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/IdeHookTest.java @@ -88,8 +88,7 @@ private void runWith(boolean configurationCache, String... arguments) throws IOE protected GradleRunner gradleRunner(boolean configurationCache) throws IOException { if (configurationCache) { setFile("gradle.properties").toContent("org.gradle.unsafe.configuration-cache=true"); - setFile("settings.gradle").toContent("enableFeaturePreview(\"STABLE_CONFIGURATION_CACHE\")"); - return super.gradleRunner().withGradleVersion(GradleVersionSupport.STABLE_CONFIGURATION_CACHE.version); + return super.gradleRunner(); } else { File gradleProps = new File(rootFolder(), "gradle.properties"); if (gradleProps.exists()) { diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/NpmTestsWithoutNpmInstallationTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/NpmTestsWithoutNpmInstallationTest.java index 6abbc108fa..b41331765c 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/NpmTestsWithoutNpmInstallationTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/NpmTestsWithoutNpmInstallationTest.java @@ -182,9 +182,7 @@ void useNpmNextToConfiguredNodePluginFromNodeGradlePlugin() throws Exception { public void supportsConfigurationCache() throws Exception { setFile("build.gradle").toResource("com/diffplug/gradle/spotless/NpmTestsWithoutNpmInstallationTest_gradle_node_plugin_example_1.gradle"); setFile("test.ts").toResource("npm/prettier/config/typescript.dirty"); - BuildResult spotlessApply = gradleRunner() - .withGradleVersion(GradleVersionSupport.STABLE_CONFIGURATION_CACHE.version) - .withArguments("--stacktrace", "--configuration-cache", "spotlessApply").build(); + BuildResult spotlessApply = gradleRunner().withArguments("--stacktrace", "--configuration-cache", "spotlessApply").build(); Assertions.assertThat(spotlessApply.getOutput()).contains("BUILD SUCCESSFUL"); assertFile("test.ts").sameAsResource("npm/prettier/config/typescript.configfile_prettier_2.clean"); } diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/PaddedCellTaskTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/PaddedCellTaskTest.java index 888f11f294..0b13dd6475 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/PaddedCellTaskTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/PaddedCellTaskTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2024 DiffPlug + * Copyright 2016-2025 DiffPlug * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import org.gradle.api.Project; import org.gradle.api.provider.Provider; import org.gradle.api.services.BuildServiceParameters; +import org.gradle.api.tasks.TaskProvider; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -49,40 +50,36 @@ public BuildServiceParameters.None getParameters() { } }); File file; - File outputFile; - SpotlessTaskImpl source; - SpotlessCheck check; - SpotlessApply apply; + Provider outputFile; + TaskProvider source; + TaskProvider check; + TaskProvider apply; Bundle(String name, SerializedFunction function) throws IOException { this.name = name; file = setFile("src/test." + name).toContent("CCC"); FormatterStep step = NeverUpToDateStep.create(name, function); - source = createFormatTask(name, step); - check = createCheckTask(name, source); - apply = createApplyTask(name, source); - outputFile = new File(source.getCleanDirectory() + "/src", file.getName()); + source = registerFormatTask(name, step); + check = registerCheckTask(name, source); + apply = registerApplyTask(name, source); + outputFile = source.map(task -> new File(task.getCleanDirectory() + "/src", file.getName())); } - private SpotlessTaskImpl createFormatTask(String name, FormatterStep step) { - SpotlessTaskImpl task = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name), SpotlessTaskImpl.class); - task.init(taskService); - task.setSteps(List.of(step)); - task.setLineEndingsPolicy(project.provider(LineEnding.UNIX::createPolicy)); - task.setTarget(Collections.singletonList(file)); - return task; + private TaskProvider registerFormatTask(String name, FormatterStep step) { + return project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name), SpotlessTaskImpl.class, task -> { + task.init(taskService); + task.setSteps(List.of(step)); + task.setLineEndingsPolicy(project.provider(LineEnding.UNIX::createPolicy)); + task.setTarget(Collections.singletonList(file)); + }); } - private SpotlessCheck createCheckTask(String name, SpotlessTaskImpl source) { - SpotlessCheck task = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name) + "Check", SpotlessCheck.class); - task.init(source); - return task; + private TaskProvider registerCheckTask(String name, TaskProvider source) { + return project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name) + "Check", SpotlessCheck.class, task -> task.init(source)); } - private SpotlessApply createApplyTask(String name, SpotlessTaskImpl source) { - SpotlessApply task = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name) + "Apply", SpotlessApply.class); - task.init(source); - return task; + private TaskProvider registerApplyTask(String name, TaskProvider source) { + return project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name) + "Apply", SpotlessApply.class, task -> task.init(source)); } String checkFailureMsg() { @@ -95,23 +92,23 @@ String checkFailureMsg() { } void diagnose() throws IOException { - SpotlessDiagnoseTask diagnose = project.getTasks().create("spotless" + SpotlessPlugin.capitalize(name) + "Diagnose", SpotlessDiagnoseTask.class); - diagnose.source = source; - diagnose.performAction(); + TaskProvider diagnose = project.getTasks().register("spotless" + SpotlessPlugin.capitalize(name) + "Diagnose", SpotlessDiagnoseTask.class); + diagnose.get().source = source; + diagnose.get().performAction(); } void format() throws Exception { - Tasks.execute(source); + Tasks.execute(source.get()); } void apply() throws Exception { - Tasks.execute(source); - apply.performAction(); + Tasks.execute(source.get()); + apply.get().performAction(); } void check() throws Exception { - Tasks.execute(source); - check.performActionTest(); + Tasks.execute(source.get()); + check.get().performActionTest(); } } @@ -143,10 +140,10 @@ void paddedCellFormat() throws Exception { converge.format(); diverge.format(); - assertFile(wellbehaved.outputFile).hasContent("42"); // cycle -> first element in cycle - assertFile(cycle.outputFile).hasContent("A"); // cycle -> first element in cycle - assertFile(converge.outputFile).hasContent(""); // converge -> converges - assertThat(diverge.outputFile).doesNotExist(); // diverge -> no change + assertFile(wellbehaved.outputFile.get()).hasContent("42"); // cycle -> first element in cycle + assertFile(cycle.outputFile.get()).hasContent("A"); // cycle -> first element in cycle + assertFile(converge.outputFile.get()).hasContent(""); // converge -> converges + assertThat(diverge.outputFile.get()).doesNotExist(); // diverge -> no change } @Test @@ -161,10 +158,10 @@ void paddedCellApplyCheck() throws Exception { converge.apply(); diverge.apply(); - assertFile(wellbehaved.file).hasContent("42"); // cycle -> first element in cycle - assertFile(cycle.file).hasContent("A"); // cycle -> first element in cycle - assertFile(converge.file).hasContent(""); // converge -> converges - assertFile(diverge.file).hasContent("CCC"); // diverge -> no change + assertFile(wellbehaved.file).hasContent("42"); // cycle -> first element in cycle + assertFile(cycle.file).hasContent("A"); // cycle -> first element in cycle + assertFile(converge.file).hasContent(""); // converge -> converges + assertFile(diverge.file).hasContent("CCC"); // diverge -> no change // After apply, check should pass wellbehaved.check(); diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ToggleOffOnTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ToggleOffOnTest.java index c1bb90dd6d..3504a70e49 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ToggleOffOnTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/ToggleOffOnTest.java @@ -44,7 +44,7 @@ public GradleRunner gradleRunner() throws IOException { if (useConfigCache) { setFile("gradle.properties").toLines("org.gradle.unsafe.configuration-cache=true", "org.gradle.configuration-cache=true"); - return super.gradleRunner().withGradleVersion(GradleVersionSupport.STABLE_CONFIGURATION_CACHE.version); + return super.gradleRunner(); } else { return super.gradleRunner(); }