Skip to content

Commit ce3ddcf

Browse files
committed
consider user property ratchetFrom to have priority over formatter config
closes #2842
1 parent 708a1b0 commit ce3ddcf

3 files changed

Lines changed: 22 additions & 9 deletions

File tree

plugin-maven/src/main/java/com/diffplug/spotless/maven/AbstractSpotlessMojo.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.util.stream.Stream;
4040
import java.util.stream.StreamSupport;
4141

42+
import org.apache.maven.execution.MavenSession;
4243
import org.apache.maven.plugin.AbstractMojo;
4344
import org.apache.maven.plugin.MojoExecutionException;
4445
import org.apache.maven.plugins.annotations.Component;
@@ -107,6 +108,9 @@ public abstract class AbstractSpotlessMojo extends AbstractMojo {
107108
@Component
108109
protected BuildContext buildContext;
109110

111+
@Component
112+
private MavenSession mavenSession;
113+
110114
@Parameter(defaultValue = "${mojoExecution.goal}", required = true, readonly = true)
111115
private String goal;
112116

@@ -401,9 +405,10 @@ private FormatterConfig getFormatterConfig() {
401405
P2Provisioner p2Provisioner = P2Provisioner.createDefault();
402406
List<FormatterStepFactory> formatterStepFactories = getFormatterStepFactories();
403407
FileLocator fileLocator = getFileLocator();
408+
final Optional<String> userRatchetFrom = Optional.ofNullable((String) mavenSession.getUserProperties().get("ratchetFrom"));
404409
final Optional<String> optionalRatchetFrom = Optional.ofNullable(this.ratchetFrom)
405410
.filter(ratchet -> !RATCHETFROM_NONE.equals(ratchet));
406-
return new FormatterConfig(baseDir, encoding, lineEndings, optionalRatchetFrom, provisioner, p2Provisioner, fileLocator, formatterStepFactories, Optional.ofNullable(setLicenseHeaderYearsFromGitHistory), lintSuppressions);
411+
return new FormatterConfig(baseDir, encoding, lineEndings, userRatchetFrom, optionalRatchetFrom, provisioner, p2Provisioner, fileLocator, formatterStepFactories, Optional.ofNullable(setLicenseHeaderYearsFromGitHistory), lintSuppressions);
407412
}
408413

409414
private FileLocator getFileLocator() {

plugin-maven/src/main/java/com/diffplug/spotless/maven/FormatterConfig.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class FormatterConfig {
3030

3131
private final String encoding;
3232
private final LineEnding lineEndings;
33+
private final Optional<String> userRatchetFrom;
3334
private final Optional<String> ratchetFrom;
3435
private final Provisioner provisioner;
3536
private final P2Provisioner p2Provisioner;
@@ -38,10 +39,11 @@ public class FormatterConfig {
3839
private final Optional<String> spotlessSetLicenseHeaderYearsFromGitHistory;
3940
private final List<LintSuppression> lintSuppressions;
4041

41-
public FormatterConfig(File baseDir, String encoding, LineEnding lineEndings, Optional<String> ratchetFrom, Provisioner provisioner,
42+
public FormatterConfig(File baseDir, String encoding, LineEnding lineEndings, Optional<String> userRatchetFrom, Optional<String> ratchetFrom, Provisioner provisioner,
4243
P2Provisioner p2Provisioner, FileLocator fileLocator, List<FormatterStepFactory> globalStepFactories, Optional<String> spotlessSetLicenseHeaderYearsFromGitHistory, List<LintSuppression> lintSuppressions) {
4344
this.encoding = encoding;
4445
this.lineEndings = lineEndings;
46+
this.userRatchetFrom = userRatchetFrom;
4547
this.ratchetFrom = ratchetFrom;
4648
this.provisioner = provisioner;
4749
this.p2Provisioner = p2Provisioner;
@@ -59,6 +61,10 @@ public LineEnding getLineEndings() {
5961
return lineEndings;
6062
}
6163

64+
public Optional<String> getUserRatchetFrom() {
65+
return userRatchetFrom;
66+
}
67+
6268
public Optional<String> getRatchetFrom() {
6369
return ratchetFrom;
6470
}

plugin-maven/src/main/java/com/diffplug/spotless/maven/FormatterFactory.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,15 @@ private LineEnding lineEndings(FormatterConfig config) {
175175
}
176176

177177
Optional<String> ratchetFrom(FormatterConfig config) {
178-
if (RATCHETFROM_NOT_SET_AT_FORMAT_LEVEL.equals(ratchetFrom)) {
179-
return config.getRatchetFrom();
180-
} else if (RATCHETFROM_NONE.equals(ratchetFrom)) {
181-
return Optional.empty();
182-
} else {
183-
return Optional.ofNullable(ratchetFrom);
184-
}
178+
return config.getUserRatchetFrom()
179+
.or(this::optionalRatchetFrom)
180+
.or(config::getRatchetFrom)
181+
.filter(ratchet -> !RATCHETFROM_NONE.equals(ratchet));
182+
}
183+
184+
private Optional<String> optionalRatchetFrom() {
185+
return Optional.ofNullable(ratchetFrom)
186+
.filter(ratchet -> !RATCHETFROM_NOT_SET_AT_FORMAT_LEVEL.equals(ratchet));
185187
}
186188

187189
private FormatterStepConfig stepConfig(Charset encoding, FormatterConfig config) {

0 commit comments

Comments
 (0)