<?xml version="1.0"?> <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> <module name="Checker"> <!-- Settings --> <property name="charset" value="UTF-8"/> <property name="severity" value="error"/> <property name="fileExtensions" value="java, properties, xml"/> <module name="TreeWalker"> <!-- Annotation Checks --> <!-- See https://checkstyle.sourceforge.io/config_annotation.html --> <module name="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck"/> <!-- Blocks Checks --> <!-- See https://checkstyle.sourceforge.io/config_blocks.html --> <module name="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyCatchBlockCheck"> <property name="exceptionVariableName" value="expected|ignored"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck"/> <!-- Coding Checks --> <!-- See https://checkstyle.sourceforge.io/config_coding.html --> <module name="com.puppycrawl.tools.checkstyle.checks.coding.AvoidNoArgumentSuperConstructorCallCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.CovariantEqualsCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.DeclarationOrderCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.DefaultComesLastCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.EqualsAvoidNullCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.ExplicitInitializationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.FallThroughCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.InnerAssignmentCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.IllegalInstantiationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.IllegalTokenTextCheck"> <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/> <property name="format" value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/> <property name="message" value="Avoid using corresponding octal or Unicode escape."/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"> <property name="ignoreHashCodeMethod" value="true"/> <property name="ignoreAnnotation" value="true"/> <property name="ignoreFieldDeclaration" value="true"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.coding.MissingSwitchDefaultCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.NoCloneCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.NoFinalizerCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.OneStatementPerLineCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.PackageDeclarationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck"/> <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.SuperCloneCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.SuperFinalizeCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessarySemicolonAfterOuterTypeDeclarationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessarySemicolonAfterTypeMemberDeclarationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessarySemicolonInEnumerationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessarySemicolonInTryWithResourcesCheck"/> <!-- Design Checks --> <!-- See https://checkstyle.sourceforge.io/config_design.html --> <module name="com.puppycrawl.tools.checkstyle.checks.design.InnerTypeLastCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.design.InterfaceIsTypeCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.design.MutableExceptionCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.design.OneTopLevelClassCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck"> <property name="protectedAllowed" value="true"/> </module> <!-- Imports Checks --> <!-- See https://checkstyle.sourceforge.io/config_imports.html --> <module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.imports.RedundantImportCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck"/> <!-- Indentation Checks --> <!-- See https://checkstyle.sourceforge.io/config_misc.html --> <module name="com.puppycrawl.tools.checkstyle.checks.indentation.CommentsIndentationCheck"/> <!-- <module name="com.puppycrawl.tools.checkstyle.checks.indentation.IndentationCheck">--> <!-- <property name="basicOffset" value="2"/>--> <!-- <property name="braceAdjustment" value="0"/>--> <!-- <property name="caseIndent" value="2"/>--> <!-- <property name="throwsIndent" value="4"/>--> <!-- <property name="lineWrappingIndentation" value="4"/>--> <!-- <property name="arrayInitIndent" value="2"/>--> <!-- </module>--> <!-- Modifier Checks --> <!-- See https://checkstyle.sourceforge.io/config_modifier.html --> <module name="com.puppycrawl.tools.checkstyle.checks.modifier.ModifierOrderCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.modifier.RedundantModifierCheck"/> <!-- Naming Checks --> <!-- See https://checkstyle.sourceforge.io/config_naming.html --> <module name="com.puppycrawl.tools.checkstyle.checks.naming.AbstractClassNameCheck"> <property name="ignoreName" value="true"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.naming.CatchParameterNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.ClassTypeParameterNameCheck"> <property name="format" value="^[A-Z]*$"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.naming.ConstantNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.InterfaceTypeParameterNameCheck"> <property name="format" value="^[A-Z]*$"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.naming.LambdaParameterNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.LocalFinalVariableNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.MethodNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.MethodTypeParameterNameCheck"> <property name="format" value="^[A-Z]*$"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.naming.PackageNameCheck"> <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.naming.ParameterNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.StaticVariableNameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.naming.TypeNameCheck"/> <!-- Size Checks --> <!-- See https://checkstyle.sourceforge.io/config_sizes.html --> <module name="com.puppycrawl.tools.checkstyle.checks.sizes.MethodLengthCheck"> <property name="tokens" value="METHOD_DEF"/> <property name="max" value="40"/> <property name="countEmpty" value="false"/> </module> <!-- Whitespace Checks --> <!-- See https://checkstyle.sourceforge.io/config_whitespace.html --> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyForIteratorPadCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyLineSeparatorCheck"> <property name="allowMultipleEmptyLines" value="false"/> <property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.GenericWhitespaceCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.MethodParamPadCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoLineWrapCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceBeforeCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.ParenPadCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.SeparatorWrapCheck"> <property name="id" value="SeparatorWrapDotCheck"/> <property name="tokens" value="DOT"/> <property name="option" value="nl"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.SeparatorWrapCheck"> <property name="id" value="SeparatorWrapCommaCheck"/> <property name="tokens" value="COMMA"/> <property name="option" value="EOL"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.SingleSpaceSeparatorCheck"> <property name="validateComments" value="false"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.TypecastParenPadCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck"/> <!-- Miscellaneous Checks --> <!-- See http://checkstyle.sf.net/config_misc.html --> <module name="com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/> <!-- Suppress Checks --> <!-- Required by SuppressWarningsFilter below --> <!-- Make the @SuppressWarnings annotations available to Checkstyle --> <module name="com.puppycrawl.tools.checkstyle.filters.SuppressionCommentFilter"/> <module name="com.puppycrawl.tools.checkstyle.checks.SuppressWarningsHolder"> <metadata name="skip" value="true"/> </module> <!-- Custom SH Checks --> <module name="es.startuphero.checkstyle.checks.annotation.ForbiddenAnnotationCheck"> <property name="forbiddenAnnotations" value="com.clovify.lyso.core.annotation.LysoRepository"/> </module> <module name="es.startuphero.checkstyle.checks.annotation.ForbiddenAnnotationKeyCheck"> <property name="annotationForbiddenKeysMap" value="javax.persistence.Column:unique"/> </module> <module name="es.startuphero.checkstyle.checks.naming.GeneratedPrimaryKeyNameCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> <property name="idAnnotation" value="javax.persistence.Id"/> <property name="generatedValueAnnotation" value="javax.persistence.GeneratedValue"/> <property name="suggestedGeneratedPrimaryKeyName" value="id"/> </module> <module name="es.startuphero.checkstyle.checks.design.LogDataTableCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> <property name="columnAnnotation" value="javax.persistence.Column"/> <property name="limitLength" value="255"/> </module> <module name="es.startuphero.checkstyle.checks.modifier.MissingAbstractModifierCheck"> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> </module> <module name="es.startuphero.checkstyle.checks.method.MissingEqualsHashCodeCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> <property name="idAnnotation" value="javax.persistence.Id"/> </module> <module name="es.startuphero.checkstyle.checks.method.MissingGetterCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> </module> <module name="es.startuphero.checkstyle.checks.method.MissingSetterCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> </module> <module name="es.startuphero.checkstyle.checks.method.MissingToStringCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> </module> <module name="es.startuphero.checkstyle.checks.variable.MissingVariableCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> <property name="mandatoryVariables" value="createdAt"/> </module> <module name="es.startuphero.checkstyle.checks.naming.TableIdentifierNameCheck"> <property name="id" value="IndexNameCheck"/> <property name="tableAnnotation" value="javax.persistence.Table"/> <property name="identifierAnnotation" value="javax.persistence.Index"/> <property name="key" value="indexes"/> <property name="keyName" value="name"/> <property name="keyColumns" value="columnList"/> <property name="suggestedSuffix" value="index"/> <property name="maxLength" value="64"/> <property name="regex" value="^[a-z0-9_]*$"/> </module> <module name="es.startuphero.checkstyle.checks.naming.TableIdentifierNameCheck"> <property name="id" value="UniqueConstraintNameCheck"/> <property name="tableAnnotation" value="javax.persistence.Table"/> <property name="identifierAnnotation" value="javax.persistence.UniqueConstraint"/> <property name="key" value="uniqueConstraints"/> <property name="keyName" value="name"/> <property name="keyColumns" value="columnNames"/> <property name="suggestedSuffix" value="uk"/> <property name="maxLength" value="64"/> <property name="regex" value="^[a-z0-9_]*$"/> </module> <module name="es.startuphero.checkstyle.checks.annotation.VariableAnnotationKeyValueCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> <property name="variableAnnotationKeyValueTable" value="createdAt:javax.persistence.Column:nullable:false, lastUpdatedAt:javax.persistence.Column:nullable:false"/> </module> <module name="es.startuphero.checkstyle.checks.coding.VariableDeclarationOrderCheck"> <property name="variableName" value="LOGGER"/> <property name="declarationOrder" value="1"/> </module> <module name="es.startuphero.checkstyle.checks.naming.VariableNameCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> </module> <module name="es.startuphero.checkstyle.checks.annotation.ColumnDefaultCheck"> <property name="typeAnnotation" value="javax.persistence.Entity"/> <property name="abstractTypeAnnotation" value="javax.persistence.MappedSuperclass"/> <property name="columnAnnotation" value="javax.persistence.Column"/> <property name="columnDefaultAnnotation" value="org.hibernate.annotations.ColumnDefault"/> <property name="excludedColumnDefaultAnnotationValueRegex" value="^.*?(\bCURRENT_TIMESTAMP\b|\bNOW\b|\bLOCALTIME\b|\bLOCALTIMESTAMP\b).*$"/> </module> </module> <!-- Regexp Checks --> <!-- See https://checkstyle.sourceforge.io/config_regexp.html --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="id" value="RegexpSinglelineTrailingSpaceCheck"/> <property name="format" value="\s+$"/> <property name="minimum" value="0"/> <property name="maximum" value="0"/> <property name="message" value="Line has trailing spaces."/> </module> <!-- Space after 'for' and 'if' --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="id" value="RegexpSinglelineParenthesisCheck"/> <property name="format" value="^\s*(for|if)\b[^ ]"/> <property name="message" value="Space needed before opening parenthesis."/> </module> <!-- For each spacing --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="id" value="RegexpSinglelineEnhancedForLoopCheck"/> <property name="format" value="^\s*for \(.*?([^ ]:|:[^ ])"/> <property name="message" value="Space needed around ':' character."/> </module> <!-- Javadoc author check --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="fileExtensions" value="java"/> <property name="format" value="^\s*\*\s*@author"/> <property name="minimum" value="1"/> <property name="maximum" value="10"/> <property name="message" value="Javadoc has illegal ''@author'' tag."/> </module> <!-- System.out.print check --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="fileExtensions" value="java"/> <property name="format" value="System\.out\.print"/> <property name="message" value="Using System.out.print is forbidden. Please log."/> </module> <!-- System.err.print check --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="fileExtensions" value="java"/> <property name="format" value="System\.err\.print"/> <property name="message" value="Using System.err.print is forbidden. Please log."/> </module> <!-- Exception printStackTrace check --> <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck"> <property name="fileExtensions" value="java"/> <property name="format" value="\.printStackTrace\(\)"/> <property name="message" value="Using e.printStackTrace() is forbidden. Rethrow, log or handle the exception."/> </module> <!-- Size Checks --> <!-- See https://checkstyle.sourceforge.io/config_sizes.html --> <module name="com.puppycrawl.tools.checkstyle.checks.sizes.FileLengthCheck"> <property name="fileExtensions" value="java"/> <property name="max" value="1500"/> </module> <module name="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"> <property name="fileExtensions" value="java"/> <property name="max" value="120"/> <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> </module> <!-- Whitespace Checks --> <!-- See https://checkstyle.sourceforge.io/config_whitespace.html --> <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"> <property name="eachLine" value="true"/> </module> <!-- Properties Checks --> <!-- See https://checkstyle.sourceforge.io/config_misc.html#Translation --> <module name="com.puppycrawl.tools.checkstyle.checks.TranslationCheck"/> <module name="com.puppycrawl.tools.checkstyle.checks.UniquePropertiesCheck"/> <!-- Filters --> <!-- Allow turning checks off in the code using @SuppressWarnings annotation --> <!-- See http://checkstyle.sourceforge.net/config_filters.html --> <!-- Filter out Checkstyle warnings that have been suppressed with the @SuppressWarnings annotation --> <module name="com.puppycrawl.tools.checkstyle.filters.SuppressionSingleFilter"> <property name="checks" value="MagicNumber"/> <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/> </module> <module name="com.puppycrawl.tools.checkstyle.filters.SuppressionSingleFilter"> <property name="checks" value="MethodLength"/> <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/> </module> <module name="com.puppycrawl.tools.checkstyle.filters.SuppressWarningsFilter"> <metadata name="skip" value="true"/> </module> <module name="com.puppycrawl.tools.checkstyle.filters.SuppressWithPlainTextCommentFilter"/> </module>