Remove use of @PostConstruct from main code
When running on Java 11 (where `@PostConstruct` is no longer part of the JRE) and without a dependency on jakarta-annotation-api, `@PostContruct` annotions are silently dropped. This leads to obscure and hard-to-track down changes in the behaviour of our auto-configuration as the `@PostConstruct`-annotated methods are not invoked. To allow users to run on Java 11 without having jakarta-annotation-api on the classpath, this commit removes use of `@PostConstruct` from main code. A Checkstyle rule has also been added to prevent its usage in main code from being reintroduced. Closes gh-23723
This commit is contained in:
@@ -13,12 +13,14 @@
|
||||
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]sample[\\/]" checks="ImportControl" />
|
||||
<suppress files="[\\/]src[\\/]test[\\/]java[\\/]sample[\\/]" checks="ImportControl" />
|
||||
<suppress files="[\\/]src[\\/]test[\\/]java[\\/]" checks="Javadoc*" />
|
||||
<suppress files="[\\/]src[\\/]test[\\/]java[\\/]" id="mainCodeIllegalImportCheck" />
|
||||
<suppress files="[\\/]src[\\/]test[\\/]java[\\/]" checks="NonEmptyAtclauseDescription" />
|
||||
<suppress files="[\\/]autoconfigure[\\/]" checks="JavadocType" />
|
||||
<suppress files="[\\/]autoconfigure[\\/]" checks="JavadocVariable" />
|
||||
<suppress files="[\\/]spring-boot-docs[\\/]" checks="JavadocType" />
|
||||
<suppress files="[\\/]spring-boot-smoke-tests[\\/]" checks="JavadocType" />
|
||||
<suppress files="[\\/]spring-boot-smoke-tests[\\/]" checks="ImportControl" />
|
||||
<suppress files="[\\/]spring-boot-smoke-tests[\\/]" id="mainCodeIllegalImportCheck" />
|
||||
<suppress files="[\\/]spring-boot-deployment-tests[\\/]" checks="JavadocType" />
|
||||
<suppress files="[\\/]spring-boot-integration-tests[\\/]" checks="JavadocType" />
|
||||
<suppress files="Ansi.*\.java" checks="JavadocVariable" />
|
||||
|
||||
@@ -15,7 +15,14 @@
|
||||
<property name="illegalPkgs"
|
||||
value="^sun.*, ^org\.apache\.commons\.(?!compress|dbcp2|logging|pool2).*, ^com\.google\.common.*, ^io\.micrometer\.shaded.*, ^org\.flywaydb\.core\.internal.*, ^org\.testcontainers\.shaded.*" />
|
||||
<property name="illegalClasses"
|
||||
value="^com\.hazelcast\.util\.Base64, ^org\.junit\.rules\.ExpectedException, ^org\.mockito\.InjectMocks, ^org\.slf4j\.LoggerFactory, ^org.springframework.context.annotation.ScannedGenericBeanDefinition, ^reactor\.core\.support\.Assert" />
|
||||
value="^com\.hazelcast\.util\.Base64, ^org\.junit\.rules\.ExpectedException, ^org\.mockito\.InjectMocks, ^org\.slf4j\.LoggerFactory, ^org.springframework.context.annotation.ScannedGenericBeanDefinition, ^reactor\.core\.support\.Assert"/>
|
||||
</module>
|
||||
<module
|
||||
name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
|
||||
<property name="id" value="mainCodeIllegalImportCheck"/>
|
||||
<property name="regexp" value="true" />
|
||||
<property name="illegalClasses"
|
||||
value="^javax.annotation.PostConstruct"/>
|
||||
</module>
|
||||
<module
|
||||
name="com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheck">
|
||||
|
||||
Reference in New Issue
Block a user