summaryrefslogtreecommitdiffstats
path: root/checkstyle
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2016-04-27 13:55:20 +0300
committerelmot <elmot@vaadin.com>2016-04-27 14:09:56 +0300
commit4410535d9accffe4cb3180359010f39d00453039 (patch)
tree52ab1e948bf8c8fa2542620b7504ca14b4d85d8c /checkstyle
parent882fc8c78680eedec3a1802cc309339662a4281d (diff)
downloadvaadin-framework-4410535d9accffe4cb3180359010f39d00453039.tar.gz
vaadin-framework-4410535d9accffe4cb3180359010f39d00453039.zip
Move checkstyles plugin to actual modules
Change-Id: I2d87a1aeba8ffc8cc15909c32a0c9d10b3ada9a7
Diffstat (limited to 'checkstyle')
-rw-r--r--checkstyle/header15
-rw-r--r--checkstyle/import-control.xml9
-rw-r--r--checkstyle/vaadin-checkstyle.xml275
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>