| <?xml version="1.0"?> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You 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. |
| --> |
| |
| <!-- |
| This version of checkstyle is based on the Hadoop and common-math |
| checkstyle configurations. It is a best effort attempt to try to match |
| the CODE_CONVENTIONS and Oracle "Code Conventions for the Java |
| Programming Language". See the following link: |
| |
| http://www.oracle.com/technetwork/java/codeconvtoc-136057.html |
| |
| The documentation for checkstyle is available at |
| |
| http://checkstyle.sourceforge.net |
| --> |
| |
| <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.1//EN" "http://www.puppycrawl.com/dtds/configuration_1_1.dtd"> |
| |
| <!-- Apache giraph customization of default Checkstyle behavior --> |
| <module name="Checker"> |
| <property name="localeLanguage" value="en"/> |
| |
| <!-- Checks for headers --> |
| <!-- See http://checkstyle.sf.net/config_header.html --> |
| <!-- Verify that EVERY source file has the appropriate license --> |
| <module name="Header"> |
| <property name="headerFile" value="${checkstyle.header.file}"/> |
| <property name="fileExtensions" value="java"/> |
| </module> |
| |
| <!-- Checks for Javadoc comments (checker). --> |
| <!-- See http://checkstyle.sf.net/config_javadoc.html --> |
| <!-- Require package javadoc --> |
| <module name="JavadocPackage"/> |
| |
| <!-- Miscellaneous other checks (checker). --> |
| <!-- See http://checkstyle.sf.net/config_misc.html --> |
| <!-- Require files to end with newline characters --> |
| <module name="NewlineAtEndOfFile"/> |
| |
| <!-- Checks for whitespace (tree walker) --> |
| <!-- See http://checkstyle.sf.net/config_whitespace.html --> |
| <!-- No tabs allowed! --> |
| <module name="FileTabCharacter"/> |
| |
| <module name="TreeWalker"> |
| <property name="cacheFile" value="target/checkstyle-cachefile"/> |
| |
| <!-- Checks for blocks. You know, those {}'s --> |
| <!-- See http://checkstyle.sf.net/config_blocks.html --> |
| <!-- No empty blocks (i.e. catch) --> |
| <module name="EmptyBlock"/> |
| <module name="AvoidNestedBlocks"/> |
| <!-- No if/else/do/for/while without braces --> |
| <module name="NeedBraces"/> |
| <module name="RightCurly"/> |
| |
| <!-- Checks for class design --> |
| <!-- See http://checkstyle.sf.net/config_design.html --> |
| <!-- Utility class should not be instantiated, they must have a |
| private constructor --> |
| <module name="HideUtilityClassConstructor"/> |
| <!-- Interfaces must be types (not just constants) --> |
| <module name="InterfaceIsType"/> |
| <!-- No public fields --> |
| <module name="VisibilityModifier"> |
| <property name="protectedAllowed" value="true"/> |
| <property name="publicMemberPattern" value="^$"/> |
| </module> |
| |
| <!-- Checks for common coding problems --> |
| <!-- See http://checkstyle.sf.net/config_coding.html --> |
| <module name="EmptyStatement"/> |
| <!-- Require hash code override when equals is --> |
| <module name="EqualsHashCode"/> |
| <!-- Method parameters and local variables should not hide |
| fields, except in constructors and setters --> |
| <module name="HiddenField"> |
| <property name="ignoreConstructorParameter" value="true" /> |
| <property name="ignoreSetter" value="true" /> |
| <property name="tokens" value="VARIABLE_DEF"/> |
| </module> |
| <!-- Disallow unnecessary instantiation of Boolean, String --> |
| <module name="IllegalInstantiation"> |
| <property name="classes" value="java.lang.Boolean, java.lang.String"/> |
| </module> |
| <module name="InnerAssignment"/> |
| <!-- Switch statements should be complete and with independent cases --> |
| <module name="FallThrough" /> |
| <module name="MissingSwitchDefault" /> |
| <module name="SimplifyBooleanExpression"/> |
| <module name="SimplifyBooleanReturn"/> |
| <!-- Only one statment per line allowed --> |
| <module name="OneStatementPerLine"/> |
| <!-- Use a consistent way to put declarations --> |
| <module name="DeclarationOrder" /> |
| <!-- Don't add up parentheses when they are not required --> |
| <module name="UnnecessaryParentheses" /> |
| <!-- Don't use too widespread catch (Exception, Throwable, |
| RuntimeException) --> |
| <module name="IllegalCatch" /> |
| <!-- Don't use = or != for string comparisons --> |
| <module name="StringLiteralEquality" /> |
| <!-- Don't declare multiple variables in the same statement --> |
| <module name="MultipleVariableDeclarations" /> |
| <!-- String literals more than one character long should not be |
| repeated several times --> |
| <!-- the "unchecked" string is also accepted to allow |
| @SuppressWarnings("unchecked") --> |
| <!-- Disabling for now until we have a better ignoreStringsRegexp --> |
| <!-- |
| <module name="MultipleStringLiterals" > |
| <property name="ignoreStringsRegexp" value='^(("")|(".")|("unchecked"))$'/> |
| </module> |
| --> |
| |
| <!-- Checks for imports --> |
| <!-- See http://checkstyle.sf.net/config_import.html --> |
| <module name="RedundantImport"/> |
| <!-- Import should be explicit, really needed and only from pure |
| java packages --> |
| <module name="AvoidStarImport" /> |
| <module name="UnusedImports" /> |
| <module name="IllegalImport" /> |
| |
| <!-- Checks for Javadoc comments (tree walker). --> |
| <!-- See http://checkstyle.sf.net/config_javadoc.html --> |
| <!-- Javadoc must be formatted correctly --> |
| <module name="JavadocStyle"> |
| <property name="checkFirstSentence" value="false"/> |
| </module> |
| <!-- Must have class / interface header comments --> |
| <module name="JavadocType"/> |
| <!-- Require method javadocs, allow undeclared RTE, allow missing |
| javadoc on getters and setters --> |
| <module name="JavadocMethod"> |
| <property name="allowUndeclaredRTE" value="true"/> |
| <property name="allowMissingThrowsTags" value="true"/> |
| <property name="allowMissingPropertyJavadoc" value="true"/> |
| </module> |
| <!-- Require field javadoc --> |
| <module name="JavadocVariable"/> |
| |
| <!-- Miscellaneous other checks (tree walker). --> |
| <!-- See http://checkstyle.sf.net/config_misc.html --> |
| <!-- Java style arrays --> |
| <module name="ArrayTypeStyle"/> |
| <!-- Indentation --> |
| <module name="Indentation"> |
| <property name="basicOffset" value="2"/> |
| <property name="braceAdjustment" value="0"/> |
| <property name="caseIndent" value="0"/> |
| <property name="throwsIndent" value="2"/> |
| <property name="lineWrappingIndentation" value="0"/> |
| <property name="arrayInitIndent" value="2"/> |
| </module> |
| <!-- Turn this on to see what needs to be done |
| <module name="TodoComment"/> |
| --> |
| <module name="UpperEll"/> |
| |
| <!-- Modifier Checks --> |
| <!-- See http://checkstyle.sf.net/config_modifiers.html --> |
| <!-- Use a consistent way to put modifiers --> |
| <module name="ModifierOrder"/> |
| <module name="RedundantModifier"/> |
| |
| <!-- Checks for Naming Conventions. --> |
| <!-- See http://checkstyle.sf.net/config_naming.html --> |
| <!-- Constant names should obey the traditional all uppercase |
| naming convention --> |
| <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="format" value="^[A-Z0-9_]*$"/> |
| </module> |
| <module name="TypeName"/> |
| |
| <!-- Checks for regexp expressions. --> |
| <!-- See http://checkstyle.sf.net/config_regexp.html --> |
| <!-- No trailing whitespace --> |
| <module name="Regexp"> |
| <property name="format" value="[ \t]+$"/> |
| <property name="illegalPattern" value="true"/> |
| <property name="message" value="Trailing whitespace"/> |
| </module> |
| <!-- No System.out.println() statements --> |
| <module name="Regexp"> |
| <!-- No sysouts --> |
| <property name="format" value="System\.out\.println"/> |
| <property name="illegalPattern" value="true"/> |
| </module> |
| <!-- Authors should be in pom.xml file --> |
| <module name="Regexp"> |
| <property name="format" value="@author"/> |
| <property name="illegalPattern" value="true"/> |
| <property name="message" value="developers names should be in pom file"/> |
| </module> |
| |
| <!-- Checks for Size Violations. --> |
| <!-- See http://checkstyle.sf.net/config_sizes.html --> |
| <!-- Lines cannot exceed 80 chars --> |
| <module name="LineLength"> |
| <property name="max" value="80"/> |
| <property name="ignorePattern" value="^import"/> |
| </module> |
| <!-- Over time, we will revised this down --> |
| <module name="MethodLength"> |
| <property name="max" value="200"/> |
| </module> |
| <module name="ParameterNumber"> |
| <property name="max" value="8"/> |
| </module> |
| |
| <!-- Checks for whitespace (tree walker) --> |
| <!-- See http://checkstyle.sf.net/config_whitespace.html --> |
| <module name="EmptyForIteratorPad"/> |
| <!-- Spacing around methods --> |
| <module name="MethodParamPad"> |
| <property name="option" value="nospace"/> |
| <property name="allowLineBreaks" value="true"/> |
| </module> |
| <!-- No whitespace before a token --> |
| <module name="NoWhitespaceBefore"/> |
| <!-- Whitespace after tokens is required --> |
| <module name="WhitespaceAfter"/> |
| <!-- Whitespace around tokens is required --> |
| <module name="WhitespaceAround"/> |
| <module name="ParenPad"/> |
| <module name="TypecastParenPad"/> |
| <!-- No extra whitespace around types --> |
| <module name="GenericWhitespace"/> |
| <!-- Operator must be at end of wrapped line --> |
| <module name="OperatorWrap"> |
| <property name="option" value="eol"/> |
| </module> |
| |
| <!-- Required for SuppressionCommentFilter below --> |
| <module name="FileContentsHolder"/> |
| </module> |
| |
| <!-- Setup special comments to suppress specific checks from source files --> |
| <module name="SuppressionCommentFilter"> |
| <property name="offCommentFormat" value="CHECKSTYLE\: stop ([\w\|]+)"/> |
| <property name="onCommentFormat" value="CHECKSTYLE\: resume ([\w\|]+)"/> |
| <property name="checkFormat" value="$1"/> |
| </module> |
| </module> |
| |