checkstyle.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. <?xml version="1.0"?>
  2. <!--
  3. ~ Password Management Servlets (PWM)
  4. ~ http://www.pwm-project.org
  5. ~
  6. ~ Copyright (c) 2006-2009 Novell, Inc.
  7. ~ Copyright (c) 2009-2018 The PWM Project
  8. ~
  9. ~ This program is free software; you can redistribute it and/or modify
  10. ~ it under the terms of the GNU General Public License as published by
  11. ~ the Free Software Foundation; either version 2 of the License, or
  12. ~ (at your option) any later version.
  13. ~
  14. ~ This program is distributed in the hope that it will be useful,
  15. ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. ~ GNU General Public License for more details.
  18. ~
  19. ~ You should have received a copy of the GNU General Public License
  20. ~ along with this program; if not, write to the Free Software
  21. ~ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22. -->
  23. <!DOCTYPE module PUBLIC
  24. "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
  25. "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
  26. <!--
  27. PWM Checkstyle definition
  28. -->
  29. <module name="Checker">
  30. <!-- Checks that each Java package has a Javadoc file used for commenting. -->
  31. <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
  32. <!--module name="JavadocPackage">
  33. <property name="allowLegacy" value="true"/>
  34. </module-->
  35. <module name="FileLength">
  36. <property name="max" value="2000"/>
  37. <property name="fileExtensions" value="jsp,java"/>
  38. </module>
  39. <!-- Checks for Headers -->
  40. <!-- See http://checkstyle.sf.net/config_header.html -->
  41. <!--
  42. <module name="RegexpHeader">
  43. <property name="fileExtensions" value="java"/>
  44. <property name="headerFile" value="${checkstyle.header.file}"/>
  45. </module>
  46. -->
  47. <module name="FileTabCharacter">
  48. <property name="eachLine" value="true"/>
  49. </module>
  50. <module name="NewlineAtEndOfFile">
  51. <property name="lineSeparator" value="lf_cr_crlf" />
  52. </module>
  53. <module name="TreeWalker" >
  54. <property name="cacheFile" value="target/checkstyle.cache"/>
  55. <!-- required for SuppressWarningsFilter (and other Suppress* rules not used here) -->
  56. <!-- see http://checkstyle.sourceforge.net/config_annotation.html#SuppressWarningsHolder -->
  57. <module name="SuppressWarningsHolder"/>
  58. <module name="OuterTypeFilename"/>
  59. <module name="IllegalTokenText">
  60. <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
  61. <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)"/>
  62. <property name="message" value="Avoid using corresponding octal or Unicode escape."/>
  63. </module>
  64. <module name="AvoidEscapedUnicodeCharacters">
  65. <property name="allowEscapesForControlCharacters" value="true"/>
  66. <property name="allowByTailComment" value="true"/>
  67. <property name="allowNonPrintableEscapes" value="true"/>
  68. </module>
  69. <module name="LineLength">
  70. <property name="max" value="180" />
  71. <property name="ignorePattern" value="@version|@see|@todo|TODO"/>
  72. </module>
  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="LeftCurly">
  78. <property name="option" value="nl"/>
  79. </module>
  80. <module name="RightCurly">
  81. <property name="option" value="alone"/>
  82. </module>
  83. <!-- Checks for Javadoc comments. -->
  84. <!-- See http://checkstyle.sf.net/config_javadoc.html -->
  85. <!--
  86. <module name="JavadocMethod">
  87. <property name="severity" value="warning"/>
  88. <property name="scope" value="protected"/>
  89. </module>
  90. <module name="JavadocType">
  91. <property name="scope" value="protected"/>
  92. <property name="allowUnknownTags" value="true" />
  93. </module>
  94. <module name="JavadocVariable">
  95. <property name="severity" value="info"/>
  96. <property name="scope" value="protected"/>
  97. </module>
  98. -->
  99. <module name="AnnotationLocation">
  100. <property name="tokens" value="VARIABLE_DEF"/>
  101. <property name="allowSamelineMultipleAnnotations" value="true"/>
  102. </module>
  103. <!-- Checks for Naming Conventions. -->
  104. <!-- See http://checkstyle.sf.net/config_naming.html -->
  105. <!--
  106. -->
  107. <module name="MemberName">
  108. <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
  109. </module>
  110. <module name="TypeName"/>
  111. <module name="ConstantName"/>
  112. <module name="PackageName">
  113. <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
  114. </module>
  115. <module name="LocalVariableName">
  116. <property name="tokens" value="VARIABLE_DEF"/>
  117. <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
  118. <property name="allowOneCharVarInForLoop" value="true"/>
  119. </module>
  120. <!--
  121. <module name="ClassTypeParameterName">
  122. <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
  123. </module>
  124. -->
  125. <module name="MethodTypeParameterName">
  126. <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
  127. </module>
  128. <module name="InterfaceTypeParameterName">
  129. <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
  130. </module>
  131. <module name="LocalFinalVariableName"/>
  132. <module name="MethodName"/>
  133. <module name="ParameterName"/>
  134. <!--
  135. -->
  136. <module name="StaticVariableName"/>
  137. <!-- Checks for imports -->
  138. <!-- See http://checkstyle.sf.net/config_import.html -->
  139. <module name="AvoidStarImport"/>
  140. <module name="AvoidStaticImport"/>
  141. <module name="IllegalImport"/>
  142. <module name="RedundantImport"/>
  143. <module name="UnusedImports"/>
  144. <module name="ImportControl">
  145. <property name="file" value="${basedir}/build/checkstyle-import.xml"/>
  146. </module>
  147. <!-- Checks for Size Violations. -->
  148. <!-- See http://checkstyle.sf.net/config_sizes.html -->
  149. <module name="MethodLength"/>
  150. <module name="ParameterNumber"/>
  151. <!-- Checks for whitespace -->
  152. <!-- See http://checkstyle.sf.net/config_whitespace.html -->
  153. <module name="EmptyForIteratorPad">
  154. <property name="option" value="space"/>
  155. </module>
  156. <module name="EmptyForInitializerPad"/>
  157. <module name="NeedBraces"/>
  158. <module name="NoWhitespaceAfter"/>
  159. <module name="NoWhitespaceBefore"/>
  160. <module name="OperatorWrap"/>
  161. <module name="ParenPad">
  162. <property name="option" value="space" />
  163. </module>
  164. <module name="WhitespaceAfter"/>
  165. <module name="WhitespaceAround"/>
  166. <!-- module name="MethodParamPad"/ -->
  167. <module name="GenericWhitespace"/>
  168. <module name="EmptyLineSeparator">
  169. <property name="allowNoEmptyLineBetweenFields" value="true"/>
  170. </module>
  171. <!-- Modifier Checks -->
  172. <!-- See http://checkstyle.sf.net/config_modifiers.html -->
  173. <module name="ModifierOrder"/>
  174. <module name="RedundantModifier"/>
  175. <!--
  176. -->
  177. <!-- Checks for blocks. You know, those {}'s -->
  178. <!-- See http://checkstyle.sf.net/config_blocks.html -->
  179. <!--
  180. <module name="AvoidNestedBlocks"/>
  181. -->
  182. <module name="EmptyBlock">
  183. <property name="option" value="TEXT"/>
  184. <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
  185. </module>
  186. <module name="IllegalInstantiation"/>
  187. <!-- Checks for common coding problems -->
  188. <!-- See http://checkstyle.sf.net/config_coding.html -->
  189. <!-- module name="AvoidInlineConditionals"/ -->
  190. <!--
  191. <module name="EmptyStatement"/>
  192. <module name="HiddenField">
  193. <property name="severity" value="warning"/>
  194. <property name="ignoreSetter" value="true"/>
  195. <property name="ignoreConstructorParameter" value="true"/>
  196. </module>
  197. <module name="IllegalInstantiation"/>
  198. -->
  199. <!--
  200. <module name="MagicNumber">
  201. <property name="ignoreNumbers" value="-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 31, 32, 37, 64, 100, 128, 256, 512, 1000, 1024"/>
  202. </module>
  203. -->
  204. <!-- Checks for class design -->
  205. <!-- See http://checkstyle.sf.net/config_design.html -->
  206. <!-- module name="DesignForExtension"/ -->
  207. <!-- module name="FinalClass"/ -->
  208. <!-- module name="HideUtilityClassConstructor"/ -->
  209. <!--
  210. <module name="InterfaceIsType"/>
  211. <module name="VisibilityModifier">
  212. <property name="protectedAllowed" value="true"/>
  213. <property name="packageAllowed" value="true"/>
  214. </module>
  215. -->
  216. <!-- future enabled checks -->
  217. <!--
  218. <module name="EnumTrailingCommaCheck"/> //doesnt yet exist as of checkstyle 2.17
  219. <module name="MultipleStringLiterals"/>
  220. <module name="NPathComplexity"/>
  221. <module name="MagicNumber">
  222. <property name="ignoreNumbers" value="-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 31, 32, 37, 64, 100, 128, 256, 512, 1000, 1024"/>
  223. </module>
  224. -->
  225. <module name="InnerAssignment"/>
  226. <module name="SimplifyBooleanExpression"/>
  227. <module name="TrailingComment"/>
  228. <!-- coding -->
  229. <module name="FallThrough"/>
  230. <module name="EqualsHashCode"/>
  231. <module name="ArrayTrailingCommaCheck"/>
  232. <module name="FinalLocalVariable"/>
  233. <module name="MissingSwitchDefault"/>
  234. <module name="ModifiedControlVariable"/>
  235. <module name="MultipleVariableDeclarations"/>
  236. <module name="OneStatementPerLine"/>
  237. <module name="FinalParameters"/>
  238. <module name="ParameterAssignment"/>
  239. <module name="SimplifyBooleanReturn"/>
  240. <module name="StringLiteralEquality"/>
  241. <module name="CovariantEquals"/>
  242. <module name="DefaultComesLast"/>
  243. <module name="EmptyStatement"/>
  244. <module name="EqualsHashCode"/>
  245. <module name="EqualsAvoidNull"/>
  246. <module name="MutableException"/>
  247. <module name="OuterTypeFilename"/>
  248. <module name="TodoComment"/>
  249. <module name="NoLineWrap"/>
  250. <module name="OneTopLevelClass"/>
  251. <module name="NoFinalizer"/>
  252. <module name="ArrayTypeStyle"/>
  253. <module name="UpperEll"/>
  254. <module name="PackageDeclaration"/>
  255. <module name="NoClone"/>
  256. <!-- javadoc -->
  257. <module name="JavadocParagraph"/>
  258. <module name="AtclauseOrder"/>
  259. <module name="JavadocStyle"/>
  260. <module name="JavadocTagContinuationIndentation"/>
  261. <module name="NonEmptyAtclauseDescription"/>
  262. <module name="SingleLineJavadoc"/>
  263. </module>
  264. <!-- Support @SuppressWarnings (added in Checkstyle 5.7) -->
  265. <!-- see http://checkstyle.sourceforge.net/config.html#SuppressWarningsFilter -->
  266. <module name="SuppressWarningsFilter"/>
  267. <!-- Checks properties file for a duplicated properties. -->
  268. <!-- See http://checkstyle.sourceforge.net/config_misc.html#UniqueProperties -->
  269. <module name="UniqueProperties"/>
  270. <!-- Support CHECKSTYLE_OFF: regexp and CHECKSTYLE_ON: regexp comments to disable/enable some checks -->
  271. <!-- see http://checkstyle.sourceforge.net/config.html#SuppressionCommentFilter -->
  272. <!--
  273. <module name="SuppressionCommentFilter">
  274. <property name="offCommentFormat" value="CHECKSTYLE_OFF\: (.+)"/>
  275. <property name="onCommentFormat" value="CHECKSTYLE_ON\: (.+)"/>
  276. <property name="checkFormat" value="$1"/>
  277. </module>
  278. -->
  279. </module>