<?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">
	<module name="SuppressionFilter">
		<property name="file"
			value="${config_loc}/checkstyle-suppressions.xml" />
	</module>
	<module name="com.puppycrawl.tools.checkstyle.checks.header.RegexpHeaderCheck">
		<property name="headerFile" value="${config_loc}/header.txt" />
		<property name="fileExtensions" value="java" />
	</module>
	<module name="io.spring.javaformat.checkstyle.SpringChecks">
		<property name="excludes" value="io.spring.javaformat.checkstyle.check.SpringHeaderCheck" />
		<property name="excludes" value="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.test.web.servlet.response.SecurityMockMvcResultHandlers.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.config.annotation.SecurityContextChangedListenerArgumentMatchers.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.web.csrf.CsrfTokenAssert.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.web.servlet.TestMockHttpServletRequests.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.security.web.util.matcher.RegexRequestMatcher.*" />
		<property name="avoidStaticImportExcludes" value="org.springframework.core.annotation.MergedAnnotations.SearchStrategy.*" />
		<property name="avoidStaticImportExcludes" value="org.assertj.core.api.InstanceOfAssertFactories.*"/>
	</module>
	<module name="com.puppycrawl.tools.checkstyle.TreeWalker">
 		<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
 			<property name="maximum" value="0"/>
			<property name="format" value="org\.assertj\.core\.api\.Assertions\.(catchThrowable|catchThrowableOfType|assertThatThrownBy|assertThatCode)" />
			<property name="message" value="Please use assertThatExceptionOfType." />
			<property name="ignoreComments" value="true" />
		</module>
		<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
			<property name="id" value="toLowerCaseWithoutLocale"/>
			<property name="format" value="\.toLowerCase\(\)"/>
			<property name="maximum" value="0"/>
			<property name="message"
					  value="String.toLowerCase() should be String.toLowerCase(Locale.ROOT) or String.toLowerCase(Locale.ENGLISH)"/>
			<property name="ignoreComments" value="true"/>
		</module>
		<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
			<property name="id" value="toUpperCaseWithoutLocale"/>
			<property name="format" value="\.toUpperCase\(\)"/>
			<property name="maximum" value="0"/>
			<property name="message"
					  value="String.toUpperCase() should be String.toUpperCase(Locale.ROOT) or String.toUpperCase(Locale.ENGLISH)"/>
			<property name="ignoreComments" value="true"/>
		</module>
		<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck">
			<property name="id" value="bannedImports"/>
			<property name="regexp" value="true"/>
			<property name="illegalPkgs" value="org.jetbrains.annotations, reactor.util.annotation, javax.annotation"/>
		</module>
	</module>
</module>
