| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0 which is available at |
| http://www.eclipse.org/legal/epl-2.0, |
| or the Eclipse Distribution License v. 1.0 which is available at |
| http://www.eclipse.org/org/documents/edl-v10.php. |
| |
| SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| |
| --> |
| |
| <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> |
| <!-- |
| This file is based on maven-checkstyle-plugin config/sun_checks.xml file. |
| Checkstyle configuration that checks the coding conventions based on: |
| - 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 custom relaxations of the rules above & 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"> |
| |
| <!-- exclude module-info.java check - checkstyle can't process it --> |
| <module name="BeforeExecutionExclusionFileFilter"> |
| <property name="fileNamePattern" value="module\-info\.java$"/> |
| </module> |
| |
| <!-- |
| 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}"/> |
| --> |
| <property name="charset" value="UTF-8"/> |
| |
| <!-- Checks that each Java package has a Javadoc file used for commenting. --> |
| <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage --> |
| <!-- <module name="JavadocPackage" />--> |
| |
| <!-- Checks to see if a file contains a tab character. --> |
| <module name="FileTabCharacter"> |
| <property name="eachLine" value="true"/> |
| </module> |
| |
| <!-- |
| Making sure we do not have @author tags in javadocs |
| There is a list of developers in pom.xml that is sufficient for our needs. |
| See https://github.com/checkstyle/checkstyle/issues/5339 |
| --> |
| <module name="RegexpSingleline"> |
| <!-- The '.' in id is needed, otherwise ArrayIndexOutOfBounds happens --> |
| <property name="id" value="Javadoc.javadocNoAuthor"/> |
| <property name="format" value="^\s*\*\s*@author"/> |
| <property name="minimum" value="0"/> |
| <property name="maximum" value="0"/> |
| <property name="message" value="Javadoc has illegal ''author'' tag."/> |
| <property name="fileExtensions" value="java"/> |
| </module> |
| |
| <!-- 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="SuppressWarningsFilter"/> |
| <module name="TreeWalker"> |
| <module name="SuppressionCommentFilter"> |
| <property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/> |
| <property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/> |
| <property name="checkFormat" value="$1"/> |
| </module> |
| <module name="SuppressWarningsHolder"/> |
| |
| <!-- Checks for Javadoc comments. --> |
| <!-- See http://checkstyle.sf.net/config_javadoc.html --> |
| <module name="JavadocMethod"> |
| <property name="scope" value="protected"/> |
| <property name="allowMissingReturnTag" value="true"/> |
| <property name="allowMissingParamTags" value="true"/> |
| </module> |
| <module name="JavadocType"> |
| <property name="scope" value="protected"/> |
| </module> |
| <module name="JavadocVariable"> |
| <property name="scope" value="protected"/> |
| </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 imports --> |
| <!-- See http://checkstyle.sf.net/config_import.html --> |
| <module name="AvoidStarImport"/> |
| <module name="UnusedImports"/> |
| <module name="IllegalImport"/> <!-- defaults to sun.* packages --> |
| <module name="RedundantImport"/> |
| <module name="ImportOrder"> |
| <property name="groups" value="java, jakarta, javax, org.eclipse.yasson"/> |
| <property name="ordered" value="true"/> |
| <property name="separated" value="true"/> |
| <property name="option" value="bottom"/> |
| </module> |
| |
| <!-- Checks for blocks. You know, those {}'s --> |
| <!-- See http://checkstyle.sf.net/config_blocks.html --> |
| <module name="AvoidNestedBlocks"/> |
| <module name="EmptyBlock"> |
| <property name="option" value="TEXT"/> |
| <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> |
| </module> |
| <module name="NeedBraces"> |
| <property name="allowSingleLineStatement" value="true"/> |
| </module> |
| <module name="LeftCurly"/> |
| <module name="RightCurly"/> |
| <module name="RightCurly"> |
| <property name="option" value="alone"/> |
| <property name="tokens" |
| value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/> |
| </module> |
| |
| <!-- Indentation --> |
| <property name="tabWidth" value="4"/> |
| |
| <!-- Wrapping Lines --> |
| <module name="NoLineWrap"/> |
| <module name="SeparatorWrap"> |
| <property name="tokens" value="DOT"/> |
| <property name="option" value="nl"/> |
| </module> |
| <module name="SeparatorWrap"> |
| <property name="tokens" value="COMMA"/> |
| <property name="option" value="EOL"/> |
| </module> |
| |
| <!-- Several variable declaration on one line: int i, p; --> |
| <module name="MultipleVariableDeclarations"/> |
| |
| <module name="OuterTypeFilename"/> |
| <module name="OneTopLevelClass"/> |
| |
| <!-- Checks for whitespace --> |
| <!-- See http://checkstyle.sf.net/config_whitespace.html --> |
| <module name="OperatorWrap"/> |
| <module name="WhitespaceAfter"/> |
| <module name="MethodParamPad"/> |
| <module name="NoWhitespaceAfter"/> |
| <module name="NoWhitespaceBefore"/> |
| <module name="ParenPad"/> |
| <module name="TypecastParenPad"/> |
| <module name="WhitespaceAfter"/> |
| <module name="WhitespaceAround"> |
| <!-- Removed static initializer issues: RCURLY, SLIST --> |
| <property name="tokens" |
| value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, |
| DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, |
| LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, |
| LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, |
| NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN, |
| TYPE_EXTENSION_AND"/> |
| <property name="allowEmptyConstructors" value="true"/> |
| <property name="allowEmptyMethods" value="true"/> |
| <property name="allowEmptyTypes" value="true"/> |
| <property name="allowEmptyLoops" value="true"/> |
| <message key="ws.notFollowed" |
| value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> |
| <message key="ws.notPreceded" |
| value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> |
| </module> |
| |
| <module name="GenericWhitespace"> |
| <message key="ws.followed" |
| value="GenericWhitespace ''{0}'' is followed by whitespace."/> |
| <message key="ws.preceded" |
| value="GenericWhitespace ''{0}'' is preceded with whitespace."/> |
| <message key="ws.illegalFollow" |
| value="GenericWhitespace ''{0}'' should followed by whitespace."/> |
| <message key="ws.notPreceded" |
| value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> |
| </module> |
| |
| <!-- Modifier Checks --> |
| <!-- See http://checkstyle.sf.net/config_modifiers.html --> |
| <module name="ModifierOrder"/> |
| <module name="RedundantModifier"/> |
| |
| <!-- Checks for common coding problems --> |
| <!-- See http://checkstyle.sf.net/config_coding.html --> |
| <module name="EmptyStatement"/> |
| <module name="EqualsHashCode"/> |
| <module name="IllegalInstantiation"/> |
| <module name="InnerAssignment"/> |
| <module name="MissingSwitchDefault"/> |
| |
| <module name="SimplifyBooleanExpression"/> |
| <module name="SimplifyBooleanReturn"/> |
| |
| <!-- Checks for class design --> |
| <!-- See http://checkstyle.sf.net/config_design.html --> |
| <module name="HideUtilityClassConstructor"/> |
| <module name="InterfaceIsType"/> |
| <module name="VisibilityModifier"/> |
| <module name="ThrowsCount"> |
| <property name="max" value="3"/> |
| </module> |
| |
| <!-- Miscellaneous other checks. --> |
| <!-- See http://checkstyle.sf.net/config_misc.html --> |
| <module name="ArrayTypeStyle"/> |
| <module name="TodoComment"/> |
| <module name="UpperEll"/> |
| |
| <module name="OneStatementPerLine"/> |
| <module name="FallThrough"/> |
| |
| <module name="NoFinalizer"/> |
| </module> |
| </module> |