Skip to content

Instantly share code, notes, and snippets.

@softmentor
Created May 8, 2014 07:04
Show Gist options
  • Save softmentor/16a5b7f5987538b10965 to your computer and use it in GitHub Desktop.
Save softmentor/16a5b7f5987538b10965 to your computer and use it in GitHub Desktop.
Netflix Hystrix checkstyle rules
<?xml version="1.0"?>
2<!DOCTYPE module PUBLIC
3 "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
4 "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
5
6<module name="Checker">
7
8 <!-- Checks that a package-info.java file exists for each package. -->
9 <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
10 <!--
11 <module name="JavadocPackage">
12 <property name="allowLegacy" value="true"/>
13 </module>
14 -->
15
16 <!-- Checks whether files end with a new line. -->
17 <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
18 <module name="NewlineAtEndOfFile"/>
19
20 <!-- Checks that property files contain the same keys. -->
21 <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
22 <module name="Translation"/>
23
24 <!-- Checks for Size Violations. -->
25 <!-- See http://checkstyle.sf.net/config_sizes.html -->
26 <module name="FileLength"/>
27
28 <!-- Checks for whitespace -->
29 <!-- See http://checkstyle.sf.net/config_whitespace.html -->
30 <module name="FileTabCharacter"/>
31
32 <!-- Miscellaneous other checks. -->
33 <!-- See http://checkstyle.sf.net/config_misc.html -->
34 <module name="RegexpSingleline">
35 <property name="format" value="\s+$"/>
36 <property name="minimum" value="0"/>
37 <property name="maximum" value="0"/>
38 <property name="message" value="Line has trailing spaces."/>
39 <property name="severity" value="info"/>
40 </module>
41
42 <module name="TreeWalker">
43
44 <!-- Checks for Javadoc comments. -->
45 <!-- See http://checkstyle.sf.net/config_javadoc.html -->
46 <module name="JavadocMethod">
47 <property name="scope" value="package"/>
48 <property name="allowMissingParamTags" value="true"/>
49 <property name="allowMissingThrowsTags" value="true"/>
50 <property name="allowMissingReturnTag" value="true"/>
51 <property name="allowThrowsTagsForSubclasses" value="true"/>
52 <property name="allowUndeclaredRTE" value="true"/>
53 <property name="allowMissingPropertyJavadoc" value="true"/>
54 </module>
55 <module name="JavadocType">
56 <property name="scope" value="package"/>
57 </module>
58 <module name="JavadocVariable">
59 <property name="scope" value="package"/>
60 </module>
61 <module name="JavadocStyle">
62 <property name="checkEmptyJavadoc" value="true"/>
63 </module>
64
65 <!-- Checks for Naming Conventions. -->
66 <!-- See http://checkstyle.sf.net/config_naming.html -->
67 <module name="ConstantName"/>
68 <module name="LocalFinalVariableName"/>
69 <module name="LocalVariableName"/>
70 <module name="MemberName"/>
71 <module name="MethodName"/>
72 <module name="PackageName"/>
73 <module name="ParameterName"/>
74 <module name="StaticVariableName"/>
75 <module name="TypeName"/>
76
77 <!-- Checks for imports -->
78 <!-- See http://checkstyle.sf.net/config_import.html -->
79 <module name="AvoidStarImport"/>
80 <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
81 <module name="RedundantImport"/>
82 <module name="UnusedImports"/>
83
84
85 <!-- Checks for Size Violations. -->
86 <!-- See http://checkstyle.sf.net/config_sizes.html -->
87 <module name="LineLength">
88 <!-- what is a good max value? -->
89 <property name="max" value="120"/>
90 <!-- ignore lines like "$File: //depot/... $" -->
91 <property name="ignorePattern" value="\$File.*\$"/>
92 <property name="severity" value="info"/>
93 </module>
94 <module name="MethodLength"/>
95 <module name="ParameterNumber"/>
96
97
98 <!-- Checks for whitespace -->
99 <!-- See http://checkstyle.sf.net/config_whitespace.html -->
100 <module name="EmptyForIteratorPad"/>
101 <module name="GenericWhitespace"/>
102 <module name="MethodParamPad"/>
103 <module name="NoWhitespaceAfter"/>
104 <module name="NoWhitespaceBefore"/>
105 <module name="OperatorWrap"/>
106 <module name="ParenPad"/>
107 <module name="TypecastParenPad"/>
108 <module name="WhitespaceAfter"/>
109 <module name="WhitespaceAround"/>
110
111 <!-- Modifier Checks -->
112 <!-- See http://checkstyle.sf.net/config_modifiers.html -->
113 <module name="ModifierOrder"/>
114 <module name="RedundantModifier"/>
115
116
117 <!-- Checks for blocks. You know, those {}'s -->
118 <!-- See http://checkstyle.sf.net/config_blocks.html -->
119 <module name="AvoidNestedBlocks"/>
120 <module name="EmptyBlock">
121 <property name="option" value="text"/>
122 </module>
123 <module name="LeftCurly"/>
124 <module name="NeedBraces"/>
125 <module name="RightCurly"/>
126
127
128 <!-- Checks for common coding problems -->
129 <!-- See http://checkstyle.sf.net/config_coding.html -->
130 <!-- <module name="AvoidInlineConditionals"/> -->
131 <module name="EmptyStatement"/>
132 <module name="EqualsHashCode"/>
133 <module name="HiddenField">
134 <property name="ignoreConstructorParameter" value="true"/>
135 <property name="ignoreSetter" value="true"/>
136 <property name="severity" value="warning"/>
137 </module>
138 <module name="IllegalInstantiation"/>
139 <module name="InnerAssignment"/>
140 <module name="MagicNumber">
141 <property name="severity" value="warning"/>
142 </module>
143 <module name="MissingSwitchDefault"/>
144 <!-- Problem with finding exception types... -->
145 <module name="RedundantThrows">
146 <property name="allowUnchecked" value="true"/>
147 <property name="suppressLoadErrors" value="true"/>
148 <property name="severity" value="info"/>
149 </module>
150 <module name="SimplifyBooleanExpression"/>
151 <module name="SimplifyBooleanReturn"/>
152
153 <!-- Checks for class design -->
154 <!-- See http://checkstyle.sf.net/config_design.html -->
155 <!-- <module name="DesignForExtension"/> -->
156 <module name="FinalClass"/>
157 <module name="HideUtilityClassConstructor"/>
158 <module name="InterfaceIsType"/>
159 <module name="VisibilityModifier"/>
160
161
162 <!-- Miscellaneous other checks. -->
163 <!-- See http://checkstyle.sf.net/config_misc.html -->
164 <module name="ArrayTypeStyle"/>
165 <!-- <module name="FinalParameters"/> -->
166 <module name="TodoComment">
167 <property name="format" value="TODO"/>
168 <property name="severity" value="info"/>
169 </module>
170 <module name="UpperEll"/>
171
172 <module name="FileContentsHolder"/> <!-- Required by comment suppression filters -->
173
174 </module>
175
176 <!-- Enable suppression comments -->
177 <module name="SuppressionCommentFilter">
178 <property name="offCommentFormat" value="CHECKSTYLE IGNORE\s+(\S+)"/>
179 <property name="onCommentFormat" value="CHECKSTYLE END IGNORE\s+(\S+)"/>
180 <property name="checkFormat" value="$1"/>
181 </module>
182 <module name="SuppressWithNearbyCommentFilter">
183 <!-- Syntax is "SUPPRESS CHECKSTYLE name" -->
184 <property name="commentFormat" value="SUPPRESS CHECKSTYLE (\w+)"/>
185 <property name="checkFormat" value="$1"/>
186 <property name="influenceFormat" value="1"/>
187 </module>
188</module>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment