This is an automated email from the ASF dual-hosted git repository. elek pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push: new e78848f HDDS-2119. Use checkstyle.xml and suppressions.xml in hdds/ozone projects for checkstyle validation e78848f is described below commit e78848fc3cb113733ea640f0aa3abbb271b16005 Author: Nanda kumar <na...@apache.org> AuthorDate: Thu Sep 19 11:14:59 2019 +0200 HDDS-2119. Use checkstyle.xml and suppressions.xml in hdds/ozone projects for checkstyle validation Closes #1435 --- .../checkstyle/checkstyle-noframes-sorted.xsl | 189 ++++++++++++++++++++ hadoop-hdds/dev-support/checkstyle/checkstyle.xml | 196 +++++++++++++++++++++ .../dev-support/checkstyle/suppressions.xml | 21 +++ hadoop-hdds/pom.xml | 1 - pom.ozone.xml | 26 ++- 5 files changed, 429 insertions(+), 4 deletions(-) diff --git a/hadoop-hdds/dev-support/checkstyle/checkstyle-noframes-sorted.xsl b/hadoop-hdds/dev-support/checkstyle/checkstyle-noframes-sorted.xsl new file mode 100644 index 0000000..7f2aedf --- /dev/null +++ b/hadoop-hdds/dev-support/checkstyle/checkstyle-noframes-sorted.xsl @@ -0,0 +1,189 @@ +<!-- + 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. +--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> +<xsl:output method="html" indent="yes"/> +<xsl:decimal-format decimal-separator="." grouping-separator="," /> + +<xsl:key name="files" match="file" use="@name" /> + +<!-- Checkstyle XML Style Sheet by Stephane Bailliez <sbaill...@apache.org> --> +<!-- Part of the Checkstyle distribution found at http://checkstyle.sourceforge.net --> +<!-- Usage (generates checkstyle_report.html): --> +<!-- <checkstyle failonviolation="false" config="${check.config}"> --> +<!-- <fileset dir="${src.dir}" includes="**/*.java"/> --> +<!-- <formatter type="xml" toFile="${doc.dir}/checkstyle_report.xml"/> --> +<!-- </checkstyle> --> +<!-- <style basedir="${doc.dir}" destdir="${doc.dir}" --> +<!-- includes="checkstyle_report.xml" --> +<!-- style="${doc.dir}/checkstyle-noframes-sorted.xsl"/> --> + +<xsl:template match="checkstyle"> + <html> + <head> + <style type="text/css"> + .bannercell { + border: 0px; + padding: 0px; + } + body { + margin-left: 10; + margin-right: 10; + font:normal 80% arial,helvetica,sanserif; + background-color:#FFFFFF; + color:#000000; + } + .a td { + background: #efefef; + } + .b td { + background: #fff; + } + th, td { + text-align: left; + vertical-align: top; + } + th { + font-weight:bold; + background: #ccc; + color: black; + } + table, th, td { + font-size:100%; + border: none + } + table.log tr td, tr th { + + } + h2 { + font-weight:bold; + font-size:140%; + margin-bottom: 5; + } + h3 { + font-size:100%; + font-weight:bold; + background: #525D76; + color: white; + text-decoration: none; + padding: 5px; + margin-right: 2px; + margin-left: 2px; + margin-bottom: 0; + } + </style> + </head> + <body> + <a name="top"></a> + <!-- jakarta logo --> + <table border="0" cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td class="bannercell" rowspan="2"> + <!--a href="http://jakarta.apache.org/"> + <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/> + </a--> + </td> + <td class="text-align:right"><h2>CheckStyle Audit</h2></td> + </tr> + <tr> + <td class="text-align:right">Designed for use with <a href='http://checkstyle.sourceforge.net/'>CheckStyle</a> and <a href='http://jakarta.apache.org'>Ant</a>.</td> + </tr> + </table> + <hr size="1"/> + + <!-- Summary part --> + <xsl:apply-templates select="." mode="summary"/> + <hr size="1" width="100%" align="left"/> + + <!-- Package List part --> + <xsl:apply-templates select="." mode="filelist"/> + <hr size="1" width="100%" align="left"/> + + <!-- For each package create its part --> + <xsl:apply-templates select="file[@name and generate-id(.) = generate-id(key('files', @name))]" /> + + <hr size="1" width="100%" align="left"/> + + </body> + </html> +</xsl:template> + + <xsl:template match="checkstyle" mode="filelist"> + <h3>Files</h3> + <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> + <tr> + <th>Name</th> + <th>Errors</th> + </tr> + <xsl:for-each select="file[@name and generate-id(.) = generate-id(key('files', @name))]"> + <xsl:sort data-type="number" order="descending" select="count(key('files', @name)/error)"/> + <xsl:variable name="errorCount" select="count(error)"/> + <tr> + <xsl:call-template name="alternated-row"/> + <td><a href="#f-{@name}"><xsl:value-of select="@name"/></a></td> + <td><xsl:value-of select="$errorCount"/></td> + </tr> + </xsl:for-each> + </table> + </xsl:template> + + <xsl:template match="file"> + <a name="f-{@name}"></a> + <h3>File <xsl:value-of select="@name"/></h3> + + <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> + <tr> + <th>Error Description</th> + <th>Line</th> + </tr> + <xsl:for-each select="key('files', @name)/error"> + <xsl:sort data-type="number" order="ascending" select="@line"/> + <tr> + <xsl:call-template name="alternated-row"/> + <td><xsl:value-of select="@message"/></td> + <td><xsl:value-of select="@line"/></td> + </tr> + </xsl:for-each> + </table> + <a href="#top">Back to top</a> + </xsl:template> + + <xsl:template match="checkstyle" mode="summary"> + <h3>Summary</h3> + <xsl:variable name="fileCount" select="count(file[@name and generate-id(.) = generate-id(key('files', @name))])"/> + <xsl:variable name="errorCount" select="count(file/error)"/> + <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> + <tr> + <th>Files</th> + <th>Errors</th> + </tr> + <tr> + <xsl:call-template name="alternated-row"/> + <td><xsl:value-of select="$fileCount"/></td> + <td><xsl:value-of select="$errorCount"/></td> + </tr> + </table> + </xsl:template> + + <xsl:template name="alternated-row"> + <xsl:attribute name="class"> + <xsl:if test="position() mod 2 = 1">a</xsl:if> + <xsl:if test="position() mod 2 = 0">b</xsl:if> + </xsl:attribute> + </xsl:template> +</xsl:stylesheet> + + diff --git a/hadoop-hdds/dev-support/checkstyle/checkstyle.xml b/hadoop-hdds/dev-support/checkstyle/checkstyle.xml new file mode 100644 index 0000000..1c43741 --- /dev/null +++ b/hadoop-hdds/dev-support/checkstyle/checkstyle.xml @@ -0,0 +1,196 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC + "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN" + "https://checkstyle.org/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. +--> +<!-- + + Checkstyle configuration for Hadoop HDDS 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"> + + <module name="SuppressWarningsFilter"/> + + <!-- 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"/> + + <!-- We have many existing long files, this check ends up being spurious --> + <!--<module name="FileLength">--> + <module name="FileTabCharacter"/> + + <module name="TreeWalker"> + + <module name="SuppressWarningsHolder"/> + <module name="SuppressionCommentFilter"/> + <module name="SuppressWithNearbyCommentFilter"/> + + + <!-- 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"/> + <module name="MethodLength"/> + <module name="ParameterNumber"> + <property name="ignoreOverriddenMethods" value="true"/> + </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 --> + <!-- This one is nitty, disable --> + <!-- <module name="ModifierOrder"/> --> + <module name="RedundantModifier"/> + + + <!-- Checks for blocks. You know, those {}'s --> + <!-- See http://checkstyle.sf.net/config_blocks.html --> + <module name="AvoidNestedBlocks"/> + <module name="EmptyBlock"/> + <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"/> + </module> + <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="FinalClass"/> + <module name="HideUtilityClassConstructor"/> + <module name="InterfaceIsType"/> + <module name="VisibilityModifier"/> + + + <!-- 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"/>--> + <module name="UpperEll"/> + + </module> + +</module> diff --git a/hadoop-hdds/dev-support/checkstyle/suppressions.xml b/hadoop-hdds/dev-support/checkstyle/suppressions.xml new file mode 100644 index 0000000..7bc9479 --- /dev/null +++ b/hadoop-hdds/dev-support/checkstyle/suppressions.xml @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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. See accompanying LICENSE file. +--> +<!DOCTYPE suppressions PUBLIC + "-//Checkstyle//DTD SuppressionFilter Configuration 1.1//EN" + "https://checkstyle.org/dtds/suppressions_1_1.dtd"> + +<suppressions> + <suppress checks="JavadocPackage" files="[\\/]src[\\/]test[\\/].*"/> +</suppressions> diff --git a/hadoop-hdds/pom.xml b/hadoop-hdds/pom.xml index 35f941e..e234b4e 100644 --- a/hadoop-hdds/pom.xml +++ b/hadoop-hdds/pom.xml @@ -39,7 +39,6 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd"> <module>tools</module> <module>docs</module> <module>config</module> - </modules> <properties> diff --git a/pom.ozone.xml b/pom.ozone.xml index 454cc4a..0d60996 100644 --- a/pom.ozone.xml +++ b/pom.ozone.xml @@ -69,7 +69,6 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs </organization> <properties> - <!-- required as child projects with different version can't use ${project.version} --> <hadoop.version>3.2.0</hadoop.version> <distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId> @@ -104,8 +103,6 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <!-- Version number for xerces used by JDiff --> <xerces.jdiff.version>2.11.0</xerces.jdiff.version> - <kafka.version>0.8.2.1</kafka.version> - <hadoop.assemblies.version>3.2.0</hadoop.assemblies.version> <commons-daemon.version>1.0.13</commons-daemon.version> @@ -207,6 +204,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <exec-maven-plugin.version>1.3.1</exec-maven-plugin.version> <make-maven-plugin.version>1.0-beta-1</make-maven-plugin.version> <native-maven-plugin.version>1.0-alpha-8</native-maven-plugin.version> + <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version> + <checkstyle.version>8.19</checkstyle.version> <surefire.fork.timeout>900</surefire.fork.timeout> <aws-java-sdk.version>1.11.375</aws-java-sdk.version> <hsqldb.version>2.3.4</hsqldb.version> @@ -1844,6 +1843,27 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <includeReports>false</includeReports> </configuration> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>${maven-checkstyle-plugin.version}</version> + <dependencies> + <dependency> + <groupId>com.puppycrawl.tools</groupId> + <artifactId>checkstyle</artifactId> + <version>${checkstyle.version}</version> + </dependency> + </dependencies> + <configuration> + <configLocation>hadoop-hdds/dev-support/checkstyle/checkstyle.xml</configLocation> + <suppressionsLocation>hadoop-hdds/dev-support/checkstyle/suppressions.xml</suppressionsLocation> + <includeTestSourceDirectory>true</includeTestSourceDirectory> + <failOnViolation>false</failOnViolation> + <format>xml</format> + <format>html</format> + <outputFile>${project.build.directory}/test/checkstyle-errors.xml</outputFile> + </configuration> + </plugin> </plugins> </build> --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org