1*4711b67fSTreehugger Robot<?xml version="1.0"?> 2*4711b67fSTreehugger Robot<!DOCTYPE module PUBLIC 3*4711b67fSTreehugger Robot "-//Puppy Crawl//DTD Check Configuration 1.3//EN" 4*4711b67fSTreehugger Robot "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> 5*4711b67fSTreehugger Robot 6*4711b67fSTreehugger Robot<!-- Checkstyle configuration that checks the sun coding conventions from: - the Java Language Specification at http://java.sun.com/docs/books/jls/second_edition/html/index.html - the 7*4711b67fSTreehugger Robot Sun Code Conventions at http://java.sun.com/docs/codeconv/ - the Javadoc guidelines at http://java.sun.com/j2se/javadoc/writingdoccomments/index.html - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html 8*4711b67fSTreehugger Robot - some best practices Checkstyle is very configurable. Be sure to read the documentation at http://checkstyle.sf.net (or in your downloaded distribution). Most Checks are configurable, 9*4711b67fSTreehugger Robot be sure to consult the documentation. To completely disable a check, just comment it out or delete it from the file. Finally, it is worth reading the documentation. --> 10*4711b67fSTreehugger Robot 11*4711b67fSTreehugger Robot<module name="Checker"> 12*4711b67fSTreehugger Robot <module name="SuppressionFilter"> 13*4711b67fSTreehugger Robot <property name="file" value="${checkstyle.suppressions.file}" default="src/main/checkstyle/checkstyle-suppressions.xml"/> 14*4711b67fSTreehugger Robot </module> 15*4711b67fSTreehugger Robot <!-- If you set the basedir property below, then all reported file names will be relative to the specified directory. See http://checkstyle.sourceforge.net/5.x/config.html#Checker 16*4711b67fSTreehugger Robot <property name="basedir" value="${basedir}"/> --> 17*4711b67fSTreehugger Robot 18*4711b67fSTreehugger Robot <!-- Checks whether files end with a new line. --> 19*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> 20*4711b67fSTreehugger Robot <module name="NewlineAtEndOfFile" /> 21*4711b67fSTreehugger Robot 22*4711b67fSTreehugger Robot <!-- Checks that property files contain the same keys. --> 23*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> 24*4711b67fSTreehugger Robot <module name="Translation" /> 25*4711b67fSTreehugger Robot 26*4711b67fSTreehugger Robot <!-- Checks for Size Violations. --> 27*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_sizes.html --> 28*4711b67fSTreehugger Robot <module name="FileLength" /> 29*4711b67fSTreehugger Robot 30*4711b67fSTreehugger Robot <!-- Checks for whitespace --> 31*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_whitespace.html --> 32*4711b67fSTreehugger Robot <module name="FileTabCharacter" /> 33*4711b67fSTreehugger Robot 34*4711b67fSTreehugger Robot 35*4711b67fSTreehugger Robot <!-- Checks for Headers --> 36*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_header.html --> 37*4711b67fSTreehugger Robot <!-- <module name="Header"> --> 38*4711b67fSTreehugger Robot <!-- <property name="headerFile" value="${checkstyle.header.file}"/> --> 39*4711b67fSTreehugger Robot <!-- <property name="fileExtensions" value="java"/> --> 40*4711b67fSTreehugger Robot <!-- </module> --> 41*4711b67fSTreehugger Robot 42*4711b67fSTreehugger Robot <module name="TreeWalker"> 43*4711b67fSTreehugger Robot 44*4711b67fSTreehugger Robot <!-- Checks for Javadoc comments. --> 45*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_javadoc.html --> 46*4711b67fSTreehugger Robot <module name="JavadocMethod" > 47*4711b67fSTreehugger Robot <property name="scope" value="protected" /> 48*4711b67fSTreehugger Robot </module> 49*4711b67fSTreehugger Robot <module name="JavadocType" > 50*4711b67fSTreehugger Robot <property name="scope" value="protected" /> 51*4711b67fSTreehugger Robot </module> 52*4711b67fSTreehugger Robot <module name="JavadocVariable" > 53*4711b67fSTreehugger Robot <property name="scope" value="protected" /> 54*4711b67fSTreehugger Robot </module> 55*4711b67fSTreehugger Robot <module name="JavadocStyle" > 56*4711b67fSTreehugger Robot <property name="scope" value="protected" /> 57*4711b67fSTreehugger Robot </module> 58*4711b67fSTreehugger Robot 59*4711b67fSTreehugger Robot 60*4711b67fSTreehugger Robot <!-- Checks for Naming Conventions. --> 61*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_naming.html --> 62*4711b67fSTreehugger Robot <module name="ConstantName" /> 63*4711b67fSTreehugger Robot <module name="LocalFinalVariableName" /> 64*4711b67fSTreehugger Robot <module name="LocalVariableName" /> 65*4711b67fSTreehugger Robot <module name="MemberName" /> 66*4711b67fSTreehugger Robot <module name="MethodName" /> 67*4711b67fSTreehugger Robot <module name="PackageName" /> 68*4711b67fSTreehugger Robot <module name="ParameterName" /> 69*4711b67fSTreehugger Robot <module name="StaticVariableName" /> 70*4711b67fSTreehugger Robot <module name="TypeName" /> 71*4711b67fSTreehugger Robot 72*4711b67fSTreehugger Robot 73*4711b67fSTreehugger Robot <!-- Checks for imports --> 74*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_import.html --> 75*4711b67fSTreehugger Robot <module name="AvoidStarImport" /> 76*4711b67fSTreehugger Robot <module name="IllegalImport" /> <!-- defaults to sun.* packages --> 77*4711b67fSTreehugger Robot <module name="RedundantImport" /> 78*4711b67fSTreehugger Robot <module name="UnusedImports" /> 79*4711b67fSTreehugger Robot 80*4711b67fSTreehugger Robot 81*4711b67fSTreehugger Robot <!-- Checks for Size Violations. --> 82*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_sizes.html --> 83*4711b67fSTreehugger Robot <module name="LineLength"> 84*4711b67fSTreehugger Robot <property name="max" value="180" /> 85*4711b67fSTreehugger Robot </module> 86*4711b67fSTreehugger Robot <module name="MethodLength" /> 87*4711b67fSTreehugger Robot <module name="ParameterNumber" /> 88*4711b67fSTreehugger Robot 89*4711b67fSTreehugger Robot 90*4711b67fSTreehugger Robot <!-- Checks for whitespace --> 91*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_whitespace.html --> 92*4711b67fSTreehugger Robot <module name="EmptyForIteratorPad" /> 93*4711b67fSTreehugger Robot <module name="GenericWhitespace" /> 94*4711b67fSTreehugger Robot <module name="MethodParamPad" /> 95*4711b67fSTreehugger Robot <module name="NoWhitespaceAfter" /> 96*4711b67fSTreehugger Robot <module name="NoWhitespaceBefore" /> 97*4711b67fSTreehugger Robot <module name="OperatorWrap" /> 98*4711b67fSTreehugger Robot <module name="ParenPad" /> 99*4711b67fSTreehugger Robot <module name="TypecastParenPad" /> 100*4711b67fSTreehugger Robot <module name="WhitespaceAfter" /> 101*4711b67fSTreehugger Robot <module name="WhitespaceAround" /> 102*4711b67fSTreehugger Robot 103*4711b67fSTreehugger Robot 104*4711b67fSTreehugger Robot <!-- Modifier Checks --> 105*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_modifiers.html --> 106*4711b67fSTreehugger Robot <module name="ModifierOrder" /> 107*4711b67fSTreehugger Robot <module name="RedundantModifier" /> 108*4711b67fSTreehugger Robot 109*4711b67fSTreehugger Robot 110*4711b67fSTreehugger Robot <!-- Checks for blocks. You know, those {}'s --> 111*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_blocks.html --> 112*4711b67fSTreehugger Robot <module name="AvoidNestedBlocks" /> 113*4711b67fSTreehugger Robot <module name="EmptyBlock" /> 114*4711b67fSTreehugger Robot <module name="LeftCurly" /> 115*4711b67fSTreehugger Robot <module name="NeedBraces" /> 116*4711b67fSTreehugger Robot <module name="RightCurly" /> 117*4711b67fSTreehugger Robot 118*4711b67fSTreehugger Robot 119*4711b67fSTreehugger Robot <!-- Checks for common coding problems --> 120*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_coding.html --> 121*4711b67fSTreehugger Robot <!-- <module name="AvoidInlineConditionals" /> i think simple cases are ok, not generally bad --> 122*4711b67fSTreehugger Robot <module name="EmptyStatement" /> 123*4711b67fSTreehugger Robot <module name="EqualsHashCode" /> 124*4711b67fSTreehugger Robot <module name="HiddenField"> 125*4711b67fSTreehugger Robot <property name="ignoreSetter" value="true" /> 126*4711b67fSTreehugger Robot <property name="ignoreConstructorParameter" value="true" /> 127*4711b67fSTreehugger Robot </module> 128*4711b67fSTreehugger Robot <module name="IllegalInstantiation" /> 129*4711b67fSTreehugger Robot <module name="InnerAssignment" /> 130*4711b67fSTreehugger Robot 131*4711b67fSTreehugger Robot <module name="MissingSwitchDefault" /> 132*4711b67fSTreehugger Robot <module name="RedundantThrows"> 133*4711b67fSTreehugger Robot <property name="suppressLoadErrors" value="true" /> 134*4711b67fSTreehugger Robot </module> 135*4711b67fSTreehugger Robot <module name="SimplifyBooleanExpression" /> 136*4711b67fSTreehugger Robot <module name="SimplifyBooleanReturn" /> 137*4711b67fSTreehugger Robot 138*4711b67fSTreehugger Robot <!-- Checks for class design --> 139*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_design.html --> 140*4711b67fSTreehugger Robot <!-- <module name="DesignForExtension" /> part of this would be good but it goes to much to the core --> 141*4711b67fSTreehugger Robot <module name="FinalClass" /> 142*4711b67fSTreehugger Robot <module name="HideUtilityClassConstructor" /> 143*4711b67fSTreehugger Robot <module name="InterfaceIsType" /> 144*4711b67fSTreehugger Robot <module name="VisibilityModifier"> 145*4711b67fSTreehugger Robot <property name="protectedAllowed" value="true" /> 146*4711b67fSTreehugger Robot </module> 147*4711b67fSTreehugger Robot 148*4711b67fSTreehugger Robot 149*4711b67fSTreehugger Robot <!-- Miscellaneous other checks. --> 150*4711b67fSTreehugger Robot <!-- See http://checkstyle.sf.net/config_misc.html --> 151*4711b67fSTreehugger Robot <module name="ArrayTypeStyle" /> 152*4711b67fSTreehugger Robot <!-- <module name="TodoComment" /> is better done by the taglist plugin --> 153*4711b67fSTreehugger Robot <module name="UpperEll" /> 154*4711b67fSTreehugger Robot 155*4711b67fSTreehugger Robot </module> 156*4711b67fSTreehugger Robot 157*4711b67fSTreehugger Robot</module> 158