Merge "Upgrade Jackson 2.3.2 -> 2.7.4"
[odlparent.git] / checkstyle / src / main / resources / odl_checks.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE module PUBLIC
3           "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4           "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
5
6 <!--
7
8     ODL Checkstyle configuration, originally based on the the Google coding conventions from:
9
10     -  Google Java Style
11        https://google-styleguide.googlecode.com/svn-history/r130/trunk/javaguide.html
12
13     Checkstyle is very configurable. Be sure to read the documentation at
14     http://checkstyle.sf.net (or in your downloaded distribution).
15
16     Most Checks are configurable, be sure to consult the documentation.
17
18     To completely disable a check, just comment it out or delete it from the file.
19
20     Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
21
22  -->
23
24 <module name = "Checker">
25     <property name="charset" value="UTF-8"/>
26
27     <property name="severity" value="${checkstyle.violationSeverity}" default="warning"/>
28
29     <!-- Checks for whitespace                               -->
30     <!-- See http://checkstyle.sf.net/config_whitespace.html -->
31         <module name="FileTabCharacter">
32             <property name="eachLine" value="true"/>
33         </module>
34
35     <module name="SuppressWarningsFilter"/>
36     <module name="TreeWalker">
37         <module name="SuppressWarningsHolder" />
38         <module name="OuterTypeFilename"/>
39         <module name="IllegalTokenText">
40             <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
41             <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)"/>
42             <property name="message" value="Avoid using corresponding octal or Unicode escape."/>
43         </module>
44         <module name="AvoidEscapedUnicodeCharacters">
45             <property name="allowEscapesForControlCharacters" value="true"/>
46             <property name="allowByTailComment" value="true"/>
47             <property name="allowNonPrintableEscapes" value="true"/>
48         </module>
49         <module name="LineLength">
50             <property name="max" value="120"/><!-- ODL projects use 120 max line length -->
51             <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
52         </module>
53         <module name="AvoidStarImport"/>
54         <module name="OneTopLevelClass"/>
55         <module name="NoLineWrap"/>
56         <module name="EmptyBlock">
57             <property name="option" value="TEXT"/>
58             <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
59         </module>
60         <module name="NeedBraces"/>
61         <module name="LeftCurly">
62             <property name="maxLineLength" value="100"/>
63         </module>
64         <module name="RightCurly"/>
65         <module name="RightCurly">
66             <property name="option" value="alone"/>
67             <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>
68         </module>
69         <module name="WhitespaceAround">
70             <property name="allowEmptyConstructors" value="true"/>
71             <property name="allowEmptyMethods" value="true"/>
72             <property name="allowEmptyTypes" value="true"/>
73             <property name="allowEmptyLoops" value="true"/>
74             <message key="ws.notFollowed"
75              value="WhitespaceAround: ''{0}'' is not followed by whitespace."/>
76              <message key="ws.notPreceded"
77              value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
78         </module>
79         <module name="OneStatementPerLine"/>
80         <module name="MultipleVariableDeclarations"/>
81         <module name="ArrayTypeStyle"/>
82         <module name="MissingSwitchDefault"/>
83         <module name="FallThrough"/>
84         <module name="UpperEll"/>
85         <module name="ModifierOrder"/>
86         <module name="EmptyLineSeparator">
87             <property name="allowNoEmptyLineBetweenFields" value="true"/>
88             <!-- No PACKAGE_DEF token, as we like our license header to be glue to "package" statement, to save 1 line screen space -->
89             <property name="tokens" value="IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
90         </module>
91         <module name="SeparatorWrap">
92             <property name="tokens" value="DOT"/>
93             <property name="option" value="nl"/>
94         </module>
95         <module name="SeparatorWrap">
96             <property name="tokens" value="COMMA"/>
97             <property name="option" value="EOL"/>
98         </module>
99         <module name="PackageName">
100             <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
101             <message key="name.invalidPattern"
102              value="Package name ''{0}'' must match pattern ''{1}''."/>
103         </module>
104         <module name="TypeName">
105             <message key="name.invalidPattern"
106              value="Type name ''{0}'' must match pattern ''{1}''."/>
107         </module>
108         <module name="MemberName">
109             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
110             <message key="name.invalidPattern"
111              value="Member name ''{0}'' must match pattern ''{1}''."/>
112         </module>
113         <module name="ParameterName">
114             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
115             <message key="name.invalidPattern"
116              value="Parameter name ''{0}'' must match pattern ''{1}''."/>
117         </module>
118         <module name="LocalVariableName">
119             <property name="tokens" value="VARIABLE_DEF"/>
120             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
121             <property name="allowOneCharVarInForLoop" value="true"/>
122             <message key="name.invalidPattern"
123              value="Local variable name ''{0}'' must match pattern ''{1}''."/>
124         </module>
125         <module name="ClassTypeParameterName">
126             <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
127             <message key="name.invalidPattern"
128              value="Class type name ''{0}'' must match pattern ''{1}''."/>
129         </module>
130         <module name="MethodTypeParameterName">
131             <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
132             <message key="name.invalidPattern"
133              value="Method type name ''{0}'' must match pattern ''{1}''."/>
134         </module>
135         <module name="NoFinalizer"/>
136         <module name="GenericWhitespace">
137             <message key="ws.followed"
138              value="GenericWhitespace ''{0}'' is followed by whitespace."/>
139              <message key="ws.preceded"
140              value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
141              <message key="ws.illegalFollow"
142              value="GenericWhitespace ''{0}'' should followed by whitespace."/>
143              <message key="ws.notPreceded"
144              value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
145         </module>
146         <module name="Indentation">
147             <property name="basicOffset" value="4"/>
148             <property name="braceAdjustment" value="0"/>
149             <property name="caseIndent" value="4"/>
150             <property name="throwsIndent" value="4"/>
151             <property name="lineWrappingIndentation" value="4"/>
152             <property name="arrayInitIndent" value="4"/>
153         </module>
154         <module name="AbbreviationAsWordInName">
155             <property name="ignoreFinal" value="false"/>
156             <property name="allowedAbbreviationLength" value="3"/>
157         </module>
158         <module name="OverloadMethodsDeclarationOrder"/>
159         <module name="VariableDeclarationUsageDistance"/>
160         <module name="CustomImportOrder">
161             <property name="thirdPartyPackageRegExp" value=".*"/>
162             <property name="specialImportsRegExp" value="^com.*"/>
163             <property name="sortImportsInGroupAlphabetically" value="true"/>
164             <property name="customImportOrderRules" value="STATIC###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE###SPECIAL_IMPORTS"/>
165         </module>
166         <module name="MethodParamPad"/>
167         <module name="OperatorWrap">
168             <property name="option" value="NL"/>
169             <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 "/>
170         </module>
171         <module name="AnnotationLocation">
172             <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
173         </module>
174         <module name="AnnotationLocation">
175             <property name="tokens" value="VARIABLE_DEF"/>
176             <property name="allowSamelineMultipleAnnotations" value="true"/>
177         </module>
178         <module name="NonEmptyAtclauseDescription"/>
179         <module name="JavadocTagContinuationIndentation"/>
180         <module name="SummaryJavadocCheck">
181             <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
182         </module>
183         <module name="JavadocParagraph"/>
184         <module name="AtclauseOrder">
185             <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
186             <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
187         </module>
188         <module name="JavadocMethod">
189             <property name="scope" value="public"/>
190             <property name="tokens" value="METHOD_DEF"/> <!-- JavaDoc on constructors is optional -->
191             <property name="allowMissingPropertyJavadoc" value="true" /> <!-- JavaDoc on STRICT (!) getters and setters is optional -->
192             <property name="allowMissingParamTags" value="true"/>
193             <property name="allowMissingThrowsTags" value="true"/>
194             <property name="allowMissingReturnTag" value="true"/>
195             <property name="minLineCount" value="2"/>
196             <property name="allowedAnnotations" value="Override, Test"/>
197             <property name="allowThrowsTagsForSubclasses" value="true"/>
198         </module>
199         <module name="MethodName">
200             <property name="format" value="^[a-z][a-zA-Z0-9_]*$"/>
201             <message key="name.invalidPattern"
202              value="Method name ''{0}'' must match pattern ''{1}''."/>
203         </module>
204         <module name="SingleLineJavadoc"/>
205     </module>
206 </module>