| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE module PUBLIC |
| "-//Puppy Crawl//DTD Check Configuration 1.3//EN" |
| "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> |
| <!-- |
| 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. |
| --> |
| <module name="Checker"> |
| <property name="localeLanguage" value="en"/> |
| |
| <module name="FileTabCharacter"/> |
| |
| <!-- header --> |
| <module name="Header"> |
| <property name="headerFile" value="${headerFile}" /> |
| </module> |
| |
| <module name="TreeWalker"> |
| |
| <!-- code cleanup --> |
| <module name="UnusedImports"> |
| <property name="processJavadoc" value="true" /> |
| </module> |
| <module name="RedundantImport"/> |
| <module name="IllegalImport" /> |
| <module name="EqualsHashCode"/> |
| <module name="SimplifyBooleanExpression"/> |
| <module name="OneStatementPerLine"/> |
| <module name="UnnecessaryParentheses" /> |
| <module name="SimplifyBooleanReturn"/> |
| |
| <!-- style --> |
| <module name="DefaultComesLast"/> |
| <module name="EmptyStatement"/> |
| <module name="ArrayTypeStyle"/> |
| <module name="UpperEll"/> |
| <module name="LeftCurly"/> |
| <module name="RightCurly"/> |
| <module name="EmptyStatement"/> |
| <module name="ConstantName"> |
| <property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^log$)"/> |
| </module> |
| <module name="LocalVariableName"/> |
| <module name="LocalFinalVariableName"/> |
| <module name="MemberName"/> |
| <module name="ClassTypeParameterName"> |
| <property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> |
| </module> |
| <module name="MethodTypeParameterName"> |
| <property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> |
| </module> |
| <module name="InterfaceTypeParameterName"> |
| <property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> |
| </module> |
| <module name="PackageName"/> |
| <module name="ParameterName"/> |
| <module name="StaticVariableName"/> |
| <module name="TypeName"/> |
| <module name="AvoidStarImport"/> |
| |
| <!-- variables that can be final should be final (suppressed except for Streams) --> |
| <module name="FinalLocalVariable"> |
| <property name="tokens" value="VARIABLE_DEF,PARAMETER_DEF"/> |
| <property name="validateEnhancedForLoopVariable" value="true"/> |
| </module> |
| |
| <!-- dependencies --> |
| <module name="ImportControl"> |
| <property name="file" value="${importControlFile}"/> |
| </module> |
| |
| <!-- whitespace --> |
| <module name="GenericWhitespace"/> |
| <module name="NoWhitespaceBefore"/> |
| <module name="WhitespaceAfter" /> |
| <module name="NoWhitespaceAfter"/> |
| <module name="WhitespaceAround"> |
| <property name="allowEmptyConstructors" value="true"/> |
| <property name="allowEmptyMethods" value="true"/> |
| </module> |
| <module name="Indentation"/> |
| <module name="MethodParamPad"/> |
| <module name="ParenPad"/> |
| <module name="TypecastParenPad"/> |
| |
| <!-- locale-sensitive methods should specify locale --> |
| <module name="Regexp"> |
| <property name="format" value="\.to(Lower|Upper)Case\(\)"/> |
| <property name="illegalPattern" value="true"/> |
| <property name="ignoreComments" value="true"/> |
| </module> |
| |
| <module name="Regexp"> |
| <property name="id" value="dontUseSystemExit"/> |
| <property name="format" value="System\.exit"/> |
| <property name="illegalPattern" value="true"/> |
| <property name="ignoreComments" value="true"/> |
| <property name="message" value="'System.exit': Should not directly call System.exit, but Exit.exit instead."/> |
| </module> |
| |
| <!-- code quality --> |
| <module name="MethodLength"/> |
| <module name="ParameterNumber"> |
| <!-- default is 8 --> |
| <property name="max" value="13"/> |
| </module> |
| <module name="ClassDataAbstractionCoupling"> |
| <!-- default is 7 --> |
| <property name="max" value="25"/> |
| <property name="excludeClassesRegexps" value="AtomicInteger"/> |
| </module> |
| <module name="BooleanExpressionComplexity"> |
| <!-- default is 3 --> |
| <property name="max" value="5"/> |
| </module> |
| |
| <module name="ClassFanOutComplexity"> |
| <!-- default is 20 --> |
| <property name="max" value="50"/> |
| </module> |
| <module name="CyclomaticComplexity"> |
| <!-- default is 10--> |
| <property name="max" value="16"/> |
| </module> |
| <module name="JavaNCSS"> |
| <!-- default is 50 --> |
| <property name="methodMaximum" value="100"/> |
| </module> |
| <module name="NPathComplexity"> |
| <!-- default is 200 --> |
| <property name="max" value="500"/> |
| </module> |
| </module> |
| |
| <module name="SuppressionFilter"> |
| <property name="file" value="${suppressionsFile}"/> |
| </module> |
| </module> |