1   <?xml version="1.0"?>
2   <!DOCTYPE module PUBLIC
3             "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
4             "https://checkstyle.org/dtds/configuration_1_3.dtd">
5   
6   <module name = "Checker">
7       <property name="charset" value="UTF-8"/>
8   
9       <!-- do not change severity to 'error', as that will hide errors caused by exceptions -->
10      <property name="severity" value="warning"/>
11  
12      <!-- haltOnException is required for exception fixes and reporting of all exceptions -->
13      <property name="haltOnException" value="false"/>
14  
15      <!-- BeforeExecutionFileFilters is required for sources of java9 -->
16      <module name="BeforeExecutionExclusionFileFilter">
17          <property name="fileNamePattern" value="module\-info\.java$" />
18      </module>
19  
20      <module name="TreeWalker">
21   <!-- Coding -->
22          <module name="ArrayTrailingComma"/>
23          <module name="AvoidDoubleBraceInitialization"/>
24          <module name="AvoidInlineConditionals"/>
25          <module name="AvoidNoArgumentSuperConstructorCall"/>
26          <module name="CovariantEquals"/>
27          <module name="DeclarationOrder"/>
28          <module name="DefaultComesLast"/>
29          <module name="EmptyStatement"/>
30          <module name="EqualsAvoidNull"/>
31          <module name="EqualsHashCode"/>
32          <module name="ExplicitInitialization"/>
33          <module name="FallThrough"/>
34          <module name="FinalLocalVariable"/>
35          <module name="HiddenField">
36              <property name="ignoreConstructorParameter" value="true"/>
37              <property name="ignoreSetter" value="true"/>
38              <property name="setterCanReturnItsClass" value="true"/>
39          </module>
40          <module name="IllegalCatch">
41              <property name="illegalClassNames"
42                        value="java.lang.Exception,
43                           java.lang.Throwable,
44                           java.lang.RuntimeException,
45                           java.lang.NullPointerException"/>
46          </module>
47          <module name="IllegalInstantiation">
48              <property name="classes"
49                        value="org.xml.sax.SAXException, org.xml.sax.SAXParseException,
50                           org.apache.commons.beanutils.ConversionException,
51                           org.antlr.v4.runtime.misc.ParseCancellationException,
52                           antlr.RecognitionException, antlr.TokenStreamException,
53                           antlr.TokenStreamRecognitionException, antlr.ANTLRException,
54                           java.lang.StringBuffer"/>
55          </module>
56          <module name="IllegalThrows"/>
57          <module name="IllegalToken">
58              <property name="tokens" value="LABELED_STAT"/>
59              <property name="tokens" value="LITERAL_NATIVE"/>
60              <property name="tokens" value="LITERAL_VOLATILE"/>
61              <property name="tokens" value="LITERAL_ASSERT"/>
62          </module>
63          <module name="IllegalTokenText">
64              <property name="tokens" value="STRING_LITERAL"/>
65              <property name="format" value="^(US-ASCII|ISO-8859-1|UTF-8|UTF-16BE|UTF-16LE|UTF-16)$"/>
66              <property name="ignoreCase" value="true"/>
67          </module>
68          <module name="IllegalType">
69              <property name="illegalClassNames"
70                        value="java.util.HashSet, HashSet, java.util.LinkedHashMap, LinkedHashMap,
71                         java.util.TreeMap, TreeMap, java.util.HashMap, HashMap,
72                         java.util.LinkedHashSet, LinkedHashSet, java.util.TreeSet, TreeSet,
73                         java.lang.StringBuffer, StringBuffer"/>
74          </module>
75          <module name="InnerAssignment"/>
76          <module name="MagicNumber"/>
77          <module name="MissingCtor">
78              <!--
79                we will not use that fanatic validation, extra code is not good
80                But this Check will exists as it was created by community demand.
81              -->
82              <property name="severity" value="ignore"/>
83          </module>
84          <module name="MissingSwitchDefault"/>
85          <module name="ModifiedControlVariable"/>
86          <module name="MultipleStringLiterals"/>
87          <module name="MultipleVariableDeclarations"/>
88          <module name="NestedForDepth">
89              <property name="max" value="2"/>
90          </module>
91          <module name="NestedIfDepth">
92              <property name="max" value="3"/>
93          </module>
94          <module name="NestedTryDepth"/>
95          <module name="NoArrayTrailingComma">
96              <!-- This Check is conflicting with ArrayTrailingComma -->
97              <property name="severity" value="ignore"/>
98          </module>
99          <module name="NoClone"/>
100         <module name="NoEnumTrailingComma">
101             <!-- This Check is conflicting with our vision of code
102                  to be same as ArrayTrailingComma requires it -->
103             <property name="severity" value="ignore"/>
104         </module>
105         <module name="NoFinalizer"/>
106         <module name="OneStatementPerLine"/>
107         <module name="OverloadMethodsDeclarationOrder"/>
108         <module name="PackageDeclaration"/>
109         <module name="ParameterAssignment"/>
110         <module name="RequireThis"/>
111         <module name="ReturnCount">
112             <property name="max" value="1"/>
113             <property name="maxForVoid" value="0"/>
114         </module>
115         <module name="SimplifyBooleanExpression"/>
116         <module name="SimplifyBooleanReturn"/>
117         <module name="StringLiteralEquality"/>
118         <module name="SuperClone"/>
119         <module name="SuperFinalize"/>
120         <module name="UnnecessaryParentheses"/>
121         <module name="UnnecessarySemicolonAfterOuterTypeDeclaration"/>
122         <module name="UnnecessarySemicolonAfterTypeMemberDeclaration"/>
123         <module name="UnnecessarySemicolonInEnumeration"/>
124         <module name="UnnecessarySemicolonInTryWithResources"/>
125         <module name="VariableDeclarationUsageDistance"/>
126          <!-- usuppress javadoc parsing errors, as we test Check not a parser -->
127          <module name="SuppressionXpathSingleFilter">
128             <property name="message" value="Javadoc comment at column \d+ has parse error"/>
129          </module>
130     </module>
131 
132     <!-- as we run on regression even on non-compiled files we need to skip exceptions on them -->
133     <module name="SuppressionSingleFilter">
134       <property name="message" value="Exception occurred while parsing"/>
135       <property name="checks" value="Checker"/>
136     </module>
137 </module>