399 lines
18 KiB
XML
399 lines
18 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
~ Licensed to the Apache Software Foundation (ASF) under one or more
|
|
~ contributor license agreements. See the NOTICE file distributed with
|
|
~ this work for additional information regarding copyright ownership.
|
|
~ The ASF licenses this file to You under the Apache License, Version 2.0
|
|
~ (the "License"); you may not use this file except in compliance with
|
|
~ the License. You may obtain a copy of the License at
|
|
~
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
~ See the License for the specific language governing permissions and
|
|
~ limitations under the License.
|
|
-->
|
|
|
|
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
|
|
|
|
<module name="Checker">
|
|
<module name="SuppressWarningsFilter"/>
|
|
|
|
<property name="charset" value="UTF-8"/>
|
|
<property name="severity" value="error"/>
|
|
<property name="fileExtensions" value="java, properties, xml"/>
|
|
<!-- Excludes all 'module-info.java' files -->
|
|
<!-- See https://checkstyle.org/config_filefilters.html -->
|
|
<module name="BeforeExecutionExclusionFileFilter">
|
|
<property name="fileNamePattern" value="module\-info\.java$"/>
|
|
</module>
|
|
<module name="SuppressionFilter">
|
|
<property name="file" value="${org.checkstyle.google.suppressionfilter.config}"
|
|
default="checkstyle-suppressions.xml"/>
|
|
<property name="optional" value="true"/>
|
|
</module>
|
|
|
|
<module name="LineLength">
|
|
<property name="fileExtensions" value="java"/>
|
|
<property name="max" value="200"/>
|
|
<property name="ignorePattern"
|
|
value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
|
|
</module>
|
|
|
|
<module name="TreeWalker">
|
|
<module name="OuterTypeFilename"/>
|
|
<module name="IllegalTokenText">
|
|
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
|
|
<property name="format"
|
|
value="\\u00(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="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
|
|
</module>
|
|
<module name="OneTopLevelClass"/>
|
|
<module name="NoLineWrap">
|
|
<property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT"/>
|
|
</module>
|
|
<module name="EmptyBlock">
|
|
<property name="option" value="TEXT"/>
|
|
<property name="tokens"
|
|
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
|
|
</module>
|
|
<module name="SuppressionXpathSingleFilter">
|
|
<property name="id" value="RightCurlyAlone"/>
|
|
<property name="query" value="//RCURLY[parent::SLIST[count(./*)=1]
|
|
or preceding-sibling::*[last()][self::LCURLY]]"/>
|
|
</module>
|
|
<module name="WhitespaceAfter">
|
|
<property name="tokens"
|
|
value="COMMA, SEMI, TYPECAST, LITERAL_IF, LITERAL_ELSE,
|
|
LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, DO_WHILE"/>
|
|
</module>
|
|
<module name="OneStatementPerLine"/>
|
|
<module name="MultipleVariableDeclarations"/>
|
|
<module name="ArrayTypeStyle"/>
|
|
<module name="MissingSwitchDefault"/>
|
|
<module name="FallThrough"/>
|
|
<module name="UpperEll"/>
|
|
<module name="UnusedImports"/>
|
|
<module name="EmptyLineSeparator">
|
|
<property name="tokens"
|
|
value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
|
|
STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF,
|
|
COMPACT_CTOR_DEF"/>
|
|
<property name="allowNoEmptyLineBetweenFields" value="true"/>
|
|
</module>
|
|
<module name="SeparatorWrap">
|
|
<property name="id" value="SeparatorWrapDot"/>
|
|
<property name="tokens" value="DOT"/>
|
|
<property name="option" value="nl"/>
|
|
</module>
|
|
<module name="SeparatorWrap">
|
|
<property name="id" value="SeparatorWrapEllipsis"/>
|
|
<property name="tokens" value="ELLIPSIS"/>
|
|
<property name="option" value="EOL"/>
|
|
</module>
|
|
<module name="SeparatorWrap">
|
|
<property name="id" value="SeparatorWrapArrayDeclarator"/>
|
|
<property name="tokens" value="ARRAY_DECLARATOR"/>
|
|
<property name="option" value="EOL"/>
|
|
</module>
|
|
<module name="SeparatorWrap">
|
|
<property name="id" value="SeparatorWrapMethodRef"/>
|
|
<property name="tokens" value="METHOD_REF"/>
|
|
<property name="option" value="nl"/>
|
|
</module>
|
|
<module name="PackageName">
|
|
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Package name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="TypeName">
|
|
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
|
|
ANNOTATION_DEF, RECORD_DEF"/>
|
|
<message key="name.invalidPattern"
|
|
value="Type name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="MemberName">
|
|
<property name="format" value="^[a-z][a-z0-9]?[a-zA-Z0-9]*$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Member name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="ParameterName">
|
|
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="LambdaParameterName">
|
|
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="CatchParameterName">
|
|
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="LocalVariableName">
|
|
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="PatternVariableName">
|
|
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Pattern variable name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="ClassTypeParameterName">
|
|
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
<message key="name.invalidPattern"
|
|
value="Class type name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="RecordComponentName">
|
|
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
|
<message key="name.invalidPattern" value="Record component name ''{0}'' must match pattern ''{1}''." />
|
|
</module>
|
|
<module name="RecordTypeParameterName">
|
|
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
<message key="name.invalidPattern"
|
|
value="Record type name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="RecordTypeParameterName">
|
|
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
<message key="name.invalidPattern"
|
|
value="Record type name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="MethodTypeParameterName">
|
|
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
<message key="name.invalidPattern"
|
|
value="Method type name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="InterfaceTypeParameterName">
|
|
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
<message key="name.invalidPattern"
|
|
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="Indentation">
|
|
<property name="basicOffset" value="4"/>
|
|
<property name="braceAdjustment" value="0"/>
|
|
<property name="caseIndent" value="4"/>
|
|
<property name="throwsIndent" value="2"/>
|
|
<property name="lineWrappingIndentation" value="4"/>
|
|
<property name="arrayInitIndent" value="8"/>
|
|
</module>
|
|
<module name="AbbreviationAsWordInName">
|
|
<property name="ignoreFinal" value="false"/>
|
|
<property name="allowedAbbreviationLength" value="0"/>
|
|
<property name="allowedAbbreviations"
|
|
value="XML, URL, ID, FTP, DTO, VO, DO, TO, PO, BO, POJO, HTTP, IP, IE"/>
|
|
<property name="tokens"
|
|
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF,
|
|
PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, PATTERN_VARIABLE_DEF, RECORD_DEF,
|
|
RECORD_COMPONENT_DEF"/>
|
|
</module>
|
|
<module name="NoWhitespaceBefore">
|
|
<property name="tokens"
|
|
value="COMMA, SEMI, POST_INC, POST_DEC, DOT,
|
|
LABELED_STAT, METHOD_REF"/>
|
|
<property name="allowLineBreaks" value="true"/>
|
|
</module>
|
|
<module name="ParenPad">
|
|
<property name="tokens"
|
|
value="ANNOTATION, ANNOTATION_FIELD_DEF, CTOR_CALL, CTOR_DEF, DOT, ENUM_CONSTANT_DEF,
|
|
EXPR, LITERAL_CATCH, LITERAL_DO, LITERAL_FOR, LITERAL_IF, LITERAL_NEW,
|
|
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_WHILE, METHOD_CALL,
|
|
METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA,
|
|
RECORD_DEF"/>
|
|
</module>
|
|
<module name="AnnotationLocation">
|
|
<property name="id" value="AnnotationLocationMostCases"/>
|
|
<property name="tokens"
|
|
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF,
|
|
RECORD_DEF, COMPACT_CTOR_DEF"/>
|
|
</module>
|
|
<module name="AnnotationLocation">
|
|
<property name="id" value="AnnotationLocationVariables"/>
|
|
<property name="tokens" value="VARIABLE_DEF"/>
|
|
<property name="allowSamelineMultipleAnnotations" value="true"/>
|
|
</module>
|
|
<module name="NonEmptyAtclauseDescription"/>
|
|
<module name="InvalidJavadocPosition"/>
|
|
<module name="JavadocTagContinuationIndentation">
|
|
<property name="offset" value="0"/>
|
|
</module>
|
|
<module name="AtclauseOrder">
|
|
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
|
|
<property name="target"
|
|
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
|
|
</module>
|
|
<module name="JavadocMethod">
|
|
<property name="accessModifiers" value="public"/>
|
|
<property name="allowMissingParamTags" value="true"/>
|
|
<property name="allowMissingReturnTag" value="true"/>
|
|
<property name="allowedAnnotations" value="Override, Test"/>
|
|
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF"/>
|
|
</module>
|
|
<module name="MissingJavadocType">
|
|
<property name="scope" value="protected"/>
|
|
<property name="tokens"
|
|
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
|
|
RECORD_DEF, ANNOTATION_DEF"/>
|
|
<property name="excludeScope" value="nothing"/>
|
|
</module>
|
|
<module name="MethodName">
|
|
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
|
|
<message key="name.invalidPattern"
|
|
value="Method name ''{0}'' must match pattern ''{1}''."/>
|
|
</module>
|
|
<module name="SingleLineJavadoc">
|
|
<property name="ignoreInlineTags" value="false"/>
|
|
</module>
|
|
<module name="EmptyCatchBlock">
|
|
<property name="exceptionVariableName" value="ignore"/>
|
|
</module>
|
|
<module name="CommentsIndentation">
|
|
<property name="tokens" value="SINGLE_LINE_COMMENT, BLOCK_COMMENT_BEGIN"/>
|
|
</module>
|
|
<module name="SuppressionXpathFilter">
|
|
<property name="file" value="${org.checkstyle.google.suppressionxpathfilter.config}"
|
|
default="checkstyle-xpath-suppressions.xml"/>
|
|
<property name="optional" value="true"/>
|
|
</module>
|
|
<module name="SuppressWarningsHolder"/>
|
|
<module name="SuppressionCommentFilter">
|
|
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
|
|
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
|
|
<property name="checkFormat" value="$1"/>
|
|
</module>
|
|
<module name="SuppressWithNearbyCommentFilter">
|
|
<property name="commentFormat" value="CHECKSTYLE.SUPPRESS\: ([\w\|]+)"/>
|
|
<property name="checkFormat" value="$1"/>
|
|
<property name="influenceFormat" value="1"/>
|
|
</module>
|
|
<module name="RegexpSinglelineJava">
|
|
<property name="format"
|
|
value="^.*( @author| @date).*" />
|
|
<property name="message"
|
|
value="Java file header cannot contain @author or @date" />
|
|
</module>
|
|
|
|
<!--
|
|
|
|
IMPORT CHECKS
|
|
|
|
-->
|
|
|
|
<module name="RedundantImport">
|
|
<!-- Checks for redundant import statements. -->
|
|
<property name="severity" value="error"/>
|
|
<message key="import.redundancy"
|
|
value="Redundant import {0}."/>
|
|
</module>
|
|
|
|
<!--
|
|
Temporarily disabled: https://github.com/apache/hertzbeat/issues/2594
|
|
-->
|
|
<!--<module name="ImportOrder">
|
|
<property name="severity" value="error"/>
|
|
<!– This ensures that static imports go first. –>
|
|
<property name="option" value="top"/>
|
|
<property name="sortStaticImportsAlphabetically" value="true"/>
|
|
<property name="tokens" value="STATIC_IMPORT, IMPORT"/>
|
|
<message key="import.ordering"
|
|
value="Import {0} appears after other imports that it should precede"/>
|
|
</module>-->
|
|
|
|
<module name="AvoidStarImport">
|
|
<property name="severity" value="error"/>
|
|
</module>
|
|
|
|
<module name="RedundantModifier">
|
|
<!-- Checks for redundant modifiers on various symbol definitions.
|
|
See: http://checkstyle.sourceforge.net/config_modifier.html#RedundantModifier
|
|
-->
|
|
<property name="tokens" value="METHOD_DEF, VARIABLE_DEF, ANNOTATION_FIELD_DEF, INTERFACE_DEF, CLASS_DEF, ENUM_DEF"/>
|
|
</module>
|
|
|
|
<module name="UnusedImports">
|
|
<property name="severity" value="error"/>
|
|
<property name="processJavadoc" value="true"/>
|
|
<message key="import.unused"
|
|
value="Unused import: {0}."/>
|
|
</module>
|
|
|
|
<!--
|
|
|
|
WHITESPACE CHECKS
|
|
|
|
-->
|
|
|
|
<module name="WhitespaceAround">
|
|
<!-- Checks that various tokens are surrounded by whitespace.
|
|
This includes most binary operators and keywords followed
|
|
by regular or curly braces.
|
|
-->
|
|
<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,
|
|
BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN,
|
|
EQUAL, GE, GT, LAND, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
|
|
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
|
|
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS,
|
|
MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION,
|
|
SL, SL_ASSIGN, SR_ASSIGN, STAR, STAR_ASSIGN"/>
|
|
<property name="severity" value="error"/>
|
|
</module>
|
|
|
|
<module name="WhitespaceAfter">
|
|
<!-- Checks that commas, semicolons and typecasts are followed by
|
|
whitespace.
|
|
-->
|
|
<property name="tokens" value="COMMA, SEMI, TYPECAST"/>
|
|
</module>
|
|
|
|
<module name="NoWhitespaceAfter">
|
|
<!-- Checks that there is no whitespace after various unary operators.
|
|
Linebreaks are allowed.
|
|
-->
|
|
<property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS,
|
|
UNARY_PLUS"/>
|
|
<property name="allowLineBreaks" value="true"/>
|
|
<property name="severity" value="error"/>
|
|
</module>
|
|
|
|
<module name="NoWhitespaceBefore">
|
|
<!-- Checks that there is no whitespace before various unary operators.
|
|
Linebreaks are allowed.
|
|
-->
|
|
<property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
|
|
<property name="allowLineBreaks" value="true"/>
|
|
<property name="severity" value="error"/>
|
|
</module>
|
|
|
|
<module name="OperatorWrap">
|
|
<!-- Checks that operators like + and ? appear at newlines rather than
|
|
at the end of the previous line.
|
|
-->
|
|
<property name="option" value="NL"/>
|
|
<property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL,
|
|
GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD,
|
|
NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>
|
|
</module>
|
|
|
|
<module name="OperatorWrap">
|
|
<!-- Checks that assignment operators are at the end of the line. -->
|
|
<property name="option" value="eol"/>
|
|
<property name="tokens" value="ASSIGN"/>
|
|
</module>
|
|
|
|
<module name="ParenPad">
|
|
<!-- Checks that there is no whitespace before close parens or after
|
|
open parens.
|
|
-->
|
|
<property name="severity" value="error"/>
|
|
</module>
|
|
|
|
<module name="ModifierOrder"/>
|
|
|
|
</module>
|
|
</module>
|