1
+ <!--
2
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ ~ contributor license agreements. See the NOTICE file distributed with
4
+ ~ this work for additional information regarding copyright ownership.
5
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ ~ (the "License"); you may not use this file except in compliance with
7
+ ~ the License. You may obtain a copy of the License at
8
+ ~
9
+ ~ http://www.apache.org/licenses/LICENSE-2.0
10
+ ~
11
+ ~ Unless required by applicable law or agreed to in writing, software
12
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
13
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ ~ See the License for the specific language governing permissions and
15
+ ~ limitations under the License.
16
+ -->
17
+
18
+
19
+ <!DOCTYPE module PUBLIC
20
+ "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
21
+ "https://checkstyle.org/dtds/configuration_1_3.dtd">
22
+
23
+ <module name = " Checker" >
24
+ <property name =" charset" value =" UTF-8" />
25
+
26
+ <property name =" severity" value =" error" />
27
+
28
+ <property name =" fileExtensions" value =" java, properties, xml" />
29
+
30
+ <!-- Checks for whitespace -->
31
+ <!-- See http://checkstyle.sf.net/config_whitespace.html -->
32
+ <module name =" FileTabCharacter" >
33
+ <property name =" eachLine" value =" true" />
34
+ </module >
35
+
36
+ <module name =" RegexpSingleline" >
37
+ <!-- \s matches whitespace character, $ matches end of line. -->
38
+ <property name =" format" value =" \s+$" />
39
+ <property name =" message" value =" No trailing whitespace allowed." />
40
+ </module >
41
+
42
+ <module name =" LineLength" >
43
+ <property name =" max" value =" 100" />
44
+ <property name =" ignorePattern" value =" ^package.*|^import.*|a href|href|http://|https://|ftp://" />
45
+ </module >
46
+
47
+ <module name =" TreeWalker" >
48
+ <!--
49
+ If you wish to turn off checking for a section of code, you can put a comment in the source
50
+ before and after the section, with the following syntax:
51
+
52
+ // checkstyle.off: XXX (such as checkstyle.off: NoFinalizer)
53
+ ... // stuff that breaks the styles
54
+ // checkstyle.on: XXX (such as checkstyle.on: NoFinalizer)
55
+ -->
56
+ <module name =" SuppressionCommentFilter" >
57
+ <property name =" offCommentFormat" value =" checkstyle\.off\: ([\w\|]+)" />
58
+ <property name =" onCommentFormat" value =" checkstyle\.on\: ([\w\|]+)" />
59
+ <property name =" checkFormat" value =" $1" />
60
+ </module >
61
+ <module name =" OuterTypeFilename" />
62
+ <module name =" IllegalTokenText" >
63
+ <property name =" tokens" value =" STRING_LITERAL, CHAR_LITERAL" />
64
+ <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)" />
65
+ <property name =" message" value =" Avoid using corresponding octal or Unicode escape." />
66
+ </module >
67
+ <module name =" AvoidEscapedUnicodeCharacters" >
68
+ <property name =" allowEscapesForControlCharacters" value =" true" />
69
+ <property name =" allowByTailComment" value =" true" />
70
+ <property name =" allowNonPrintableEscapes" value =" true" />
71
+ </module >
72
+ <module name =" NoLineWrap" />
73
+ <module name =" EmptyBlock" >
74
+ <property name =" option" value =" TEXT" />
75
+ <property name =" tokens" value =" LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH" />
76
+ </module >
77
+ <module name =" NeedBraces" >
78
+ <property name =" allowSingleLineStatement" value =" true" />
79
+ </module >
80
+ <module name =" OneStatementPerLine" />
81
+ <module name =" ArrayTypeStyle" />
82
+ <module name =" FallThrough" />
83
+ <module name =" UpperEll" />
84
+ <module name =" ModifierOrder" />
85
+ <module name =" SeparatorWrap" >
86
+ <property name =" tokens" value =" DOT" />
87
+ <property name =" option" value =" nl" />
88
+ </module >
89
+ <module name =" SeparatorWrap" >
90
+ <property name =" tokens" value =" COMMA" />
91
+ <property name =" option" value =" EOL" />
92
+ </module >
93
+ <module name =" PackageName" >
94
+ <property name =" format" value =" ^[a-z]+(\.[a-z][a-z0-9]*)*$" />
95
+ <message key =" name.invalidPattern"
96
+ value =" Package name ''{0}'' must match pattern ''{1}''." />
97
+ </module >
98
+ <module name =" ClassTypeParameterName" >
99
+ <property name =" format" value =" ([A-Z][a-zA-Z0-9]*$)" />
100
+ <message key =" name.invalidPattern"
101
+ value =" Class type name ''{0}'' must match pattern ''{1}''." />
102
+ </module >
103
+ <module name =" MethodTypeParameterName" >
104
+ <property name =" format" value =" ([A-Z][a-zA-Z0-9]*)" />
105
+ <message key =" name.invalidPattern"
106
+ value =" Method type name ''{0}'' must match pattern ''{1}''." />
107
+ </module >
108
+ <module name =" GenericWhitespace" >
109
+ <message key =" ws.followed"
110
+ value =" GenericWhitespace ''{0}'' is followed by whitespace." />
111
+ <message key =" ws.preceded"
112
+ value =" GenericWhitespace ''{0}'' is preceded with whitespace." />
113
+ <message key =" ws.illegalFollow"
114
+ value =" GenericWhitespace ''{0}'' should followed by whitespace." />
115
+ <message key =" ws.notPreceded"
116
+ value =" GenericWhitespace ''{0}'' is not preceded with whitespace." />
117
+ </module >
118
+ <module name =" MethodParamPad" />
119
+ <module name =" AnnotationLocation" >
120
+ <property name =" tokens" value =" CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
121
+ </module >
122
+ <module name =" AnnotationLocation" >
123
+ <property name =" tokens" value =" VARIABLE_DEF" />
124
+ <property name =" allowSamelineMultipleAnnotations" value =" true" />
125
+ </module >
126
+ <module name =" MethodName" >
127
+ <property name =" format" value =" ^[a-z][a-z0-9][a-zA-Z0-9_]*$" />
128
+ <message key =" name.invalidPattern"
129
+ value =" Method name ''{0}'' must match pattern ''{1}''." />
130
+ </module >
131
+ <module name =" EmptyCatchBlock" >
132
+ <property name =" exceptionVariableName" value =" expected" />
133
+ </module >
134
+ <module name =" CommentsIndentation" />
135
+ <module name =" UnusedImports" />
136
+ <module name =" RedundantImport" />
137
+ <module name =" RedundantModifier" />
138
+ <module name =" RegexpSinglelineJava" >
139
+ <property name =" format" value =" throw new \w+Error\(" />
140
+ <property name =" message" value =" Avoid throwing error in application code." />
141
+ </module >
142
+ <module name =" RegexpSinglelineJava" >
143
+ <property name =" format" value =" Objects\.toStringHelper" />
144
+ <property name =" message" value =" Avoid using Object.toStringHelper. Use ToStringBuilder instead." />
145
+ </module >
146
+ <module name =" RegexpSinglelineJava" >
147
+ <property name =" format" value =" new (java\.lang\.)?(Byte|Integer|Long|Short)\(" />
148
+ <property name =" message" value =" Use static factory 'valueOf' or 'parseXXX' instead of the deprecated constructors." />
149
+ </module >
150
+ <module name =" RegexpSinglelineJava" >
151
+ <property name =" format" value =" Files\.createTempDir\(" />
152
+ <property name =" message"
153
+ value =" Avoid using com.google.common.io.Files.createTempDir() due to CVE-2020-8908.
154
+ Use org.apache.spark.network.util.JavaUtils.createTempDir() instead." />
155
+ </module >
156
+ <module name =" RegexpSinglelineJava" >
157
+ <property name =" format" value =" FileBackedOutputStream" />
158
+ <property name =" message" value =" Avoid using FileBackedOutputStream due to CVE-2023-2976." />
159
+ </module >
160
+ <module name =" RegexpSinglelineJava" >
161
+ <property name =" format" value =" AtomicDoubleArray" />
162
+ <property name =" message" value =" Avoid using AtomicDoubleArray due to CVE-2018-10237." />
163
+ </module >
164
+ <module name =" RegexpSinglelineJava" >
165
+ <property name =" format" value =" CompoundOrdering" />
166
+ <property name =" message" value =" Avoid using CompoundOrdering due to CVE-2018-10237." />
167
+ </module >
168
+ <module name =" RegexpSinglelineJava" >
169
+ <property name =" format" value =" @Test\(expected" />
170
+ <property name =" message" value =" Please use the `assertThrows` method to test for exceptions." />
171
+ </module >
172
+ <module name =" IllegalImport" >
173
+ <property name =" illegalPkgs" value =" org.apache.log4j" />
174
+ <property name =" illegalPkgs" value =" org.apache.commons.lang" />
175
+ </module >
176
+ <!-- support structured logging -->
177
+ <module name =" RegexpSinglelineJava" >
178
+ <property name =" format" value =" org\.slf4j\.(Logger|LoggerFactory)" />
179
+ <property name =" message" value =" Please use org.apache.spark.internal.(SparkLogger|SparkLoggerFactory) instead." />
180
+ </module >
181
+ </module >
182
+ </module >
0 commit comments