Prior to this commit, if AOP proxy generation was configured with proxyTargetClass=true (which is the default behavior in recent versions of Spring Boot), beans implemented as lambda expressions or method references could not be proxied with CGLIB on Java 16 or higher without specifying `--add-opens java.base/java.lang=ALL-UNNAMED`. This commit addresses this shortcoming by ensuring that beans implemented as lambda expressions or method references are always proxied using a JDK dynamic proxy even if proxyTargetClass=true. Closes gh-27971
241 lines
12 KiB
XML
241 lines
12 KiB
XML
<?xml version="1.0"?>
|
|
<!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">
|
|
<!-- Suppressions -->
|
|
<module name="SuppressionFilter">
|
|
<property name="file" value="${config_loc}/checkstyle-suppressions.xml"/>
|
|
</module>
|
|
|
|
<!-- Root Checks -->
|
|
<module name="io.spring.javaformat.checkstyle.check.SpringHeaderCheck">
|
|
<property name="fileExtensions" value="java" />
|
|
<property name="headerType" value="apache2"/>
|
|
<property name="headerCopyrightPattern" value="20\d\d-20\d\d"/>
|
|
<property name="packageInfoHeaderType" value="none"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck"/>
|
|
|
|
<!-- TreeWalker Checks -->
|
|
<module name="com.puppycrawl.tools.checkstyle.TreeWalker">
|
|
<!-- Annotations -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCheck">
|
|
<property name="elementStyle" value="compact" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheck">
|
|
<property name="allowSamelineSingleParameterlessAnnotation"
|
|
value="false" />
|
|
</module>
|
|
|
|
<!-- Block Checks -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck">
|
|
<property name="option" value="text" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck">
|
|
<property name="option" value="alone" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck" />
|
|
|
|
<!-- Class Design -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.design.InterfaceIsTypeCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.design.HideUtilityClassConstructorCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.design.MutableExceptionCheck">
|
|
<property name="format" value="^.*Exception$" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.design.InnerTypeLastCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.design.OneTopLevelClassCheck" />
|
|
|
|
<!-- Type Names -->
|
|
<module name="TypeName">
|
|
<property name="format" value="^[A-Z][a-zA-Z0-9_$]*(?<!Test)$" />
|
|
<property name="tokens" value="CLASS_DEF" />
|
|
<message key="name.invalidPattern"
|
|
value="Class name ''{0}'' must not end with ''Test'' (checked pattern ''{1}'')." />
|
|
</module>
|
|
|
|
<!-- Coding -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.CovariantEqualsCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.StringLiteralEqualityCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedForDepthCheck">
|
|
<property name="max" value="3" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedIfDepthCheck">
|
|
<property name="max" value="5" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedTryDepthCheck">
|
|
<property name="max" value="3" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheck" />
|
|
|
|
<module name="io.spring.javaformat.checkstyle.filter.RequiresOuterThisFilter" />
|
|
<module name="io.spring.javaformat.checkstyle.filter.IdentCheckFilter">
|
|
<property name="names" value="logger" />
|
|
<module
|
|
name="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck">
|
|
<property name="checkMethods" value="false" />
|
|
<property name="validateOnlyOverlapping" value="false" />
|
|
</module>
|
|
</module>
|
|
<module name="io.spring.javaformat.checkstyle.check.SpringNoThisCheck">
|
|
<property name="names" value="logger" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.coding.OneStatementPerLineCheck" />
|
|
|
|
<!-- Imports -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.RedundantImportCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck">
|
|
<property name="processJavadoc" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.ImportOrderCheck">
|
|
<property name="groups" value="java,javax,*,org.springframework" />
|
|
<property name="ordered" value="true" />
|
|
<property name="separated" value="true" />
|
|
<property name="option" value="bottom" />
|
|
<property name="sortStaticImportsAlphabetically" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedImports"/>
|
|
<property name="regexp" value="true" />
|
|
<property name="illegalClasses"
|
|
value="^reactor\.core\.support\.Assert,^org\.slf4j\.LoggerFactory" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedJUnit3Imports"/>
|
|
<property name="regexp" value="true" />
|
|
<property name="illegalClasses" value="^junit\.framework\..+" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedJUnit4Imports"/>
|
|
<property name="regexp" value="true" />
|
|
<property name="illegalClasses"
|
|
value="^org\.junit\.(Test|BeforeClass|AfterClass|Before|After|Ignore|FixMethodOrder|Rule|ClassRule|Assert|Assume)$,^org\.junit\.(Assert|Assume)\..+,^org\.junit\.(experimental|internal|matchers|rules|runner|runners|validator)\..+" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedJUnitJupiterImports"/>
|
|
<property name="regexp" value="true" />
|
|
<property name="illegalClasses" value="^org\.junit\.jupiter\..+" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedTestNGImports"/>
|
|
<property name="regexp" value="true" />
|
|
<property name="illegalClasses" value="^org\.testng\..+," />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
|
<property name="id" value="bannedHamcrestImports"/>
|
|
<property name="regexp" value="true" />
|
|
<property name="illegalClasses" value="^org\.hamcrest\..+" />
|
|
</module>
|
|
|
|
<!-- Javadoc Comments -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck">
|
|
<property name="scope" value="package"/>
|
|
<property name="authorFormat" value=".+\s.+"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck">
|
|
<property name="allowMissingParamTags" value="true"/>
|
|
<property name="allowMissingReturnTag" value="true"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck">
|
|
<property name="scope" value="public"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck">
|
|
<property name="checkEmptyJavadoc" value="true"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.NonEmptyAtclauseDescriptionCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTagContinuationIndentationCheck">
|
|
<property name="offset" value="0"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.AtclauseOrderCheck">
|
|
<property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF"/>
|
|
<property name="tagOrder" value="@author, @since, @param, @see, @version, @serial, @deprecated"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.AtclauseOrderCheck">
|
|
<property name="target" value="METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
|
|
<property name="tagOrder" value="@param, @return, @throws, @since, @see, @deprecated"/>
|
|
</module>
|
|
|
|
<!-- Miscellaneous -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.indentation.CommentsIndentationCheck">
|
|
<property name="tokens" value="BLOCK_COMMENT_BEGIN"/>
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck" />
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheck" />
|
|
|
|
<!-- Regexp -->
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<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="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpCheck">
|
|
<property name="format" value="[ \t]+$" />
|
|
<property name="illegalPattern" value="true" />
|
|
<property name="message" value="Trailing whitespace" />
|
|
</module>
|
|
<module
|
|
name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="maximum" value="0" />
|
|
<property name="format"
|
|
value="assertThatExceptionOfType\((NullPointerException|IllegalArgumentException|IOException|IllegalStateException)\.class\)" />
|
|
<property name="message"
|
|
value="Please use specialized AssertJ assertThat*Exception method." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="bddMockito"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="format" value="org\.mockito\.Mockito\.(when|doThrow|doAnswer)" />
|
|
<property name="message" value="Please use BDDMockito." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="expectedExceptionAnnotation"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="format" value="\@Test\(expected" />
|
|
<property name="message" value="Please use AssertJ assertions." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="junit4Assertions"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="format" value="org\.junit\.Assert\.assert" />
|
|
<property name="message" value="Please use AssertJ assertions." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="junitJupiterAssertions"/>
|
|
<property name="maximum" value="0"/>
|
|
<property name="format" value="org\.junit\.jupiter\.api\.Assertions\.assert" />
|
|
<property name="message" value="Please use AssertJ assertions." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
|
|
<property name="id" value="testNGAssertions"/>
|
|
<property name="maximum" value="0"/>
|
|
<!-- should cover org.testng.Assert and org.testng.AssertJUnit -->
|
|
<property name="format" value="org\.testng\.Assert(JUnit)?\.assert" />
|
|
<property name="message" value="Please use AssertJ assertions." />
|
|
<property name="ignoreComments" value="true" />
|
|
</module>
|
|
|
|
<!-- Spring Conventions -->
|
|
<module name="io.spring.javaformat.checkstyle.check.SpringLambdaCheck">
|
|
<property name="singleArgumentParentheses" value="false" />
|
|
</module>
|
|
<module name="io.spring.javaformat.checkstyle.check.SpringCatchCheck" />
|
|
<module name="io.spring.javaformat.checkstyle.check.SpringJavadocCheck" />
|
|
<module name="io.spring.javaformat.checkstyle.check.SpringJUnit5Check" />
|
|
</module>
|
|
</module>
|