Skip to content

Commit d46db82

Browse files
authored
Get rid of obtaining Gradle versions from projects (#2158)
2 parents 4699244 + ed1460d commit d46db82

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import static com.diffplug.gradle.spotless.PluginGradlePreconditions.requireElementsNonNull;
1919
import static com.diffplug.gradle.spotless.SpotlessPluginRedirect.badSemver;
20+
import static com.diffplug.gradle.spotless.SpotlessPluginRedirect.badSemverOfGradle;
2021
import static java.util.Objects.requireNonNull;
2122

2223
import java.io.File;
@@ -45,6 +46,7 @@
4546
import org.gradle.api.file.FileCollection;
4647
import org.gradle.api.plugins.BasePlugin;
4748
import org.gradle.api.tasks.TaskProvider;
49+
import org.gradle.util.GradleVersion;
4850

4951
import com.diffplug.common.base.Preconditions;
5052
import com.diffplug.spotless.FormatExceptionPolicyStrict;
@@ -452,11 +454,11 @@ public String apply(String unixNewlines) {
452454
*/
453455
public void custom(String name, FormatterFunc formatter) {
454456
requireNonNull(formatter, "formatter");
455-
if (badSemver(getProject()) < badSemver(SpotlessPlugin.VER_GRADLE_minVersionForCustom)) {
457+
if (badSemverOfGradle() < badSemver(SpotlessPlugin.VER_GRADLE_minVersionForCustom)) {
456458
throw new GradleException("The 'custom' method is only available if you are using Gradle "
457459
+ SpotlessPlugin.VER_GRADLE_minVersionForCustom
458460
+ " or newer, this is "
459-
+ getProject().getGradle().getGradleVersion());
461+
+ GradleVersion.current().getVersion());
460462
}
461463
addStep(FormatterStep.createLazy(name, () -> globalState, SerializedFunction.alwaysReturns(formatter)));
462464
}

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessPlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.gradle.api.Plugin;
2121
import org.gradle.api.Project;
2222
import org.gradle.api.plugins.BasePlugin;
23+
import org.gradle.util.GradleVersion;
2324

2425
import com.diffplug.spotless.Jvm;
2526
import com.diffplug.spotless.SpotlessCache;
@@ -33,8 +34,8 @@ public class SpotlessPlugin implements Plugin<Project> {
3334

3435
@Override
3536
public void apply(Project project) {
36-
if (SpotlessPluginRedirect.gradleIsTooOld(project)) {
37-
throw new GradleException("Spotless requires Gradle " + VER_GRADLE_min + " or newer, this was " + project.getGradle().getGradleVersion());
37+
if (SpotlessPluginRedirect.gradleIsTooOld()) {
38+
throw new GradleException("Spotless requires Gradle " + VER_GRADLE_min + " or newer, this was " + GradleVersion.current().getVersion());
3839
}
3940
if (Jvm.version() < MINIMUM_JRE) {
4041
throw new GradleException("Spotless requires JRE " + MINIMUM_JRE + " or newer, this was " + JavaVersion.current() + ".\n"

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessPluginRedirect.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,13 @@
2121
import org.gradle.api.GradleException;
2222
import org.gradle.api.Plugin;
2323
import org.gradle.api.Project;
24+
import org.gradle.util.GradleVersion;
2425

2526
import com.diffplug.common.base.StringPrinter;
2627

2728
public class SpotlessPluginRedirect implements Plugin<Project> {
2829
private static final Pattern BAD_SEMVER = Pattern.compile("(\\d+)\\.(\\d+)");
2930

30-
static int badSemver(Project project) {
31-
return badSemver(project.getGradle().getGradleVersion());
32-
}
33-
3431
static int badSemver(String input) {
3532
Matcher matcher = BAD_SEMVER.matcher(input);
3633
if (!matcher.find() || matcher.start() != 0) {
@@ -41,18 +38,17 @@ static int badSemver(String input) {
4138
return badSemver(Integer.parseInt(major), Integer.parseInt(minor));
4239
}
4340

41+
static int badSemverOfGradle() {
42+
return badSemver(GradleVersion.current().getVersion());
43+
}
44+
4445
/** Ambiguous after 2147.483647.blah-blah */
4546
private static int badSemver(int major, int minor) {
4647
return major * 1_000_000 + minor;
4748
}
4849

49-
static Boolean gradleIsTooOld;
50-
51-
static boolean gradleIsTooOld(Project project) {
52-
if (gradleIsTooOld == null) {
53-
gradleIsTooOld = badSemver(project) < badSemver(SpotlessPlugin.VER_GRADLE_min);
54-
}
55-
return gradleIsTooOld.booleanValue();
50+
static boolean gradleIsTooOld() {
51+
return badSemverOfGradle() < badSemver(SpotlessPlugin.VER_GRADLE_min);
5652
}
5753

5854
@Override
@@ -76,8 +72,8 @@ public void apply(Project project) {
7672
"",
7773
"If you like the idea behind 'ratchetFrom', you should checkout spotless-changelog",
7874
"https://github.com/diffplug/spotless-changelog");
79-
if (gradleIsTooOld(project)) {
80-
errorMsg = errorMsg.replace("To migrate:\n", "To migrate:\n- Upgrade Gradle to " + SpotlessPlugin.VER_GRADLE_min + " or newer (you're on " + project.getGradle().getGradleVersion() + ")\n");
75+
if (gradleIsTooOld()) {
76+
errorMsg = errorMsg.replace("To migrate:\n", "To migrate:\n- Upgrade Gradle to " + SpotlessPlugin.VER_GRADLE_min + " or newer (you're on " + GradleVersion.current().getVersion() + ")\n");
8177
}
8278
throw new GradleException(errorMsg);
8379
}

0 commit comments

Comments
 (0)