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          <module name="IllegalCatch">
22              <property name="illegalClassNames"
23                        value="java.lang.Exception,
24                           java.lang.Throwable,
25                           java.lang.RuntimeException,
26                           java.lang.NullPointerException"/>
27          </module>
28          <module name="IllegalInstantiation">
29              <property name="classes"
30                        value="org.xml.sax.SAXException, org.xml.sax.SAXParseException,
31                           org.apache.commons.beanutils.ConversionException,
32                           org.antlr.v4.runtime.misc.ParseCancellationException,
33                           antlr.RecognitionException, antlr.TokenStreamException,
34                           antlr.TokenStreamRecognitionException, antlr.ANTLRException,
35                           java.lang.StringBuffer"/>
36          </module>
37          <module name="InnerAssignment"/>
38          <module name="MagicNumber"/>
39          <!-- Filters -->
40          <module name="SuppressionCommentFilter">
41              <!--
42                Use suppressions.xml for suppressions, this is only example.
43                checkFormat will prevent suppression comments from being valid.
44              -->
45              <property name="checkFormat" value="IGNORETHIS"/>
46              <property name="offCommentFormat" value="CSOFF\: .*"/>
47              <property name="onCommentFormat" value="CSON\: .*"/>
48          </module>
49          <!-- Tone down the checking for test code -->
50          <module name="SuppressionXpathSingleFilter">
51              <property name="files" value="[\\/]internal[\\/].*[\\/]\w+Util\.java"/>
52              <property name="checks" value="IllegalCatch"/>
53          </module>
54          <module name="SuppressionXpathSingleFilter">
55              <property name="files" value=".*[\\/]src[\\/]test[\\/]"/>
56              <property name="checks" value="EmptyBlock"/>
57          </module>
58          <module name="SuppressionXpathSingleFilter">
59              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
60              <property name="checks" value="JavadocVariable"/>
61          </module>
62          <module name="SuppressionXpathSingleFilter">
63              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
64              <property name="checks" value="JavadocType"/>
65          </module>
66          <module name="SuppressionXpathSingleFilter">
67              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
68              <property name="checks" value="MagicNumber"/>
69          </module>
70          <module name="SuppressionXpathSingleFilter">
71              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
72              <property name="checks" value="AvoidStaticImport"/>
73          </module>
74          <module name="SuppressionXpathSingleFilter">
75              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
76              <property name="checks" value="WriteTag"/>
77          </module>
78          <module name="SuppressionXpathSingleFilter">
79              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
80              <property name="checks" value="MethodCount"/>
81          </module>
82          <!-- Fixing these cases will decrease code readability -->
83          <module name="SuppressionXpathSingleFilter">
84              <property name="files" value=".*[\\/]src[\\/](test|it)[\\/]"/>
85              <property name="checks" value="MultipleStringLiterals"/>
86          </module>
87          <module name="SuppressWithNearbyCommentFilter">
88              <property name="commentFormat"
89                        value="-@cs\[(\w{8,}(\|\w{8,})*)\] \w[\(\)\-\.\'\`\,\:\;\w ]{10,}"/>
90              <property name="checkFormat" value="$1"/>
91              <property name="influenceFormat" value="3"/>
92          </module>
93  
94          <!-- Imports -->
95          <module name="AvoidStarImport"/>
96          <module name="AvoidStaticImport"/>
97          <module name="CustomImportOrder">
98              <property name="customImportOrderRules"
99                        value="STATIC###STANDARD_JAVA_PACKAGE###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE"/>
100             <property name="standardPackageRegExp" value="^java\."/>
101             <property name="specialImportsRegExp" value="^javax\."/>
102             <property name="thirdPartyPackageRegExp" value="^org\."/>
103             <property name="sortImportsInGroupAlphabetically" value="true"/>
104             <property name="separateLineBetweenGroups" value="true"/>
105         </module>
106         <module name="IllegalImport"/>
107         <module name="ImportOrder">
108             <property name="groups" value="/^java\./,javax,org"/>
109             <property name="ordered" value="true"/>
110             <property name="separated" value="true"/>
111             <property name="option" value="top"/>
112             <property name="sortStaticImportsAlphabetically" value="true"/>
113         </module>
114         <module name="RedundantImport"/>
115         <module name="UnusedImports"/>
116 
117          <!-- usuppress javadoc parsing errors, as we test Check not a parser -->
118          <module name="SuppressionXpathSingleFilter">
119             <property name="message" value="Javadoc comment at column \d+ has parse error"/>
120          </module>
121     </module>
122 
123 
124     <!-- as we run on regression even on non-compiled files we need to skip exceptions on them -->
125     <module name="SuppressionSingleFilter">
126       <property name="message" value="Exception occurred while parsing"/>
127       <property name="checks" value="Checker"/>
128     </module>
129 </module>