Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

import com.diffplug.spotless.FormatterStep;
import com.diffplug.spotless.LineEnding;
import com.diffplug.spotless.SerializableFileFilter;

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

private static final SerializableFileFilter UNSUPPORTED_JVM_FILES_FILTER = SerializableFileFilter.skipFilesNamed(
"package-info.java", "package-info.groovy", "module-info.java");

private final String licenseHeader;
private final Pattern delimiterPattern;
private Pattern yearMatcherPattern;
Expand Down Expand Up @@ -87,6 +91,10 @@ public static String defaultYearDelimiter() {
return DEFAULT_YEAR_DELIMITER;
}

public static SerializableFileFilter unsupportedJvmFilesFilter() {
return UNSUPPORTED_JVM_FILES_FILTER;
}

/** The license that we'd like enforced. */
private LicenseHeaderStep(String licenseHeader, String delimiter, String yearSeparator) {
if (delimiter.contains("\n")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.gradle.api.tasks.SourceSet;

import com.diffplug.common.base.StringPrinter;
import com.diffplug.spotless.SerializableFileFilter;
import com.diffplug.spotless.extra.EclipseBasedStepBuilder;
import com.diffplug.spotless.extra.groovy.GrEclipseFormatterStep;
import com.diffplug.spotless.generic.LicenseHeaderStep;
Expand Down Expand Up @@ -140,7 +139,7 @@ protected void setupTask(SpotlessTask task) {
// ensures that it skips both. See https://github.com/diffplug/spotless/issues/1
steps.replaceAll(step -> {
if (LicenseHeaderStep.name().equals(step.getName())) {
return step.filterByFile(SerializableFileFilter.skipFilesNamed("package-info.java", "package-info.groovy"));
return step.filterByFile(LicenseHeaderStep.unsupportedJvmFilesFilter());
} else {
return step;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@

import com.diffplug.common.base.StringPrinter;
import com.diffplug.spotless.FormatterStep;
import com.diffplug.spotless.SerializableFileFilter;
import com.diffplug.spotless.extra.EclipseBasedStepBuilder;
import com.diffplug.spotless.extra.java.EclipseFormatterStep;
import com.diffplug.spotless.extra.java.EclipseJdtFormatterStep;
Expand Down Expand Up @@ -187,17 +186,10 @@ protected void setupTask(SpotlessTask task) {
}
target = union;
}
// LicenseHeaderStep completely blows apart package-info.java & module-info.java;
// this common-sense check ensures that it skips package-info.java & module-info.java.
//
// See:
// - https://github.com/diffplug/spotless/issues/1
// - https://github.com/diffplug/spotless/issues/270

steps.replaceAll(step -> {
if (LicenseHeaderStep.name().equals(step.getName())) {
return step.filterByFile(SerializableFileFilter.skipFilesNamed(
"package-info.java",
"module-info.java"));
return step.filterByFile(LicenseHeaderStep.unsupportedJvmFilesFilter());
} else {
return step;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,12 @@
import org.apache.maven.plugins.annotations.Parameter;

import com.diffplug.spotless.FormatterStep;
import com.diffplug.spotless.SerializableFileFilter;
import com.diffplug.spotless.generic.LicenseHeaderStep;
import com.diffplug.spotless.maven.FormatterStepConfig;
import com.diffplug.spotless.maven.FormatterStepFactory;

public class LicenseHeader implements FormatterStepFactory {

private static final SerializableFileFilter UNSUPPORTED_FILES_FILTER = SerializableFileFilter.skipFilesNamed(
"package-info.java", "module-info.java");

@Parameter
private String file;

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

return step.filterByFile(UNSUPPORTED_FILES_FILTER);
return step.filterByFile(LicenseHeaderStep.unsupportedJvmFilesFilter());
} else {
throw new IllegalArgumentException("Must specify exactly one of 'file' or 'content'.");
}
Expand Down