-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathjetty-checkstyle.xml
275 lines (221 loc) · 10.1 KB
/
jetty-checkstyle.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<!--
Checkstyle configuration that checks the Jetty coding conventions.
-->
<module name = "Checker">
<property name="charset" value="UTF-8"/>
<property name="severity" value="warning"/>
<property name="fileExtensions" value="java"/>
<!-- Excludes all 'module-info.java' files -->
<!-- See https://checkstyle.org/config_filefilters.html -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<module name="TreeWalker">
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="@checkstyle-disable-check : ([\w\|]+)"/>
<property name="onCommentFormat" value="@checkstyle-enable-check : ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
<!--
Eclipse Jetty Specific.
===========================================================================================
-->
<!-- Location of Annotations -->
<module name="AnnotationLocation">
<property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
</module>
<!-- Catch Parameter Name Format -->
<module name="CatchParameterName">
<property name="format" value="^(e|t|x|ex|th|e2|[a-z][a-z][a-zA-Z0-9]+)$"/>
</module>
<!-- Class Type Parameter Name Format -->
<module name="ClassTypeParameterName">
<property name="format" value="^[A-Z][A-Z0-9]*$"/>
</module>
<!-- Import Line Ordering -->
<module name="CustomImportOrder">
<property name="sortImportsInGroupAlphabetically" value="true"/>
<property name="separateLineBetweenGroups" value="true"/>
<property name="customImportOrderRules" value="STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE###STATIC"/>
</module>
<!-- do not allow empty blocks in: try, finally, if, else, or switch -->
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module>
<!-- enforce empty line after specified tokens -->
<module name="EmptyLineSeparator">
<property name="allowNoEmptyLineBetweenFields" value="true"/>
<property name="allowMultipleEmptyLines" value="false"/>
<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"/>
</module>
<!-- Indentation Rules -->
<module name="Indentation">
<property name="arrayInitIndent" value="8"/>
</module>
<!-- Interface Type Parameter Name -->
<module name="InterfaceTypeParameterName">
<property name="format" value="^[A-Z][A-Z0-9]*$"/>
</module>
<!-- left curly brace must be on new line -->
<module name="LeftCurly">
<property name="option" value="nl"/>
</module>
<!-- Method Type Parameter Name -->
<module name="MethodTypeParameterName">
<property name="format" value="^[A-Z][A-Z0-9]*$"/>
</module>
<!-- Member Name Format -->
<module name="MemberName">
<property name="format" value="^[_a-z][a-zA-Z0-9]*$"/>
</module>
<!-- require braces is disabled - we don't enforce that in Jetty
<module name="NeedBraces">
<property name="allowSingleLineStatement" value="true"/>
</module>
-->
<!-- No Whitespace After specific tokens -->
<module name="NoWhitespaceAfter">
<property name="tokens" value="ARRAY_INIT, AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP, TYPECAST"/>
<property name="allowLineBreaks" value="true"/>
</module>
<!-- No Whitespace Before specific tokens -->
<module name="NoWhitespaceBefore">
<property name="tokens"
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
<property name="allowLineBreaks" value="true"/>
</module>
<!-- allowed wrapping for operators -->
<module name="OperatorWrap">
<property name="id" value="OperatorWrapNextLine"/>
<property name="tokens" value="QUESTION, COLON"/>
<property name="option" value="nl"/>
</module>
<module name="OperatorWrap">
<property name="id" value="OperatorWrapSameLine"/>
<property name="tokens" value="EQUAL, NOT_EQUAL, DIV, PLUS, MINUS, STAR, MOD, SR, BSR, GE, GT, SL, LE, LT, BXOR, BOR, LOR, BAND, LAND, TYPE_EXTENSION_AND, LITERAL_INSTANCEOF"/>
<property name="option" value="eol"/>
</module>
<!-- ensure we don't have legacy comments that confuse javadoc tooling -->
<module name="Regexp">
<property name="id" value="LegacyMethodSeparators"/>
<property name="format" value="/\*\s*[=*-]+\s*\*/" />
<property name="illegalPattern" value="true"/>
<property name="ignoreComments" value="false"/>
<property name="message" value="Legacy Method Separators"/>
</module>
<!-- right curly brace must be on new line -->
<module name="RightCurly">
<property name="option" value="alone_or_singleline"/>
</module>
<!-- Various Wrapping of ".", ",", "...", "[]", and method ref New Lines -->
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapNextLine"/>
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapSameLine"/>
<property name="tokens" value="COMMA, ELLIPSIS, ARRAY_DECLARATOR, METHOD_REF"/>
<property name="option" value="eol"/>
</module>
<!-- checks that a token is followed by whitespace -->
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyLambdas" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
</module>
<!--
Checks based on common Open Source specific recommendations.
===========================================================================================
-->
<!-- limit use of unicode escape sequences (eg "\u20ac") in mainline code. -->
<module name="AvoidEscapedUnicodeCharacters">
<!-- allow control characters to use unicode escape sequences -->
<property name="allowEscapesForControlCharacters" value="true"/>
<!-- allow unicode escape sequences if also followed by tail comments -->
<property name="allowByTailComment" value="true"/>
<!-- allow use of non-printable escape sequences -->
<property name="allowNonPrintableEscapes" value="true"/>
</module>
<!-- not allowing star import lines -->
<module name="AvoidStarImport"/>
<!-- if you have an empty catch block, name the caught exception "ignored" -->
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="ignored"/>
</module>
<!-- if a switch statement contains java code, but lacks fall through comment its an error -->
<module name="FallThrough"/>
<!-- reject unicode or octal values in mainline code -->
<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>
<!-- all switch statements should have "default" label declared -->
<!-- Disabled: Is super noisy
<module name="MissingSwitchDefault"/>
-->
<!-- prevent line wrapping of import / package statements -->
<module name="NoLineWrap"/>
<!-- only 1 top level class defined per java file -->
<module name="OneTopLevelClass"/>
<!-- Filename and Classname match -->
<module name="OuterTypeFilename"/>
<!--
Checks based on the Java Language Specification recommendations.
https://docs.oracle.com/javase/specs/jls/se8/html/index.html
===========================================================================================
-->
<!-- array type style -->
<!-- int[] foo; // OK
int foo[]; // BAD -->
<module name="ArrayTypeStyle" />
<!-- Whitespace around Generics (angle brackets) follow convention -->
<module name="GenericWhitespace" />
<!-- Lambda Parameter Name Format -->
<module name="LambdaParameterName" />
<!-- Local Parameter Name Format -->
<module name="LocalVariableName" />
<!-- Method Name Format -->
<module name="MethodName" />
<!-- Checks the padding between the identifier of a method definition, constructor definition,
method call, or constructor invocation: nospace -->
<module name="MethodParamPad"/>
<!-- ensure that modifiers follow suggested order -->
<module name="ModifierOrder"/>
<!-- only 1 variable declaration per line -->
<module name="MultipleVariableDeclarations"/>
<!-- No Object.finalize() use -->
<module name="NoFinalizer"/>
<!-- checks that there is only one statement per line -->
<module name="OneStatementPerLine"/>
<!-- package name JLS rules -->
<module name="PackageName" />
<!-- Parameter Name Format -->
<module name="ParameterName" />
<!-- the policy on the padding of parentheses: nospace -->
<module name="ParenPad"/>
<!-- Type Name format -->
<module name="TypeName" />
<!-- checks that long constants are defined with an upper ell. That is 'L' and not 'l' -->
<module name="UpperEll"/>
<!-- TODO: look for float / double version of above -->
</module>
</module>