From 69a5684625fdf803c419ce6922c84719faee86a8 Mon Sep 17 00:00:00 2001 From: Deepak Date: Thu, 19 Jun 2025 04:15:56 +0530 Subject: [PATCH 01/11] Remove wildcard imports --- CHANGES.md | 1 + .../java/RemoveWildcardImportsStep.java | 17 +++++++++++++++++ plugin-gradle/CHANGES.md | 1 + plugin-gradle/README.md | 11 +++++++++++ .../gradle/spotless/JavaExtension.java | 5 +++++ plugin-maven/CHANGES.md | 1 + plugin-maven/README.md | 7 +++++++ .../com/diffplug/spotless/maven/java/Java.java | 4 ++++ .../maven/java/RemoveWildcardImports.java | 13 +++++++++++++ .../java/RemoveWildcardImportsStepTest.java | 18 ++++++++++++++++++ .../JavaCodeWildcardsFormatted.test | 4 ++++ .../JavaCodeWildcardsUnformatted.test | 6 ++++++ 12 files changed, 88 insertions(+) create mode 100644 lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java create mode 100644 plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java create mode 100644 plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java create mode 100644 testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsFormatted.test create mode 100644 testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test diff --git a/CHANGES.md b/CHANGES.md index 920bef6631..49432daf86 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,6 +10,7 @@ This document is intended for Spotless developers. We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `1.27.0`). ## [Unreleased] +* Added support for removing wildcard imports via `removeWildcardImports` step. ([#649](https://github.com/diffplug/spotless/issues/649)) ## [3.1.2] - 2025-05-27 ### Fixed diff --git a/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java b/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java new file mode 100644 index 0000000000..bbbeb470c9 --- /dev/null +++ b/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java @@ -0,0 +1,17 @@ +package com.diffplug.spotless.java; + +import com.diffplug.spotless.FormatterStep; +import com.diffplug.spotless.generic.ReplaceRegexStep; + +/** Removes any wildcard import statements. */ +public final class RemoveWildcardImportsStep { + private RemoveWildcardImportsStep() {} + + public static FormatterStep create() { + // matches lines like 'import foo.*;' or 'import static foo.*;' + return ReplaceRegexStep.create( + "removeWildcardImports", + "(?m)^import\\s+(?:static\\s+)?[^;\\n]*\\*;\\R?", + ""); + } +} diff --git a/plugin-gradle/CHANGES.md b/plugin-gradle/CHANGES.md index e35da34bfc..7dd33a7147 100644 --- a/plugin-gradle/CHANGES.md +++ b/plugin-gradle/CHANGES.md @@ -3,6 +3,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `3.27.0`). ## [Unreleased] +* Added `removeWildcardImports()` step for Java, removing wildcard import statements. ([#649](https://github.com/diffplug/spotless/issues/649)) ## [7.0.4] - 2025-05-27 ### Fixed diff --git a/plugin-gradle/README.md b/plugin-gradle/README.md index e3bf3df8fd..96433a81e2 100644 --- a/plugin-gradle/README.md +++ b/plugin-gradle/README.md @@ -188,6 +188,7 @@ spotless { importOrderFile('eclipse-import-order.txt') // import order file as exported from eclipse removeUnusedImports() + removeWildcardImports() // Cleanthat will refactor your code, but it may break your style: apply it before your formatter cleanthat() // has its own section below @@ -227,6 +228,16 @@ spotless { removeUnusedImports('cleanthat-javaparser-unnecessaryimport') ``` +### removeWildcardImports + +``` +spotless { + java { + removeWildcardImports() + } +} +``` + ### google-java-format [homepage](https://github.com/google/google-java-format). [changelog](https://github.com/google/google-java-format/releases). diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java index b7d3c84304..e96d1008a9 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java @@ -40,6 +40,7 @@ import com.diffplug.spotless.java.GoogleJavaFormatStep; import com.diffplug.spotless.java.ImportOrderStep; import com.diffplug.spotless.java.PalantirJavaFormatStep; +import com.diffplug.spotless.java.RemoveWildcardImportsStep; import com.diffplug.spotless.java.RemoveUnusedImportsStep; public class JavaExtension extends FormatExtension implements HasBuiltinDelimiterForLicense, JvmLang { @@ -151,6 +152,10 @@ public void removeUnusedImports(String formatter) { addStep(RemoveUnusedImportsStep.create(formatter, provisioner())); } + public void removeWildcardImports() { + addStep(RemoveWildcardImportsStep.create()); + } + /** Uses the google-java-format jar to format source code. */ public GoogleJavaFormatConfig googleJavaFormat() { return googleJavaFormat(GoogleJavaFormatStep.defaultVersion()); diff --git a/plugin-maven/CHANGES.md b/plugin-maven/CHANGES.md index d09ac6144f..5ee2f4d1f5 100644 --- a/plugin-maven/CHANGES.md +++ b/plugin-maven/CHANGES.md @@ -3,6 +3,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `1.27.0`). ## [Unreleased] +* Added `` step for Java, removing wildcard import statements. ([#649](https://github.com/diffplug/spotless/issues/649)) ## [2.44.5] - 2025-05-27 ### Changed diff --git a/plugin-maven/README.md b/plugin-maven/README.md index cafb11ea43..b27ddc4eab 100644 --- a/plugin-maven/README.md +++ b/plugin-maven/README.md @@ -210,6 +210,7 @@ any other maven phase (i.e. compile) then it can be configured as below; + @@ -228,6 +229,12 @@ any other maven phase (i.e. compile) then it can be configured as below; ``` +### removeWildcardImports + +```xml + +``` + ### google-java-format [homepage](https://github.com/google/google-java-format). [changelog](https://github.com/google/google-java-format/releases). [code](https://github.com/diffplug/spotless/blob/main/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/GoogleJavaFormat.java). diff --git a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java index b0692446b7..7586e83049 100644 --- a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java +++ b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java @@ -76,6 +76,10 @@ public void addRemoveUnusedImports(RemoveUnusedImports removeUnusedImports) { addStepFactory(removeUnusedImports); } + public void addRemoveWildcardImports(RemoveWildcardImports removeWildcardImports) { + addStepFactory(removeWildcardImports); + } + public void addFormatAnnotations(FormatAnnotations formatAnnotations) { addStepFactory(formatAnnotations); } diff --git a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java new file mode 100644 index 0000000000..6d4eaa9be3 --- /dev/null +++ b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java @@ -0,0 +1,13 @@ +package com.diffplug.spotless.maven.java; + +import com.diffplug.spotless.FormatterStep; +import com.diffplug.spotless.java.RemoveWildcardImportsStep; +import com.diffplug.spotless.maven.FormatterStepConfig; +import com.diffplug.spotless.maven.FormatterStepFactory; + +public class RemoveWildcardImports implements FormatterStepFactory { + @Override + public FormatterStep newFormatterStep(FormatterStepConfig config) { + return RemoveWildcardImportsStep.create(); + } +} diff --git a/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java b/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java new file mode 100644 index 0000000000..4f0f6c50e9 --- /dev/null +++ b/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java @@ -0,0 +1,18 @@ +package com.diffplug.spotless.maven.java; + +import org.junit.jupiter.api.Test; + +import com.diffplug.spotless.maven.MavenIntegrationHarness; + +class RemoveWildcardImportsStepTest extends MavenIntegrationHarness { + + @Test + void testRemoveWildcardImports() throws Exception { + writePomWithJavaSteps(""); + + String path = "src/main/java/test.java"; + setFile(path).toResource("java/removewildcardimports/JavaCodeWildcardsUnformatted.test"); + mavenRunner().withArguments("spotless:apply").runNoError(); + assertFile(path).sameAsResource("java/removewildcardimports/JavaCodeWildcardsFormatted.test"); + } +} diff --git a/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsFormatted.test b/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsFormatted.test new file mode 100644 index 0000000000..85ee903fc5 --- /dev/null +++ b/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsFormatted.test @@ -0,0 +1,4 @@ +import java.util.List; +import mylib.Helper; + +public class Test {} \ No newline at end of file diff --git a/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test b/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test new file mode 100644 index 0000000000..7883265f83 --- /dev/null +++ b/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test @@ -0,0 +1,6 @@ +import java.util.*; +import static java.util.Collections.*; +import java.util.List; +import mylib.Helper; + +public class Test {} \ No newline at end of file From ad374738b0d2e541072228ca7cb3e078097fc166 Mon Sep 17 00:00:00 2001 From: iddeepak <87892182+iddeepak@users.noreply.github.com> Date: Fri, 20 Jun 2025 01:19:36 +0530 Subject: [PATCH 02/11] Update plugin-gradle/README.md Co-authored-by: Consequences of Lacking Discipline <8830888+Pankraz76@users.noreply.github.com> --- plugin-gradle/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-gradle/README.md b/plugin-gradle/README.md index 96433a81e2..7a2c6b42b7 100644 --- a/plugin-gradle/README.md +++ b/plugin-gradle/README.md @@ -233,7 +233,7 @@ spotless { ``` spotless { java { - removeWildcardImports() + removeWildcardImports() } } ``` From 205974ad671b296f44e545758f134fb1bcc820cc Mon Sep 17 00:00:00 2001 From: iddeepak <87892182+iddeepak@users.noreply.github.com> Date: Fri, 20 Jun 2025 01:38:33 +0530 Subject: [PATCH 03/11] Update testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test Co-authored-by: Consequences of Lacking Discipline <8830888+Pankraz76@users.noreply.github.com> --- .../removewildcardimports/JavaCodeWildcardsUnformatted.test | 3 +++ 1 file changed, 3 insertions(+) diff --git a/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test b/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test index 7883265f83..74646094ae 100644 --- a/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test +++ b/testlib/src/main/resources/java/removewildcardimports/JavaCodeWildcardsUnformatted.test @@ -2,5 +2,8 @@ import java.util.*; import static java.util.Collections.*; import java.util.List; import mylib.Helper; +import io.quarkus.maven.dependency.*; +import static io.quarkus.vertx.web.Route.HttpMethod.*; +import static org.springframework.web.reactive.function.BodyInserters.*; public class Test {} \ No newline at end of file From 0761c8187a1b2094bb1d0daf2cb239f055635e1d Mon Sep 17 00:00:00 2001 From: Zongle Wang Date: Mon, 23 Jun 2025 21:00:30 +0800 Subject: [PATCH 04/11] Apply suggestions from code review --- CHANGES.md | 3 ++- .../com/diffplug/spotless/java/RemoveWildcardImportsStep.java | 2 +- plugin-gradle/CHANGES.md | 3 ++- plugin-maven/CHANGES.md | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 49432daf86..d0ff37cee8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,7 +10,8 @@ This document is intended for Spotless developers. We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `1.27.0`). ## [Unreleased] -* Added support for removing wildcard imports via `removeWildcardImports` step. ([#649](https://github.com/diffplug/spotless/issues/649)) +### Added +* Added support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) ## [3.1.2] - 2025-05-27 ### Fixed diff --git a/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java b/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java index bbbeb470c9..c73e22e149 100644 --- a/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java +++ b/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java @@ -8,7 +8,7 @@ public final class RemoveWildcardImportsStep { private RemoveWildcardImportsStep() {} public static FormatterStep create() { - // matches lines like 'import foo.*;' or 'import static foo.*;' + // Matches lines like 'import foo.*;' or 'import static foo.*;'. return ReplaceRegexStep.create( "removeWildcardImports", "(?m)^import\\s+(?:static\\s+)?[^;\\n]*\\*;\\R?", diff --git a/plugin-gradle/CHANGES.md b/plugin-gradle/CHANGES.md index 7dd33a7147..226d0c1c00 100644 --- a/plugin-gradle/CHANGES.md +++ b/plugin-gradle/CHANGES.md @@ -3,7 +3,8 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `3.27.0`). ## [Unreleased] -* Added `removeWildcardImports()` step for Java, removing wildcard import statements. ([#649](https://github.com/diffplug/spotless/issues/649)) +### Added +* Added support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) ## [7.0.4] - 2025-05-27 ### Fixed diff --git a/plugin-maven/CHANGES.md b/plugin-maven/CHANGES.md index 5ee2f4d1f5..5b2e6274be 100644 --- a/plugin-maven/CHANGES.md +++ b/plugin-maven/CHANGES.md @@ -3,7 +3,8 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format (starting after version `1.27.0`). ## [Unreleased] -* Added `` step for Java, removing wildcard import statements. ([#649](https://github.com/diffplug/spotless/issues/649)) +### Added +* Added support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) ## [2.44.5] - 2025-05-27 ### Changed From 825273c09271d1256c9445fae86d929e810880a5 Mon Sep 17 00:00:00 2001 From: Deepak Date: Mon, 23 Jun 2025 21:49:09 +0530 Subject: [PATCH 05/11] gradle test --- .../spotless/RemoveWildcardImportsTest.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java new file mode 100644 index 0000000000..de245fd2e9 --- /dev/null +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java @@ -0,0 +1,42 @@ +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.diffplug.gradle.spotless; + +import java.io.IOException; + +import org.junit.jupiter.api.Test; + +class RemoveWildcardImportsTest extends GradleIntegrationHarness { + @Test + void integration() throws IOException { + setFile("build.gradle").toLines( + "plugins {", + " id 'com.diffplug.spotless'", + "}", + "repositories { mavenCentral() }", + "", + "spotless {", + " java {", + " target file('test.java')", + " removeWildcardImports()", + " }", + "}"); + + setFile("test.java").toResource("java/removewildcardimports/JavaCodeWildcardsUnformatted.test"); + gradleRunner().withArguments("spotlessApply").build(); + assertFile("test.java").sameAsResource("java/removewildcardimports/JavaCodeWildcardsFormatted.test"); + } +} From e482db25066fe185747c80c3fbc022a0bb66ca0a Mon Sep 17 00:00:00 2001 From: Deepak Date: Mon, 23 Jun 2025 21:56:11 +0530 Subject: [PATCH 06/11] gradle test --- .../spotless/JavaDefaultTargetTest.java | 20 +++++++++ .../spotless/RemoveWildcardImportsTest.java | 42 ------------------- 2 files changed, 20 insertions(+), 42 deletions(-) delete mode 100644 plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java index a244de372e..34479f2ca7 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java @@ -81,6 +81,26 @@ void removeUnusedImportsWithCleanthat() throws IOException { assertFile("src/main/java/test.java").sameAsResource("java/removeunusedimports/Jdk17TextBlockFormatted.test"); } + @Test + void removeWildCardImports() throws IOException { + setFile("build.gradle").toLines( + "plugins {", + " id 'com.diffplug.spotless'", + "}", + "repositories { mavenCentral() }", + "", + "spotless {", + " java {", + " target file('test.java')", + " removeWildcardImports()", + " }", + "}"); + + setFile("test.java").toResource("java/removewildcardimports/JavaCodeWildcardsUnformatted.test"); + gradleRunner().withArguments("spotlessApply").build(); + assertFile("test.java").sameAsResource("java/removewildcardimports/JavaCodeWildcardsFormatted.test"); + } + /** * Triggers the special case in {@link FormatExtension#setupTask(SpotlessTask)} with {@code toggleFence} and * {@code targetExcludeContentPattern} both being not {@code null}. diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java deleted file mode 100644 index de245fd2e9..0000000000 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/RemoveWildcardImportsTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.diffplug.gradle.spotless; - -import java.io.IOException; - -import org.junit.jupiter.api.Test; - -class RemoveWildcardImportsTest extends GradleIntegrationHarness { - @Test - void integration() throws IOException { - setFile("build.gradle").toLines( - "plugins {", - " id 'com.diffplug.spotless'", - "}", - "repositories { mavenCentral() }", - "", - "spotless {", - " java {", - " target file('test.java')", - " removeWildcardImports()", - " }", - "}"); - - setFile("test.java").toResource("java/removewildcardimports/JavaCodeWildcardsUnformatted.test"); - gradleRunner().withArguments("spotlessApply").build(); - assertFile("test.java").sameAsResource("java/removewildcardimports/JavaCodeWildcardsFormatted.test"); - } -} From 01c93f330d23a81d204e5df89c8b3cc099d99011 Mon Sep 17 00:00:00 2001 From: iddeepak <87892182+iddeepak@users.noreply.github.com> Date: Mon, 23 Jun 2025 22:11:33 +0530 Subject: [PATCH 07/11] Update plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../main/java/com/diffplug/gradle/spotless/JavaExtension.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java index e96d1008a9..51dfbd5512 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java @@ -40,8 +40,8 @@ import com.diffplug.spotless.java.GoogleJavaFormatStep; import com.diffplug.spotless.java.ImportOrderStep; import com.diffplug.spotless.java.PalantirJavaFormatStep; -import com.diffplug.spotless.java.RemoveWildcardImportsStep; import com.diffplug.spotless.java.RemoveUnusedImportsStep; +import com.diffplug.spotless.java.RemoveWildcardImportsStep; public class JavaExtension extends FormatExtension implements HasBuiltinDelimiterForLicense, JvmLang { static final String NAME = "java"; From a434eedb116d73a61cce31c3b40125a4539fa2d0 Mon Sep 17 00:00:00 2001 From: Deepak Date: Mon, 23 Jun 2025 22:23:32 +0530 Subject: [PATCH 08/11] spotless apply --- .../java/RemoveWildcardImportsStep.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java b/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java index c73e22e149..ca513b8280 100644 --- a/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java +++ b/lib/src/main/java/com/diffplug/spotless/java/RemoveWildcardImportsStep.java @@ -1,3 +1,18 @@ +/* + * Copyright 2025 DiffPlug + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.diffplug.spotless.java; import com.diffplug.spotless.FormatterStep; @@ -10,8 +25,8 @@ private RemoveWildcardImportsStep() {} public static FormatterStep create() { // Matches lines like 'import foo.*;' or 'import static foo.*;'. return ReplaceRegexStep.create( - "removeWildcardImports", - "(?m)^import\\s+(?:static\\s+)?[^;\\n]*\\*;\\R?", - ""); + "removeWildcardImports", + "(?m)^import\\s+(?:static\\s+)?[^;\\n]*\\*;\\R?", + ""); } } From 4d74803b1cd152685c6c4df34c25aed1aaf5afd0 Mon Sep 17 00:00:00 2001 From: Deepak Date: Mon, 23 Jun 2025 22:41:07 +0530 Subject: [PATCH 09/11] spotless apply --- .../gradle/spotless/JavaExtension.java | 2 +- .../spotless/JavaDefaultTargetTest.java | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java index 51dfbd5512..aeed7b64b5 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.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. diff --git a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java index 34479f2ca7..401e8ee330 100644 --- a/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java +++ b/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/JavaDefaultTargetTest.java @@ -84,17 +84,17 @@ void removeUnusedImportsWithCleanthat() throws IOException { @Test void removeWildCardImports() throws IOException { setFile("build.gradle").toLines( - "plugins {", - " id 'com.diffplug.spotless'", - "}", - "repositories { mavenCentral() }", - "", - "spotless {", - " java {", - " target file('test.java')", - " removeWildcardImports()", - " }", - "}"); + "plugins {", + " id 'com.diffplug.spotless'", + "}", + "repositories { mavenCentral() }", + "", + "spotless {", + " java {", + " target file('test.java')", + " removeWildcardImports()", + " }", + "}"); setFile("test.java").toResource("java/removewildcardimports/JavaCodeWildcardsUnformatted.test"); gradleRunner().withArguments("spotlessApply").build(); From 7528572ed2b73d9327b31f927f5f1715e0b6664e Mon Sep 17 00:00:00 2001 From: Deepak Date: Mon, 23 Jun 2025 23:01:24 +0530 Subject: [PATCH 10/11] spotless apply --- .../com/diffplug/spotless/maven/java/Java.java | 2 +- .../maven/java/RemoveWildcardImports.java | 15 +++++++++++++++ .../maven/java/RemoveWildcardImportsStepTest.java | 15 +++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java index 7586e83049..9fdb794eb1 100644 --- a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java +++ b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/Java.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 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. diff --git a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java index 6d4eaa9be3..8620088a08 100644 --- a/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java +++ b/plugin-maven/src/main/java/com/diffplug/spotless/maven/java/RemoveWildcardImports.java @@ -1,3 +1,18 @@ +/* + * Copyright 2025 DiffPlug + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.diffplug.spotless.maven.java; import com.diffplug.spotless.FormatterStep; diff --git a/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java b/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java index 4f0f6c50e9..4d4ade94d0 100644 --- a/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java +++ b/plugin-maven/src/test/java/com/diffplug/spotless/maven/java/RemoveWildcardImportsStepTest.java @@ -1,3 +1,18 @@ +/* + * Copyright 2025 DiffPlug + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.diffplug.spotless.maven.java; import org.junit.jupiter.api.Test; From 19381b2331400b7c9dab3e6f7632db95bd0a85a4 Mon Sep 17 00:00:00 2001 From: Zongle Wang Date: Tue, 24 Jun 2025 10:17:36 +0800 Subject: [PATCH 11/11] Apply suggestions from code review --- CHANGES.md | 2 +- plugin-gradle/CHANGES.md | 2 +- plugin-maven/CHANGES.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d0ff37cee8..ba1e66f1f7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,7 +11,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( ## [Unreleased] ### Added -* Added support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) +* Add support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) ## [3.1.2] - 2025-05-27 ### Fixed diff --git a/plugin-gradle/CHANGES.md b/plugin-gradle/CHANGES.md index 226d0c1c00..c7fc99944b 100644 --- a/plugin-gradle/CHANGES.md +++ b/plugin-gradle/CHANGES.md @@ -4,7 +4,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( ## [Unreleased] ### Added -* Added support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) +* Add support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) ## [7.0.4] - 2025-05-27 ### Fixed diff --git a/plugin-maven/CHANGES.md b/plugin-maven/CHANGES.md index 5b2e6274be..53c6f4b093 100644 --- a/plugin-maven/CHANGES.md +++ b/plugin-maven/CHANGES.md @@ -4,7 +4,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( ## [Unreleased] ### Added -* Added support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) +* Add support for removing wildcard imports via `removeWildcardImports` step. ([#2517](https://github.com/diffplug/spotless/pull/2517)) ## [2.44.5] - 2025-05-27 ### Changed