This is an automated email from the ASF dual-hosted git repository. alexey pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 2acfd25b849a40e30654178b312d5d0bf720ffca Author: Grant Henke <[email protected]> AuthorDate: Thu May 9 14:15:19 2019 -0500 [build] Fix Gradle Checkstyle tasks Checkstyle was broken in a recent upgrade due to backwards incompatible changes to Checkstyle rules. This patch adjust the Checkstyle task to be a bit more Gradle idiomatic and also updates the checkstyle rules to be more current. Change-Id: I8f4d3aac746240949a32c798e27cd708a77966a4 Reviewed-on: http://gerrit.cloudera.org:8080/13297 Reviewed-by: Adar Dembo <[email protected]> Tested-by: Kudu Jenkins --- .../checkstyle/checkstyle.xml} | 91 ++++++++++++++++------ .../checkstyle/suppressions.xml} | 0 java/gradle/quality.gradle | 6 +- 3 files changed, 68 insertions(+), 29 deletions(-) diff --git a/java/kudu_style.xml b/java/config/checkstyle/checkstyle.xml similarity index 72% rename from java/kudu_style.xml rename to java/config/checkstyle/checkstyle.xml index d0b8d6c..562955d 100644 --- a/java/kudu_style.xml +++ b/java/config/checkstyle/checkstyle.xml @@ -19,10 +19,10 @@ // under the License. --> <!DOCTYPE module PUBLIC - "-//Puppy Crawl//DTD Check Configuration 1.3//EN" - "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> + "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" + "https://checkstyle.org/dtds/configuration_1_3.dtd"> -<!-- Forked from https://raw.githubusercontent.com/checkstyle/checkstyle/checkstyle-6.19/src/main/resources/google_checks.xml --> +<!-- Forked from https://raw.githubusercontent.com/checkstyle/checkstyle/checkstyle-8.20/src/main/resources/google_checks.xml --> <!-- Checkstyle configuration that checks the Google coding conventions from Google Java Style @@ -42,25 +42,31 @@ <property name="severity" value="warning"/> <property name="fileExtensions" value="java, properties, xml"/> + <!-- Excludes all 'module-info.java' files --> + <!-- See https://checkstyle.org/config_filefilters.html --> + <module name="BeforeExecutionExclusionFileFilter"> + <property name="fileNamePattern" value="module\-info\.java$"/> + </module> <!-- Checks for whitespace --> <!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="FileTabCharacter"> <property name="eachLine" value="true"/> </module> <!-- Turn off/on checkstyle with CHECKSTYLE:OFF CHECKSTYLE:ON comments --> - <module name="SuppressionCommentFilter"/> + <module name="SuppressWithPlainTextCommentFilter"/> <!-- Suppress generated sources --> <module name="SuppressionFilter"> - <property name="file" value="${checkstyle.suppressions.file}"/> + <property name="file" value="${config_loc}/suppressions.xml"/> <property name="optional" value="false"/> </module> <module name="TreeWalker"> - <module name="FileContentsHolder"/> <module name="OuterTypeFilename"/> <module name="IllegalTokenText"> <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/> - <property name="format" value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/> - <property name="message" value="Avoid using corresponding octal or Unicode escape."/> + <property name="format" + value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/> + <property name="message" + value="Consider using special escape sequence instead of octal value or Unicode escaped value."/> </module> <module name="AvoidEscapedUnicodeCharacters"> <property name="allowEscapesForControlCharacters" value="true"/> @@ -76,19 +82,27 @@ <module name="NoLineWrap"/> <module name="EmptyBlock"> <property name="option" value="TEXT"/> - <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> + <property name="tokens" + value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> </module> <module name="NeedBraces"/> - <module name="LeftCurly"> - <property name="maxLineLength" value="100"/> + <module name="LeftCurly"/> + <module name="RightCurly"> + <property name="id" value="RightCurlySame"/> + <property name="tokens" + value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, + LITERAL_DO"/> </module> - <module name="RightCurly"/> <module name="RightCurly"> + <property name="id" value="RightCurlyAlone"/> <property name="option" value="alone"/> - <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/> + <property name="tokens" + value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, + INSTANCE_INIT"/> </module> <module name="WhitespaceAround"> <property name="allowEmptyConstructors" value="true"/> + <property name="allowEmptyLambdas" value="true"/> <property name="allowEmptyMethods" value="true"/> <property name="allowEmptyTypes" value="true"/> <property name="allowEmptyLoops" value="true"/> @@ -108,13 +122,32 @@ <property name="allowNoEmptyLineBetweenFields" value="true"/> </module> <module name="SeparatorWrap"> + <property name="id" value="SeparatorWrapDot"/> <property name="tokens" value="DOT"/> <property name="option" value="nl"/> </module> <module name="SeparatorWrap"> + <property name="id" value="SeparatorWrapComma"/> <property name="tokens" value="COMMA"/> <property name="option" value="EOL"/> </module> + <module name="SeparatorWrap"> + <!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 --> + <property name="id" value="SeparatorWrapEllipsis"/> + <property name="tokens" value="ELLIPSIS"/> + <property name="option" value="EOL"/> + </module> + <module name="SeparatorWrap"> + <!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 --> + <property name="id" value="SeparatorWrapArrayDeclarator"/> + <property name="tokens" value="ARRAY_DECLARATOR"/> + <property name="option" value="EOL"/> + </module> + <module name="SeparatorWrap"> + <property name="id" value="SeparatorWrapMethodRef"/> + <property name="tokens" value="METHOD_REF"/> + <property name="option" value="nl"/> + </module> <module name="PackageName"> <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> <message key="name.invalidPattern" @@ -125,23 +158,28 @@ value="Type name ''{0}'' must match pattern ''{1}''."/> </module> <module name="MemberName"> - <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/> <message key="name.invalidPattern" value="Member name ''{0}'' must match pattern ''{1}''."/> </module> <module name="ParameterName"> - <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> <message key="name.invalidPattern" value="Parameter name ''{0}'' must match pattern ''{1}''."/> </module> + <module name="LambdaParameterName"> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> + <message key="name.invalidPattern" + value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/> + </module> <module name="CatchParameterName"> - <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> <message key="name.invalidPattern" value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> </module> <module name="LocalVariableName"> <property name="tokens" value="VARIABLE_DEF"/> - <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> <property name="allowOneCharVarInForLoop" value="true"/> <message key="name.invalidPattern" value="Local variable name ''{0}'' must match pattern ''{1}''."/> @@ -183,28 +221,32 @@ <!-- This is pedantic... --> <!-- <module name="AbbreviationAsWordInName"> - <property name="ignoreFinal" value="true"/> - <property name="allowedAbbreviationLength" value="2"/> + <property name="ignoreFinal" value="false"/> + <property name="allowedAbbreviationLength" value="1"/> </module> --> <module name="OverloadMethodsDeclarationOrder"/> <module name="VariableDeclarationUsageDistance"/> <module name="CustomImportOrder"> - <property name="specialImportsRegExp" value="com.google"/> <property name="sortImportsInGroupAlphabetically" value="true"/> <!-- Kudu differs from Google import order to mirror the C++ include order --> - <property name="customImportOrderRules" value="STATIC###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE###SAME_PACKAGE(3)"/> + <property name="customImportOrderRules" + value="STATIC###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE###SAME_PACKAGE(3)"/> </module> <module name="MethodParamPad"/> <!-- Kudu style puts operators like + at end of line before continuation --> <module name="OperatorWrap"> <property name="option" value="EOL"/> - <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/> + <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, + LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/> </module> <module name="AnnotationLocation"> - <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> + <property name="id" value="AnnotationLocationMostCases"/> + <property name="tokens" + value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> </module> <module name="AnnotationLocation"> + <property name="id" value="AnnotationLocationVariables"/> <property name="tokens" value="VARIABLE_DEF"/> <property name="allowSamelineMultipleAnnotations" value="true"/> </module> @@ -213,7 +255,8 @@ <module name="NonEmptyAtclauseDescription"/> <module name="JavadocTagContinuationIndentation"/> <module name="SummaryJavadoc"> - <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> + <property name="forbiddenSummaryFragments" + value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> </module> <module name="JavadocParagraph"/> <module name="AtclauseOrder"> diff --git a/java/checkstyle_suppressions.xml b/java/config/checkstyle/suppressions.xml similarity index 100% rename from java/checkstyle_suppressions.xml rename to java/config/checkstyle/suppressions.xml diff --git a/java/gradle/quality.gradle b/java/gradle/quality.gradle index c92d0b2..8bdc21a 100644 --- a/java/gradle/quality.gradle +++ b/java/gradle/quality.gradle @@ -25,12 +25,8 @@ apply plugin: "ru.vyarus.animalsniffer" // Ensures Java code uses APIs from a pa apply plugin: "scalafmt" // Automatically formats Scala code on each build. apply plugin: "net.ltgt.errorprone" // Performs static code analysis to look for bugs in Java code. - checkstyle { - configFile = file("$rootDir/kudu_style.xml") - configProperties = [ - "checkstyle.suppressions.file" : "$rootDir/checkstyle_suppressions.xml" - ] + configDir = file("$rootProject.projectDir/config/checkstyle") ignoreFailures = true showViolations = true }
