Repository: incubator-reef Updated Branches: refs/heads/master 59489156c -> a89fb6859
[REEF-520] Enforce JavadocType and TodoComment checkstyle in reef-annotations This enforces JavadocType and TodoComment checks in reef-annotations subproject to avoid regressions during further changes. JIRA: [REEF-520](https://issues.apache.org/jira/browse/REEF-520) Pull Request: This closes #372 Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/a89fb685 Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/a89fb685 Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/a89fb685 Branch: refs/heads/master Commit: a89fb6859f8830d2628e9632332adcf461f8bd9e Parents: 5948915 Author: Mariia Mykhailova <[email protected]> Authored: Fri Aug 14 15:57:23 2015 -0700 Committer: Markus Weimer <[email protected]> Committed: Fri Aug 14 17:10:34 2015 -0700 ---------------------------------------------------------------------- lang/java/reef-annotations/pom.xml | 14 ++ .../src/main/resources/checkstyle-strict.xml | 216 +++++++++++++++++++ 2 files changed, 230 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/a89fb685/lang/java/reef-annotations/pom.xml ---------------------------------------------------------------------- diff --git a/lang/java/reef-annotations/pom.xml b/lang/java/reef-annotations/pom.xml index 88cfdb1..0961e98 100644 --- a/lang/java/reef-annotations/pom.xml +++ b/lang/java/reef-annotations/pom.xml @@ -27,6 +27,20 @@ under the License. <relativePath>../../..</relativePath> </parent> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <configLocation>lang/java/reef-common/src/main/resources/checkstyle-strict.xml</configLocation> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + <artifactId>reef-annotations</artifactId> <name>REEF Annotations</name> </project> http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/a89fb685/lang/java/reef-common/src/main/resources/checkstyle-strict.xml ---------------------------------------------------------------------- diff --git a/lang/java/reef-common/src/main/resources/checkstyle-strict.xml b/lang/java/reef-common/src/main/resources/checkstyle-strict.xml new file mode 100644 index 0000000..1495405 --- /dev/null +++ b/lang/java/reef-common/src/main/resources/checkstyle-strict.xml @@ -0,0 +1,216 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC + "-//Puppy Crawl//DTD Check Configuration 1.2//EN" + "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> + +<!-- + 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 configuration is based on the one for Hadoop that is based on the + sun_checks.xml file that is bundled with Checkstyle and includes checks + for: + + - 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 + + Checkstyle is very configurable. Be sure to read the documentation at + http://checkstyle.sf.net (or in your downloaded distribution). + + Most Checks are configurable, 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. + +--> + +<module name="Checker"> + <!-- By default violations of all checks are errors --> + <!-- Exceptions are configured for violations which are not cleaned up yet --> + <!-- The goal is to have no exceptions --> + <property name="severity" value="error"/> + + <!-- Checks that a package.html file exists for each package. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml --> + <module name="JavadocPackage"/> + + <!-- Checks whether files end with a new line. --> + <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> + <!-- module name="NewlineAtEndOfFile"/--> + + <!-- Checks that property files contain the same keys. --> + <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> + <module name="Translation"/> + + <module name="FileLength"/> + <module name="FileTabCharacter"/> + + <!-- not a check --> + <module name="SuppressWarningsFilter"/> + + <module name="TreeWalker"> + <!-- not a check --> + <module name="SuppressWarningsHolder"/> + + <!-- Checks for Javadoc comments. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html --> + <module name="JavadocType"> + <property name="scope" value="public"/> + <property name="allowMissingParamTags" value="true"/> + </module> + <module name="JavadocStyle"/> + + <!-- 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"/> + <module name="TypeName"/> + + + <!-- Checks for Headers --> + <!-- See http://checkstyle.sf.net/config_header.html --> + <!-- <module name="Header"> --> + <!-- The follow property value demonstrates the ability --> + <!-- to have access to ANT properties. In this case it uses --> + <!-- the ${basedir} property to allow Checkstyle to be run --> + <!-- from any directory within a project. See property --> + <!-- expansion, --> + <!-- http://checkstyle.sf.net/config.html#properties --> + <!-- <property --> + <!-- name="headerFile" --> + <!-- value="${basedir}/java.header"/> --> + <!-- </module> --> + + <!-- Following interprets the header file as regular expressions. --> + <!-- <module name="RegexpHeader"/> --> + + + <!-- Checks for imports --> + <!-- See http://checkstyle.sf.net/config_import.html --> + <module name="IllegalImport"/> + <!-- defaults to sun.* packages --> + <module name="RedundantImport"/> + <module name="UnusedImports"/> + + + <!-- Checks for Size Violations. --> + <!-- See http://checkstyle.sf.net/config_sizes.html --> + <module name="LineLength"> + <property name="ignorePattern" value="^import"/> + <property name="max" value="120"/> + </module> + <module name="MethodLength"/> + <module name="ParameterNumber"> + <property name="max" value="7"/> + <property name="tokens" value="METHOD_DEF"/> + <property name="severity" value="warning"/> + </module> + + <!-- Checks for whitespace --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="EmptyForIteratorPad"/> + <module name="MethodParamPad"/> + <module name="NoWhitespaceAfter"/> + <module name="NoWhitespaceBefore"/> + <module name="ParenPad"/> + <module name="TypecastParenPad"/> + <module name="WhitespaceAfter"> + <property name="tokens" value="COMMA, SEMI"/> + </module> + + + <!-- Modifier Checks --> + <!-- See http://checkstyle.sf.net/config_modifiers.html --> + <module name="ModifierOrder"/> + <module name="RedundantModifier"/> + + + <!-- Checks for blocks. You know, those {}'s --> + <!-- See http://checkstyle.sf.net/config_blocks.html --> + <module name="AvoidNestedBlocks"> + <property name="allowInSwitchCase" value="true"/> + </module> + <module name="EmptyBlock"> + <property name="option" value="text"/> + </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"/--> + <module name="EmptyStatement"/> + <module name="EqualsHashCode"/> + <module name="HiddenField"> + <property name="ignoreConstructorParameter" value="true"/> + <property name="ignoreSetter" value="true"/> + <property name="setterCanReturnItsClass" value="true"/> + </module> + <module name="IllegalInstantiation"/> + <module name="InnerAssignment"/> + <module name="MissingSwitchDefault"/> + <module name="SimplifyBooleanExpression"/> + <module name="SimplifyBooleanReturn"/> + <module name="FinalParameters"/> + + <!-- Checks for class design --> + <!-- See http://checkstyle.sf.net/config_design.html --> + <module name="FinalClass"/> + <module name="HideUtilityClassConstructor"/> + <module name="InterfaceIsType"/> + <module name="VisibilityModifier"> + <property name="protectedAllowed" value="true"/> + </module> + + + <!-- Miscellaneous other checks. --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <module name="ArrayTypeStyle"/> + <module name="Indentation"> + <property name="basicOffset" value="2"/> + <property name="caseIndent" value="0"/> + </module> + <module name="TodoComment"> + <property name="format" value="TODO[^\[][^J][^I][^R][^A]"/> + </module> + <module name="TodoComment"> + <property name="severity" value="info"/> + <property name="format" value="TODO\[JIRA"/> + </module> + <module name="UpperEll"/> + </module> + +</module> +
