Skip to content

Commit 719276f

Browse files
Daniel Reuterjoshiste
authored andcommitted
Setup spring-javaformat
1 parent 9b9b9f0 commit 719276f

File tree

3 files changed

+141
-9
lines changed

3 files changed

+141
-9
lines changed

contribution.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
* PR machen
2+
* 'ideal-for-contribution'
3+
4+
* Starting Points
5+
** Server - Profile
6+
** Client
7+
8+
* Coding Conventiosn
9+
** Server
10+
*** Spring-Formatter und Plugin
11+
** Client

pom.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
<flatten-maven-plugin.version>1.0.1</flatten-maven-plugin.version>
6969
<maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
7070
<checkstyle.version>8.23</checkstyle.version>
71+
<spring-javaformat-checkstyle.version>0.0.15</spring-javaformat-checkstyle.version>
7172
<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
7273
</properties>
7374
<modules>
@@ -222,6 +223,20 @@
222223
</execution>
223224
</executions>
224225
</plugin>
226+
<plugin>
227+
<groupId>io.spring.javaformat</groupId>
228+
<artifactId>spring-javaformat-maven-plugin</artifactId>
229+
<version>${spring-javaformat-checkstyle.version}</version>
230+
<executions>
231+
<execution>
232+
<phase>validate</phase>
233+
<inherited>true</inherited>
234+
<goals>
235+
<goal>validate</goal>
236+
</goals>
237+
</execution>
238+
</executions>
239+
</plugin>
225240
</plugins>
226241
<pluginManagement>
227242
<plugins>
@@ -339,6 +354,11 @@
339354
<artifactId>checkstyle</artifactId>
340355
<version>${checkstyle.version}</version>
341356
</dependency>
357+
<dependency>
358+
<groupId>io.spring.javaformat</groupId>
359+
<artifactId>spring-javaformat-checkstyle</artifactId>
360+
<version>${spring-javaformat-checkstyle.version}</version>
361+
</dependency>
342362
</dependencies>
343363
</plugin>
344364
<plugin>

src/checkstyle/checkstyle.xml

Lines changed: 110 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@
1515
~ limitations under the License.
1616
-->
1717

18+
<!--
19+
This configuration is basically a copy of spring-javaformat.
20+
21+
https://github.com/spring-io/spring-javaformat/blob/master/spring-javaformat/spring-javaformat-checkstyle/src/main/resources/io/spring/javaformat/checkstyle/spring-checkstyle.xml
22+
23+
Changes as follows
24+
- Own HeaderCheck
25+
- root-package for SpringImportOrderCheck
26+
-->
27+
28+
1829
<!DOCTYPE module PUBLIC
1930
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
2031
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
@@ -37,25 +48,93 @@
3748
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheck"/>
3849
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck"/>
3950
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheck">
40-
<property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
51+
<property name="allowSamelineSingleParameterlessAnnotation"
52+
value="false"/>
53+
</module>
54+
55+
<!-- Block Checks -->
56+
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck">
57+
<property name="option" value="text"/>
58+
</module>
59+
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck"/>
60+
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck">
61+
<property name="option" value="alone"/>
4162
</module>
63+
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck"/>
64+
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck"/>
4265

43-
<!-- Package -->
44-
<module name="com.puppycrawl.tools.checkstyle.checks.naming.PackageNameCheck">
45-
<property name="format" value="^de\.codecentric\.boot\.admin(\.[a-z][a-z0-9]*)*$"/>
66+
<!-- Class Design -->
67+
<module name="com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheck"/>
68+
<module name="com.puppycrawl.tools.checkstyle.checks.design.InterfaceIsTypeCheck"/>
69+
<module name="io.spring.javaformat.checkstyle.check.SpringHideUtilityClassConstructor"/>
70+
<module name="com.puppycrawl.tools.checkstyle.checks.design.MutableExceptionCheck"/>
71+
<module name="com.puppycrawl.tools.checkstyle.checks.design.InnerTypeLastCheck"/>
72+
<module name="com.puppycrawl.tools.checkstyle.checks.design.OneTopLevelClassCheck"/>
73+
74+
<!-- Coding -->
75+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.CovariantEqualsCheck"/>
76+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck"/>
77+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck"/>
78+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.InnerAssignmentCheck"/>
79+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck"/>
80+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck"/>
81+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.StringLiteralEqualityCheck"/>
82+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedForDepthCheck">
83+
<property name="max" value="3"/>
84+
</module>
85+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedIfDepthCheck">
86+
<property name="max" value="3"/>
87+
</module>
88+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedTryDepthCheck">
89+
<property name="max" value="3"/>
90+
</module>
91+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheck"/>
92+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck">
93+
<property name="checkMethods" value="false"/>
94+
<property name="validateOnlyOverlapping" value="false"/>
4695
</module>
96+
<module name="com.puppycrawl.tools.checkstyle.checks.coding.OneStatementPerLineCheck"/>
4797

