Skip to content

Commit 946f543

Browse files
lutovichnedtwigg
authored andcommitted
Common filter for files not supported by LicenseHeaderStep (#285)
Extracted the filter into a shared constant which is used by all Gradle extensions and Maven mojo.
1 parent f622379 commit 946f543

File tree

4 files changed

+12
-17
lines changed

4 files changed

+12
-17
lines changed

lib/src/main/java/com/diffplug/spotless/generic/LicenseHeaderStep.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import com.diffplug.spotless.FormatterStep;
2929
import com.diffplug.spotless.LineEnding;
30+
import com.diffplug.spotless.SerializableFileFilter;
3031

3132
/** Prefixes a license header before the package statement. */
3233
public final class LicenseHeaderStep implements Serializable {
@@ -35,6 +36,9 @@ public final class LicenseHeaderStep implements Serializable {
3536
private static final String NAME = "licenseHeader";
3637
private static final String DEFAULT_YEAR_DELIMITER = "-";
3738

39+
private static final SerializableFileFilter UNSUPPORTED_JVM_FILES_FILTER = SerializableFileFilter.skipFilesNamed(
40+
"package-info.java", "package-info.groovy", "module-info.java");
41+
3842
private final String licenseHeader;
3943
private final Pattern delimiterPattern;
4044
private Pattern yearMatcherPattern;
@@ -87,6 +91,10 @@ public static String defaultYearDelimiter() {
8791
return DEFAULT_YEAR_DELIMITER;
8892
}
8993

94+
public static SerializableFileFilter unsupportedJvmFilesFilter() {
95+
return UNSUPPORTED_JVM_FILES_FILTER;
96+
}
97+
9098
/** The license that we'd like enforced. */
9199
private LicenseHeaderStep(String licenseHeader, String delimiter, String yearSeparator) {
92100
if (delimiter.contains("\n")) {

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.gradle.api.tasks.SourceSet;
3131

3232
import com.diffplug.common.base.StringPrinter;
33-
import com.diffplug.spotless.SerializableFileFilter;
3433
import com.diffplug.spotless.extra.EclipseBasedStepBuilder;
3534
import com.diffplug.spotless.extra.groovy.GrEclipseFormatterStep;
3635
import com.diffplug.spotless.generic.LicenseHeaderStep;
@@ -140,7 +139,7 @@ protected void setupTask(SpotlessTask task) {
140139
// ensures that it skips both. See https://github.com/diffplug/spotless/issues/1
141140
steps.replaceAll(step -> {
142141
if (LicenseHeaderStep.name().equals(step.getName())) {
143-
return step.filterByFile(SerializableFileFilter.skipFilesNamed("package-info.java", "package-info.groovy"));
142+
return step.filterByFile(LicenseHeaderStep.unsupportedJvmFilesFilter());
144143
} else {
145144
return step;
146145
}

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828

2929
import com.diffplug.common.base.StringPrinter;
3030
import com.diffplug.spotless.FormatterStep;
31-
import com.diffplug.spotless.SerializableFileFilter;
3231
import com.diffplug.spotless.extra.EclipseBasedStepBuilder;
3332
import com.diffplug.spotless.extra.java.EclipseFormatterStep;
3433
import com.diffplug.spotless.extra.java.EclipseJdtFormatterStep;
@@ -187,17 +186,10 @@ protected void setupTask(SpotlessTask task) {
187186
}
188187
target = union;
189188
}
190-
// LicenseHeaderStep completely blows apart package-info.java & module-info.java;
191-
// this common-sense check ensures that it skips package-info.java & module-info.java.
192-
//
193-
// See:
194-
// - https://github.com/diffplug/spotless/issues/1
195-
// - https://github.com/diffplug/spotless/issues/270
189+
196190
steps.replaceAll(step -> {
197191
if (LicenseHeaderStep.name().equals(step.getName())) {
198-
return step.filterByFile(SerializableFileFilter.skipFilesNamed(
199-
"package-info.java",
200-
"module-info.java"));
192+
return step.filterByFile(LicenseHeaderStep.unsupportedJvmFilesFilter());
201193
} else {
202194
return step;
203195
}

plugin-maven/src/main/java/com/diffplug/spotless/maven/generic/LicenseHeader.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,12 @@
2020
import org.apache.maven.plugins.annotations.Parameter;
2121

2222
import com.diffplug.spotless.FormatterStep;
23-
import com.diffplug.spotless.SerializableFileFilter;
2423
import com.diffplug.spotless.generic.LicenseHeaderStep;
2524
import com.diffplug.spotless.maven.FormatterStepConfig;
2625
import com.diffplug.spotless.maven.FormatterStepFactory;
2726

2827
public class LicenseHeader implements FormatterStepFactory {
2928

30-
private static final SerializableFileFilter UNSUPPORTED_FILES_FILTER = SerializableFileFilter.skipFilesNamed(
31-
"package-info.java", "module-info.java");
32-
3329
@Parameter
3430
private String file;
3531

@@ -51,7 +47,7 @@ public final FormatterStep newFormatterStep(FormatterStepConfig config) {
5147
? createStepFromFile(config, delimiterString)
5248
: createStepFromContent(delimiterString);
5349

54-
return step.filterByFile(UNSUPPORTED_FILES_FILTER);
50+
return step.filterByFile(LicenseHeaderStep.unsupportedJvmFilesFilter());
5551
} else {
5652
throw new IllegalArgumentException("Must specify exactly one of 'file' or 'content'.");
5753
}

0 commit comments

Comments
 (0)