Add Spring Checkstyle with all checks disabled

Introduce checkstyle rules from spring-javaformat, but keep them
disabled so that fixes can be introduced one commit at a time.

Issue gh-8945
This commit is contained in:
Phillip Webb 2020-07-24 11:37:53 -07:00 committed by Rob Winch
parent 71bc145ae4
commit aea0fea5d9
5 changed files with 69 additions and 84 deletions

View File

@ -42,9 +42,22 @@ subprojects {
allprojects {
apply plugin: 'io.spring.javaformat'
apply plugin: 'checkstyle'
pluginManager.withPlugin("io.spring.convention.checkstyle", { plugin ->
configure(plugin) {
dependencies {
checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:$springJavaformatVersion"
}
checkstyle {
toolVersion = '8.34'
}
}
})
if (project.name.contains('sample')) {
tasks.whenTaskAdded { task ->
if (task.name.contains('format') || task.name.contains('checkFormat')) {
if (task.name.contains('format') || task.name.contains('checkFormat') || task.name.contains("checkstyle")) {
task.enabled = false
}
}

View File

@ -0,0 +1,47 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<suppressions>
<suppress files=".*" checks="AnnotationUseStyle" />
<suppress files=".*" checks="ArrayTypeStyle" />
<suppress files=".*" checks="AtclauseOrder" />
<suppress files=".*" checks="AvoidStarImport" />
<suppress files=".*" checks="EmptyBlock" />
<suppress files=".*" checks="FinalClass" />
<suppress files=".*" checks="InnerAssignment" />
<suppress files=".*" checks="InnerTypeLast" />
<suppress files=".*" checks="InterfaceIsType" />
<suppress files=".*" checks="JavadocMethod" />
<suppress files=".*" checks="JavadocStyle" />
<suppress files=".*" checks="JavadocTagContinuationIndentation" />
<suppress files=".*" checks="JavadocType" />
<suppress files=".*" checks="JavadocVariable" />
<suppress files=".*" checks="ModifierOrder" />
<suppress files=".*" checks="MultipleVariableDeclarations" />
<suppress files=".*" checks="MutableException" />
<suppress files=".*" checks="NeedBraces" />
<suppress files=".*" checks="NestedIfDepth" />
<suppress files=".*" checks="NewlineAtEndOfFile" />
<suppress files=".*" checks="NonEmptyAtclauseDescription" />
<suppress files=".*" checks="NoWhitespaceBefore" />
<suppress files=".*" checks="OneTopLevelClass" />
<suppress files=".*" checks="ParenPad" />
<suppress files=".*" checks="RedundantImport" />
<suppress files=".*" checks="RegexpSinglelineJava" />
<suppress files=".*" checks="RequireThis" />
<suppress files=".*" checks="SimplifyBooleanExpression" />
<suppress files=".*" checks="SimplifyBooleanReturn" />
<suppress files=".*" checks="SpringAvoidStaticImport" />
<suppress files=".*" checks="SpringCatch" />
<suppress files=".*" checks="SpringHeader" />
<suppress files=".*" checks="SpringHideUtilityClassConstructor" />
<suppress files=".*" checks="SpringImportOrder" />
<suppress files=".*" checks="SpringJavadoc" />
<suppress files=".*" checks="SpringLambda" />
<suppress files=".*" checks="SpringMethodOrder" />
<suppress files=".*" checks="SpringMethodVisibility" />
<suppress files=".*" checks="SpringTernary" />
<suppress files=".*" checks="WhitespaceAfter" />
<suppress files=".*" checks="WhitespaceAround" />
</suppressions>

View File

@ -1,51 +1,11 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"https://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!-- Suppressions -->
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="com.puppycrawl.tools.checkstyle.Checker">
<module name="SuppressionFilter">
<property name="file" value="${config_loc}/suppressions.xml"/>
</module>
<!-- Root Checks -->
<module name="RegexpHeader">
<property name="headerFile" value="${config_loc}/header.txt"/>
<property name="fileExtensions" value="java"/>
</module>
<!-- Root Checks -->
<module name="TreeWalker">
<!-- Annotations -->
<module name="MissingOverrideCheck" />
<!-- Coding -->
<module name="EmptyStatementCheck" />
<module name="RedundantModifier" />
<!-- Imports -->
<module name="UnusedImportsCheck">
<property name="processJavadoc" value="true" />
</module>
<!-- Regexp -->
<module name="RegexpSinglelineJava">
<property name="format" value="^\t* +\t*\S"/>
<property name="message" value="Line has leading space characters; indentation should be performed with tabs only."/>
<property name="ignoreComments" value="true"/>
</module>
<module name="RegexpSinglelineJava">
<property name="maximum" value="0"/>
<property name="format" value="org\.junit\.Assert\.assert"/>
<property name="message" value="Please use AssertJ imports."/>
<property name="ignoreComments" value="true"/>
</module>
<module name="Regexp">
<property name="format" value="[ \t]+$"/>
<property name="illegalPattern" value="true"/>
<property name="message" value="Trailing whitespace"/>
</module>
<!-- Whitespace -->
<module name="WhitespaceAfterCheck" />
<property name="file"
value="${config_loc}/checkstyle-suppressions.xml" />
</module>
<module name="io.spring.javaformat.checkstyle.SpringChecks" />
</module>

View File

@ -1,16 +0,0 @@
^\Q/*\E$
^\Q * Copyright\E (\d{4}(\-\d{4})? the original author or authors\.|(\d{4}, )*(\d{4}) Acegi Technology Pty Limited)$
^\Q *\E$
^\Q * Licensed under the Apache License, Version 2.0 (the "License");\E$
^\Q * you may not use this file except in compliance with the License.\E$
^\Q * You may obtain a copy of the License at\E$
^\Q *\E$
^\Q * https://www.apache.org/licenses/LICENSE-2.0\E$
^\Q *\E$
^\Q * Unless required by applicable law or agreed to in writing, software\E$
^\Q * distributed under the License is distributed on an "AS IS" BASIS,\E$
^\Q * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\E$
^\Q * See the License for the specific language governing permissions and\E$
^\Q * limitations under the License.\E$
^\Q */\E$
^.*$

View File

@ -1,19 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"https://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files=".+Application\.java" checks="HideUtilityClassConstructor"/>
<suppress files=".+Configuration\.java" checks="HideUtilityClassConstructor"/>
<suppress files="[\\/]BCrypt(Tests)?\.java" checks="RegexpHeader"/>
<suppress files="[\\/]src[\\/]test[\\/]java[\\/]" checks="Javadoc"/>
<suppress files="[\\/]src[\\/]integration-test[\\/]java[\\/]" checks="Javadoc"/>
<suppress files="[\\/]docs[\\/]" checks="Javadoc"/>
<suppress files="[\\/]docs[\\/]" checks="CommentsIndentation"/>
<suppress files="[\\/]docs[\\/]" checks="InnerTypeLast"/>
<suppress files="[\\/]samples[\\/]" checks="Javadoc"/>
<suppress files="[\\/]samples[\\/]" checks="CommentsIndentation"/>
<suppress files="[\\/]samples[\\/]" checks="InnerTypeLast"/>
</suppressions>