4898
<!-- Imports -->
4999
<module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck"/>
50-
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
51-
<property name="illegalPkgs"
52-
value="sun, org.apache.commons.(?!codec|compress|dbcp2|lang|lang3|logging|pool2).*, com.google.common, org.flywaydb.core.internal, reactor.core.support.Assert"/>
53-
<property name="regexp" value="true"/>
100+
<module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStaticImportCheck">
101+
<property name="excludes"
102+
value="io.restassured.RestAssured.*, org.assertj.core.api.Assertions.*, org.junit.jupiter.api.Assertions.*, org.junit.jupiter.api.Assumptions.*, org.junit.Assert.*, org.junit.Assume.*, org.junit.internal.matchers.ThrowableMessageMatcher.*, org.junit.jupiter.api.Assertions.*, org.hamcrest.CoreMatchers.*, org.hamcrest.Matchers.*, org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.*, org.springframework.boot.configurationprocessor.TestCompiler.*, org.springframework.boot.test.autoconfigure.AutoConfigurationImportedCondition.*, org.mockito.Mockito.*, org.mockito.BDDMockito.*, org.mockito.ArgumentMatchers.*, org.mockito.Matchers.*, org.springframework.restdocs.headers.HeaderDocumentation.*, org.springframework.restdocs.hypermedia.HypermediaDocumentation.*, org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*, org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.*, org.springframework.restdocs.operation.preprocess.Preprocessors.*, org.springframework.restdocs.payload.PayloadDocumentation.*, org.springframework.restdocs.request.RequestDocumentation.*, org.springframework.restdocs.restassured3.operation.preprocess.RestAssuredPreprocessors.*, org.springframework.restdocs.restassured3.RestAssuredRestDocumentation.*, org.springframework.restdocs.snippet.Attributes.*, org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation.*, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*, org.springframework.test.web.servlet.result.MockMvcResultMatchers.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*, org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*, org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo, org.springframework.test.web.client.ExpectedCount.*, org.springframework.test.web.client.match.MockRestRequestMatchers.*, org.springframework.test.web.client.response.MockRestResponseCreators.*, org.springframework.test.web.servlet.result.MockMvcResultHandlers.*, org.springframework.web.reactive.function.BodyInserters.*, org.springframework.web.reactive.function.server.RequestPredicates.*, org.springframework.web.reactive.function.server.RouterFunctions.*, org.springframework.test.web.servlet.setup.MockMvcBuilders.*"/>
54103
</module>
55104
<module name="com.puppycrawl.tools.checkstyle.checks.imports.RedundantImportCheck"/>
56105
<module name="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck">
57106
<property name="processJavadoc" value="true"/>
58107
</module>
108+
<module name="io.spring.javaformat.checkstyle.check.SpringImportOrderCheck">
109+
<property name="projectRootPackage" value="de.codecentric.boot.admin"/>
110+
</module>
111+
112+
<!-- Javadoc Comments -->
113+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck">
114+
<property name="scope" value="package"/>
115+
<property name="authorFormat" value=".+\s.+"/>
116+
</module>
117+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck">
118+
<property name="allowMissingJavadoc" value="true"/>
119+
</module>
120+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck">
121+
<property name="scope" value="public"/>
122+
</module>
123+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck">
124+
<property name="checkEmptyJavadoc" value="true"/>
125+
</module>
126+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.NonEmptyAtclauseDescriptionCheck"/>
127+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTagContinuationIndentationCheck">
128+
<property name="offset" value="0"/>
129+
</module>
130+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.AtclauseOrderCheck">
131+
<property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF"/>
132+
<property name="tagOrder" value="@param, @author, @since, @see, @version, @serial, @deprecated"/>
133+
</module>
134+
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.AtclauseOrderCheck">
135+
<property name="target" value="METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
136+
<property name="tagOrder" value="@param, @return, @throws, @since, @deprecated, @see"/>
137+
</module>
59138

60139
<!-- Miscellaneous -->
61140
<module name="com.puppycrawl.tools.checkstyle.checks.indentation.CommentsIndentationCheck">
@@ -67,11 +146,25 @@
67146

68147
<!-- Modifiers -->
69148
<module name="com.puppycrawl.tools.checkstyle.checks.modifier.RedundantModifierCheck"/>
149+
<module name="com.puppycrawl.tools.checkstyle.checks.modifier.ModifierOrderCheck"/>
70150

71151
<!-- Regexp -->
152+
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
153+
<property name="format" value="^\t* +\t*\S"/>
154+
<property name="message"
155+
value="Line has leading space characters; indentation should be performed with tabs only."/>
156+
<property name="ignoreComments" value="true"/>
157+
</module>
72158
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
73159
<property name="maximum" value="0"/>
74-
<property name="format" value="org\.junit\.Assert\.assert"/>
160+
<property name="format" value="org\.mockito\.Mockito\.(when|doThrow|doAnswer)"/>
161+
<property name="message"
162+
value="Please use BDDMockito imports."/>
163+
<property name="ignoreComments" value="true"/>
164+
</module>
165+
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
166+
<property name="maximum" value="0"/>
167+
<property name="format" value="org\.junit\.(Assert|jupiter\.api\.Assertions)\.assert"/>
75168
<property name="message"
76169
value="Please use AssertJ imports."/>
77170
<property name="ignoreComments" value="true"/>
@@ -93,5 +186,13 @@
93186
<module name="com.puppycrawl.tools.checkstyle.checks.whitespace.TypecastParenPadCheck"/>
94187
<module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck"/>
95188
<module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck"/>
189+
190+
<!-- Spring Conventions -->
191+
<module name="io.spring.javaformat.checkstyle.check.SpringLambdaCheck"/>
192+
<module name="io.spring.javaformat.checkstyle.check.SpringTernaryCheck"/>
193+
<module name="io.spring.javaformat.checkstyle.check.SpringCatchCheck"/>
194+
<module name="io.spring.javaformat.checkstyle.check.SpringJavadocCheck"/>
195+
<module name="io.spring.javaformat.checkstyle.check.SpringMethodOrderCheck"/>
196+
<module name="io.spring.javaformat.checkstyle.check.SpringMethodVisibilityCheck"/>
96197
</module>
97198
</module>

0 commit comments

Comments
 (0)