Skip to content

Commit b442152

Browse files
committed
HSEARCH-5256 Add a basic spotless plugin configuration instead of formatter/import plugins
1 parent b3818a2 commit b442152

File tree

6 files changed

+102
-53
lines changed

6 files changed

+102
-53
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#Organize Import Order
2+
# Import this file in Window -> Preferences -> Java -> Code Style -> Organize Imports -> Import...
3+
0=\#
4+
1=java
5+
2=javax
6+
3=jakarta
7+
4=org.hibernate
8+
5=org.hibernate.testing
9+
6=org.hibernate.test
10+
7=org.junit
11+
8=org.jboss
12+
9=com
13+
10=org.openjdk.jmh
14+
11=
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!--
2+
SPDX-License-Identifier: Apache-2.0
3+
Copyright Red Hat Inc. and Hibernate Authors
4+
-->

build/parents/internal/pom.xml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,8 @@
7474
<artifactId>maven-checkstyle-plugin</artifactId>
7575
</plugin>
7676
<plugin>
77-
<groupId>net.revelc.code</groupId>
78-
<artifactId>impsort-maven-plugin</artifactId>
79-
</plugin>
80-
<plugin>
81-
<groupId>net.revelc.code.formatter</groupId>
82-
<artifactId>formatter-maven-plugin</artifactId>
77+
<groupId>com.diffplug.spotless</groupId>
78+
<artifactId>spotless-maven-plugin</artifactId>
8379
</plugin>
8480
<plugin>
8581
<groupId>org.apache.maven.plugins</groupId>

build/parents/public/pom.xml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,8 @@
179179
<artifactId>maven-checkstyle-plugin</artifactId>
180180
</plugin>
181181
<plugin>
182-
<groupId>net.revelc.code</groupId>
183-
<artifactId>impsort-maven-plugin</artifactId>
184-
</plugin>
185-
<plugin>
186-
<groupId>net.revelc.code.formatter</groupId>
187-
<artifactId>formatter-maven-plugin</artifactId>
182+
<groupId>com.diffplug.spotless</groupId>
183+
<artifactId>spotless-maven-plugin</artifactId>
188184
</plugin>
189185
<plugin>
190186
<groupId>org.apache.maven.plugins</groupId>

pom.xml

Lines changed: 76 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,10 @@
303303
<version.com.puppycrawl.tools.checkstyle>10.18.2</version.com.puppycrawl.tools.checkstyle>
304304
<version.versions.plugin>2.17.1</version.versions.plugin>
305305
<version.maven-wrapper-plugin>3.3.2</version.maven-wrapper-plugin>
306-
<version.impsort-maven-plugin>1.12.0</version.impsort-maven-plugin>
307-
<version.formatter-maven-plugin>2.24.1</version.formatter-maven-plugin>
308306
<version.org.eclipse.m2e.lifecycle-mapping>1.0.0</version.org.eclipse.m2e.lifecycle-mapping>
309307
<version.sisu-maven-plugin>0.9.0.M3</version.sisu-maven-plugin>
310308
<gitflow-incremental-builder.version>4.5.4</gitflow-incremental-builder.version>
309+
<version.spotless-maven-plugin>2.43.0</version.spotless-maven-plugin>
311310

312311
<!-- Repository Deployment URLs -->
313312

@@ -434,8 +433,7 @@
434433

435434
<!-- Formatting -->
436435
<format.skip>false</format.skip>
437-
<goal.impsort-maven-plugin>sort</goal.impsort-maven-plugin>
438-
<goal.formatter-maven-plugin>format</goal.formatter-maven-plugin>
436+
<goal.spotless-maven-plugin>apply</goal.spotless-maven-plugin>
439437

