diff options
Diffstat (limited to 'checkstyle')
-rw-r--r-- | checkstyle/header | 15 | ||||
-rw-r--r-- | checkstyle/import-control.xml | 9 | ||||
-rw-r--r-- | checkstyle/vaadin-checkstyle.xml | 275 |
3 files changed, 299 insertions, 0 deletions
diff --git a/checkstyle/header b/checkstyle/header new file mode 100644 index 0000000000..a1063268ac --- /dev/null +++ b/checkstyle/header @@ -0,0 +1,15 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ diff --git a/checkstyle/import-control.xml b/checkstyle/import-control.xml new file mode 100644 index 0000000000..076dbd8a22 --- /dev/null +++ b/checkstyle/import-control.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<!DOCTYPE import-control PUBLIC + "-//Puppy Crawl//DTD Import Control 1.1//EN" + "http://www.puppycrawl.com/dtds/import_control_1_1.dtd"> + +<import-control pkg="com.vaadin"> + <allow pkg=".*" regex="true" /> + <disallow class="com.google.gwt.user.client.Element" /> +</import-control>
\ No newline at end of file diff --git a/checkstyle/vaadin-checkstyle.xml b/checkstyle/vaadin-checkstyle.xml new file mode 100644 index 0000000000..eb6c625067 --- /dev/null +++ b/checkstyle/vaadin-checkstyle.xml @@ -0,0 +1,275 @@ +<?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) + • JavadocType (class and interface declarations, scope private) + • JavadocMethod (method declarations, scope private) + • JavadocVariable (variable declarations, scope private) + • 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> + <module name="RegexpMultiline"> + <property name="message" + value="File contains carriage return (Windows newlines)" /> + <property name="format" value="\r" /> + </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="info" /> + </module> + <module name="JavadocType"> + <property name="severity" value="info" /> + </module> + <module name="JavadocVariable"> + <property name="severity" value="info" /> + </module> + <module name="JavadocStyle"> + <property name="severity" value="info" /> + </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,TYPECAST"/> + </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="FinalClass" /> + <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> |