<?xml version="1.0"?> <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> <!-- Checkstyle configuration for Vaadin that is based on the the sun coding conventions from: - the Java Language Specification at http://java.sun.com/docs/books/jls/second_edition/html/index.html - the 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 - some best practices Vaadin specific changes: - Removed DoubleCheckedLocking because it doesn't work in CheckStyle 5.6 -> http://www.smartics.eu/bugzilla/show_bug.cgi?id=593 - Modified HiddenField Check to allow field shadowing on Constructor, Setter and Abstract Method parameters. - Modified StaticVariableName Check format for PUBLIC variables from ^[a-z][a-zA-Z0-9]*$ to ^[A-Z_]*$ . Others (protected, package and private) still have ^[a-z][a-zA-Z0-9]*$ - Modified the severity of the following Checks from error to info: • JavadocPackage (checks for package-info.java) - Modified the severity of the following Checks from error to warning and the scope from private to protected: • JavadocType (class and interface declarations) • JavadocMethod (method declarations) • JavadocVariable (variable declarations) • JavadocStyle (Javadocs are "well formed") - Modified the severity of the following Checks from error to warning because not so critical: • LineLenght (the default value is 80 which is also used in formatter, but i.e. member declarations are not wrapped onto next line) • RedundantModifier (i.e. using public in interface method declarations) • RedundantThrows (causes unnecessary fails when can't get class information) • MethodLength (default maxLength is 150) • ParameterNumber (default maxLength is 7) • EmptyBlock (if-else statements have some blocks if x -> no action) • UpperEll (should use L instead of l with long) • TodoComment (not serious) • WhitespaceAroundCheck (expects whitespace around some operators) NOTE other checks are also warning but should be error. - Modified the severity of the following Checks from error to ignore: • FinalParameters (method parameters can be modified) • VisibilityModifier (i.e. in state classes public members are allowed) • DesignForExtension (this design is not used) • FileLength (bad design to have files with over 2000 lines? see VScrollTable) • MagicNumber (MagicNumbers like error codes are used, but could just ignore this in some classes) • AvoidInlineConditionals ( you like these ? ignore : error ) --> <module name="Checker"> <!-- 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 <property name="basedir" value="${basedir}"/> --> <!-- Checks that a package-info.java file exists for each package. --> <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage --> <!-- <module name="JavadocPackage"> <property name="severity" value="info" /> </module> --> <!-- Checks whether files end with a new line. --> <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> <module name="NewlineAtEndOfFile"> <property name="severity" value="warning" /> </module> <!-- Checks that property files contain the same keys. --> <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> <module name="Translation"> <property name="severity" value="warning" /> </module> <!-- Checks for Size Violations. --> <!-- See http://checkstyle.sf.net/config_sizes.html --> <module name="FileLength"> <property name="severity" value="ignore" /> </module> <!-- Checks for whitespace --> <!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="FileTabCharacter"> <property name="severity" value="warning" /> </module> <!-- Checks for Headers --> <!-- See http://checkstyle.sf.net/config_header.html --> <module name="Header"> <property name="headerFile" value="${checkstyle.header.file}" /> <property name="fileExtensions" value="java" /> <!-- ignore empty lines that may or may not have trailing white-space --> <property name="ignoreLines" value="3, 7, 9"/> </module> <module name="TreeWalker"> <property name="severity" value="warning" /> <!-- Custom checks to check serializable, neither is working because checkstyle can't load the classes. <module name="com.vaadin.checks.CheckClassesSerializable"/> <module name="com.vaadin.checks.IsSerializableClassCheck"/> --> <!-- Checks for Javadoc comments. --> <!-- See http://checkstyle.sf.net/config_javadoc.html --> <module name="JavadocMethod"> <property name="severity" value="warning" /> <property name="scope" value="protected" /> </module> <module name="JavadocType"> <property name="severity" value="warning" /> <property name="scope" value="protected" /> </module> <module name="JavadocVariable"> <property name="severity" value="warning" /> <property name="scope" value="protected" /> </module> <module name="JavadocStyle"> <property name="severity" value="warning" /> <property name="scope" value="protected" /> </module> <!-- Checks for Naming Conventions. --> <!-- See http://checkstyle.sf.net/config_naming.html --> <module name="ConstantName" /> <module name="LocalFinalVariableName" /> <module name="LocalVariableName" /> <module name="MemberName" /> <module name="MethodName" /> <module name="PackageName" /> <module name="ParameterName" /> <module name="StaticVariableName"> <property name="applyToPublic" value="false" /> </module> <module name="StaticVariableName"> <property name="applyToPublic" value="true" /> <property name="applyToProtected" value="false" /> <property name="applyToPackage" value="false" /> <property name="applyToPrivate" value="false" /> <property name="format" value="^[A-Z_]*$" /> </module> <module name="TypeName" /> <!-- Checks for imports --> <!-- See http://checkstyle.sf.net/config_import.html --> <module name="AvoidStarImport" /> <module name="IllegalImport" /> <!-- defaults to sun.* packages --> <module name="RedundantImport" /> <module name="UnusedImports" /> <!-- <module name="ImportControl"> <property name="file" value="${checkstyle.importControl.file}" /> <property name="severity" value="error" /> </module> --> <!-- Checks for Size Violations. --> <!-- See http://checkstyle.sf.net/config_sizes.html --> <!-- <module name="LineLength"> <property name="severity" value="warning" /> </module> --> <module name="MethodLength"> <property name="severity" value="warning" /> </module> <module name="ParameterNumber"> <property name="severity" value="warning" /> </module> <!-- Checks for whitespace --> <!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="EmptyForIteratorPad" /> <module name="GenericWhitespace" /> <module name="MethodParamPad" /> <module name="NoWhitespaceAfter"> <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"/> </module> <module name="NoWhitespaceBefore" /> <module name="OperatorWrap" /> <module name="ParenPad" /> <module name="TypecastParenPad" /> <module name="WhitespaceAfter" /> <module name="WhitespaceAround" /> <!-- Check for trailing white space in Java code --> <module name="RegexpSinglelineJava"> <!-- Ensure no whitespace at the end of line, excluding comments --> <property name="format" value="\s+$" /> <property name="minimum" value="0" /> <property name="maximum" value="0" /> <property name="message" value="Java code has trailing white space." /> <property name="severity" value="warning" /> <property name="ignoreComments" value="true" /> </module> <!-- Modifier Checks --> <!-- See http://checkstyle.sf.net/config_modifiers.html --> <module name="ModifierOrder" /> <!-- <module name="RedundantModifier"> <property name="severity" value="warning" /> </module> --> <!-- Checks for blocks. You know, those {}'s --> <!-- See http://checkstyle.sf.net/config_blocks.html --> <module name="AvoidNestedBlocks" /> <module name="EmptyBlock"> <property name="severity" value="warning" /> </module> <module name="LeftCurly" /> <module name="NeedBraces" /> <module name="RightCurly" /> <!-- Checks for common coding problems --> <!-- See http://checkstyle.sf.net/config_coding.html --> <module name="AvoidInlineConditionals"> <property name="severity" value="ignore" /> </module> <module name="EmptyStatement" /> <module name="EqualsHashCode" /> <!-- <module name="HiddenField"> <property name="ignoreConstructorParameter" value="true" /> <property name="ignoreSetter" value="true" /> <property name="ignoreAbstractMethods" value="true" /> </module> --> <module name="IllegalInstantiation" /> <module name="InnerAssignment" /> <module name="MagicNumber"> <property name="severity" value="ignore" /> </module> <module name="MissingSwitchDefault" /> <module name="SimplifyBooleanExpression" /> <module name="SimplifyBooleanReturn" /> <!-- Checks for class design --> <!-- See http://checkstyle.sf.net/config_design.html --> <module name="DesignForExtension"> <property name="severity" value="ignore" /> </module> <module name="HideUtilityClassConstructor" /> <module name="InterfaceIsType" /> <module name="VisibilityModifier"> <property name="severity" value="ignore" /> </module> <!-- Miscellaneous other checks. --> <!-- See http://checkstyle.sf.net/config_misc.html --> <module name="ArrayTypeStyle" /> <module name="FinalParameters"> <property name="severity" value="ignore" /> </module> <module name="TodoComment"> <property name="severity" value="warning" /> </module> <module name="UpperEll"> <property name="severity" value="warning" /> </module> <!-- Check for System.err/out.println --> <module name="RegexpSinglelineJava"> <property name="format" value="System\.out\.println" /> </module> <module name="RegexpSinglelineJava"> <property name="format" value="System\.err\.println" /> </module> </module> <module name="SuppressionFilter"> <property name="file" value="${config_loc}/suppressions.xml" /> </module> </module>