440438
<!-- For Reproducible Builds -->
441439
<project.build.outputTimestamp>2024-08-13T07:06:30Z</project.build.outputTimestamp>
@@ -1000,54 +998,92 @@
1000998
Code formatting configuration:
1001999
-->
10021000
<plugin>
1003-
<groupId>net.revelc.code</groupId>
1004-
<artifactId>impsort-maven-plugin</artifactId>
1005-
<version>${version.impsort-maven-plugin}</version>
1001+
<groupId>com.diffplug.spotless</groupId>
1002+
<artifactId>spotless-maven-plugin</artifactId>
1003+
<version>${version.spotless-maven-plugin}</version>
10061004
<configuration>
1007-
<!-- store outside of target to speed up formatting when mvn clean is used -->
1008-
<cachedir>.cache/impsort-maven-plugin-${version.impsort-maven-plugin}</cachedir>
1009-
<groups>java.,javax.,jakarta.,org.hibernate., org.hibernate.testing., org.hibernate.test., org.junit., org.jboss., com., *</groups>
1010-
<staticGroups>*</staticGroups>
1011-
<!-- To make static imports go on top: -->
1012-
<staticAfter>false</staticAfter>
1013-
<skip>${format.skip}</skip>
1014-
<removeUnused>true</removeUnused>
1005+
<upToDateChecking>
1006+
<enabled>true</enabled>
1007+
<indexFile>.cache/spotless-index-${version.spotless-maven-plugin}</indexFile>
1008+
</upToDateChecking>
1009+
<formats>
1010+
<format>
1011+
<!-- XML specific rules -->
1012+
<includes>
1013+
<include>src/**/*.xml</include>
1014+
</includes>
1015+
<trimTrailingWhitespace/>
1016+
<endWithNewline/>
1017+
<licenseHeader>
1018+
<file>license.xml.header</file>
1019+
<!-- Delimiter is a regex which identifies the "top" of the file i.e. all above it is considered a header -->
1020+
<delimiter><![CDATA[(\n)*^(<[^!?]+|<!DOCTYPE.+)$]]></delimiter>
1021+
<skipLinesMatching><![CDATA[<\?xml.+\?>]]></skipLinesMatching>
1022+
</licenseHeader>
1023+
<indent>
1024+
<tabs>true</tabs>
1025+
<spacesPerTab>4</spacesPerTab>
1026+
</indent>
1027+
</format>
1028+
</formats>
1029+
<!-- define a language-specific format -->
1030+
<java>
1031+
<toggleOffOn/>
1032+
<includes>
1033+
<include>src/**/*.java</include>
1034+
</includes>
1035+
<excludes>
1036+
<!-- Ignore avro-generated classes as we have them commited to the repository: -->
1037+
<exclude>**/main/avro/generated/**/*.java</exclude>
1038+
</excludes>
1039+
<indent>
1040+
<tabs>true</tabs>
1041+
<spacesPerTab>4</spacesPerTab>
1042+
</indent>
1043+
1044+
<importOrder>
1045+
<file>hibernate_search_style.importorder</file>
1046+
</importOrder>
1047+
<trimTrailingWhitespace/>
1048+
<endWithNewline/>
1049+
<eclipse>
1050+
<!-- optional version of Eclipse Formatter -->
1051+
<!-- <version>4.26</version> -->
1052+
<file>hibernate_search_style.xml</file>
1053+
</eclipse>
1054+
<removeUnusedImports>
1055+
<!-- default one fails to process the classes -->
1056+
<engine>cleanthat-javaparser-unnecessaryimport</engine>
1057+
</removeUnusedImports>
1058+
<licenseHeader>
1059+
<file>license.java.header</file>
1060+
<!-- Delimiter is a regex which identifies the "top" of the file i.e. all above it is considered a header -->
1061+
<delimiter>(\n)*^(\/\/tag.+|\/\/spotless.+|package .+;|//.+$|(?!package .+;)import .+;)</delimiter>
1062+
</licenseHeader>
1063+
<replaceRegex>
1064+
<name>Remove wildcard imports</name>
1065+
<searchRegex>^import\s+[^\*\s]+\*;$</searchRegex>
1066+
<replacement>$1</replacement>
1067+
</replaceRegex>
1068+
</java>
10151069
</configuration>
1016-
<executions>
1017-
<execution>
1018-
<id>import-sorting</id>
1019-
<goals>
1020-
<goal>${goal.impsort-maven-plugin}</goal>
1021-
</goals>
1022-
<phase>process-sources</phase>
1023-
</execution>
1024-
</executions>
1025-
</plugin>
1026-
<plugin>
1027-
<groupId>net.revelc.code.formatter</groupId>
1028-
<artifactId>formatter-maven-plugin</artifactId>
1029-
<version>${version.formatter-maven-plugin}</version>
10301070
<dependencies>
10311071
<dependency>
10321072
<groupId>org.hibernate.search</groupId>
10331073
<artifactId>hibernate-search-build-config</artifactId>
10341074
<version>${project.version}</version>
10351075
</dependency>
10361076
</dependencies>
1037-
<configuration>
1038-
<!-- store outside of target to speed up formatting when mvn clean is used -->
1039-
<cachedir>.cache/formatter-maven-plugin-${version.formatter-maven-plugin}</cachedir>
1040-
<configFile>hibernate_search_style.xml</configFile>
1041-
<skip>${format.skip}</skip>
1042-
<removeTrailingWhitespace>true</removeTrailingWhitespace>
1043-
</configuration>
10441077
<executions>
10451078
<execution>
1046-
<id>code-formatting</id>
1079+
<id>check-apply-formatting</id>
1080+
<configuration>
1081+
<skip>${format.skip}</skip>
1082+
</configuration>
1083+
<phase>process-sources</phase>
10471084
<goals>
1048-
<goal>${goal.formatter-maven-plugin}</goal>
1085+
<goal>${goal.spotless-maven-plugin}</goal>
10491086
</goals>
1050-
<phase>process-sources</phase>
10511087
</execution>
10521088
</executions>
10531089
</plugin>
@@ -1530,8 +1566,7 @@
15301566
<profile>
15311567
<id>ci-build</id>
15321568
<properties>
1533-
<goal.impsort-maven-plugin>check</goal.impsort-maven-plugin>
1534-
<goal.formatter-maven-plugin>validate</goal.formatter-maven-plugin>
1569+
<goal.spotless-maven-plugin>check</goal.spotless-maven-plugin>
15351570
</properties>
15361571
</profile>
15371572

0 commit comments

Comments
 (0)