Repository: hbase Updated Branches: refs/heads/master 686e77108 -> 487b58313
HBASE-12261 Add checkstyle to HBase build process Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/487b5831 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/487b5831 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/487b5831 Branch: refs/heads/master Commit: 487b58313c116b3c65d51bda6e9512aa85042671 Parents: 686e771 Author: Elliott Clark <[email protected]> Authored: Wed Oct 15 10:28:45 2014 -0700 Committer: Elliott Clark <[email protected]> Committed: Fri Oct 17 11:10:07 2014 -0700 ---------------------------------------------------------------------- dev-support/test-patch.sh | 85 ++++++++++---------- hbase-checkstyle/pom.xml | 32 ++++++++ .../resources/hbase/checkstyle-suppressions.xml | 8 ++ .../src/main/resources/hbase/checkstyle.xml | 32 ++++++++ pom.xml | 44 +++++++++- 5 files changed, 156 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/487b5831/dev-support/test-patch.sh ---------------------------------------------------------------------- diff --git a/dev-support/test-patch.sh b/dev-support/test-patch.sh index 1cad668..7381656 100755 --- a/dev-support/test-patch.sh +++ b/dev-support/test-patch.sh @@ -220,7 +220,6 @@ setup () { against trunk revision ${SVN_REVISION}. ATTACHMENT ID: ${ATTACHMENT_ID}" - #PENDING: cp -f $SUPPORT_DIR/etc/checkstyle* ./src/test ### Copy the patch file to $PATCH_DIR else VERSION=PATCH-${defect} @@ -250,16 +249,17 @@ setup () { echo "======================================================================" echo "" echo "" - echo "$MVN clean test -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/trunkJavacWarnings.txt 2>&1" + echo "$MVN clean package checkstyle:checkstyle-aggregate -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/trunkJavacWarnings.txt 2>&1" export MAVEN_OPTS="${MAVEN_OPTS}" # build core and tests - $MVN clean test -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/trunkJavacWarnings.txt 2>&1 + $MVN clean package checkstyle:checkstyle-aggregate -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/trunkJavacWarnings.txt 2>&1 if [[ $? != 0 ]] ; then ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt` echo "Trunk compilation is broken? {code}$ERR{code}" cleanupAndExit 1 fi + mv target/checkstyle-result.xml $PATCH_DIR/trunkCheckstyle.xml } ############################################################################### @@ -493,6 +493,41 @@ checkJavacWarnings () { return 0 } +checkCheckstyleErrors() { + echo "" + echo "" + echo "======================================================================" + echo "======================================================================" + echo " Determining number of patched Checkstyle errors." + echo "======================================================================" + echo "======================================================================" + echo "" + echo "" + if [[ -f $PATCH_DIR/trunkCheckstyle.xml ]] ; then + $MVN package -DskipTests checkstyle:checkstyle-aggregate > /dev/null 2>&1 + mv target/checkstyle-result.xml $PATCH_DIR/patchCheckstyle.xml + mv target/site/checkstyle-aggregate.html $PATCH_DIR + mv target/site/checkstyle.css $PATCH_DIR + trunkCheckstyleErrors=`$GREP '<error' $PATCH_DIR/trunkCheckstyle.xml | $AWK 'BEGIN {total = 0} {total += 1} END {print total}'` + patchCheckstyleErrors=`$GREP '<error' $PATCH_DIR/patchCheckstyle.xml | $AWK 'BEGIN {total = 0} {total += 1} END {print total}'` + if [[ $patchCheckstyleErrors -gt $trunkCheckstyleErrors ]] ; then + JIRA_COMMENT_FOOTER="Checkstyle Errors: $BUILD_URL/artifact/patchprocess/checkstyle-aggregate.html + + $JIRA_COMMENT_FOOTER" + + JIRA_COMMENT="$JIRA_COMMENT + + {color:red}-1 javac{color}. The applied patch generated $patchCheckstyleErrors checkstyle errors (more than the trunk's current $trunkCheckstyleErrors errors)." + return 1 + fi + echo "There were $patchCheckstyleErrors checkstyle errors in this patch compared to $trunkCheckstyleErrors on master." + fi + JIRA_COMMENT="$JIRA_COMMENT + + {color:green}+1 javac{color}. The applied patch does not increase the total number of checkstyle errors" + return 0 + +} ############################################################################### checkProtocErrors () { echo "" @@ -557,41 +592,6 @@ $JIRA_COMMENT_FOOTER" } ############################################################################### -### Check there are no changes in the number of Checkstyle warnings -checkStyle () { - echo "" - echo "" - echo "======================================================================" - echo "======================================================================" - echo " Determining number of patched checkstyle warnings." - echo "======================================================================" - echo "======================================================================" - echo "" - echo "" - echo "THIS IS NOT IMPLEMENTED YET" - echo "" - echo "" - echo "$MVN package checkstyle:checkstyle -D${PROJECT_NAME}PatchProcess -DskipTests" - export MAVEN_OPTS="${MAVEN_OPTS}" - $MVN package checkstyle:checkstyle -D${PROJECT_NAME}PatchProcess -DskipTests - - JIRA_COMMENT_FOOTER="Checkstyle results: $BUILD_URL/artifact/trunk/build/test/checkstyle-errors.html -$JIRA_COMMENT_FOOTER" - ### TODO: calculate actual patchStyleErrors -# patchStyleErrors=0 -# if [[ $patchStyleErrors != 0 ]] ; then -# JIRA_COMMENT="$JIRA_COMMENT -# -# {color:red}-1 checkstyle{color}. The patch generated $patchStyleErrors code style errors." -# return 1 -# fi -# JIRA_COMMENT="$JIRA_COMMENT -# -# {color:green}+1 checkstyle{color}. The patch generated 0 code style errors." - return 0 -} - -############################################################################### ### Check there are no changes in the number of Findbugs warnings checkFindbugsWarnings () { findbugs_version=`${FINDBUGS_HOME}/bin/findbugs -version` @@ -763,9 +763,9 @@ checkSiteXml () { echo "" echo "" - echo "$MVN compile site -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/patchSiteOutput.txt 2>&1" + echo "$MVN package site -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/patchSiteOutput.txt 2>&1" export MAVEN_OPTS="${MAVEN_OPTS}" - $MVN compile site -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/patchSiteOutput.txt 2>&1 + $MVN package site -DskipTests -D${PROJECT_NAME}PatchProcess > $PATCH_DIR/patchSiteOutput.txt 2>&1 if [[ $? != 0 ]] ; then JIRA_COMMENT="$JIRA_COMMENT @@ -911,9 +911,8 @@ checkProtocErrors (( RESULT = RESULT + $? )) checkJavadocWarnings (( RESULT = RESULT + $? )) -### Checkstyle not implemented yet -#checkStyle -#(( RESULT = RESULT + $? )) +checkCheckstyleErrors +(( RESULT = RESULT + $? )) checkFindbugsWarnings (( RESULT = RESULT + $? )) checkReleaseAuditWarnings http://git-wip-us.apache.org/repos/asf/hbase/blob/487b5831/hbase-checkstyle/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-checkstyle/pom.xml b/hbase-checkstyle/pom.xml new file mode 100644 index 0000000..295ad9a --- /dev/null +++ b/hbase-checkstyle/pom.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <!-- +/** +* 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. +*/ +--> +<modelVersion>4.0.0</modelVersion> +<groupId>org.apache.hbase</groupId> +<artifactId>hbase-checkstyle</artifactId> +<version>2.0.0-SNAPSHOT</version> +<name>HBase - Checkstyle</name> +<description>Module to hold Checkstyle properties for HBase.</description> + + +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/487b5831/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml ---------------------------------------------------------------------- diff --git a/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml b/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml new file mode 100644 index 0000000..3531e2a --- /dev/null +++ b/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<!DOCTYPE suppressions PUBLIC + "-//Puppy Crawl//DTD Suppressions 1.0//EN" + "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd"> +<suppressions> + <suppress checks="." files=".*/generated/.*\.java"/> + <suppress checks="MagicNumberCheck" files=".*Test\.java"/> +</suppressions> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/487b5831/hbase-checkstyle/src/main/resources/hbase/checkstyle.xml ---------------------------------------------------------------------- diff --git a/hbase-checkstyle/src/main/resources/hbase/checkstyle.xml b/hbase-checkstyle/src/main/resources/hbase/checkstyle.xml new file mode 100644 index 0000000..8f58623 --- /dev/null +++ b/hbase-checkstyle/src/main/resources/hbase/checkstyle.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" + "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> +<module name="Checker"> + <module name="FileTabCharacter"/> + <module name="TreeWalker"> + <module name="AvoidStarImport"/> + <module name="RedundantImport"/> + <module name="UnusedImports"/> + <module name="LineLength"> + <property name="max" value="100"/> + <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> + </module> + <module name="MethodLength"/> + <module name="MethodParamPad"/> + <module name="ParenPad"/> + <module name="EmptyStatement"/> + <module name="EmptyBlock"/> + <module name="EqualsHashCode"/> + <module name="IllegalInstantiation"/> + <module name="InnerAssignment"/> + <module name="MissingSwitchDefault"/> + <module name="FinalClass"/> + <module name="HideUtilityClassConstructor"/> + <module name="InterfaceIsType"/> + <module name="VisibilityModifier"/> + <module name="ArrayTypeStyle"/> + <module name="UpperEll"/> + <module name="NoFinalizer"/> + <module name="MissingDeprecated"/> + </module> +</module> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/487b5831/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index e301d51..1b97e38 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,7 @@ <module>hbase-testing-util</module> <module>hbase-annotations</module> <module>hbase-rest</module> + <module>hbase-checkstyle</module> </modules> <scm> <connection>scm:git:git://git.apache.org/hbase.git</connection> @@ -664,6 +665,22 @@ <protocCommand>${protoc.path}</protocCommand> </configuration> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.13</version> + <dependencies> + <dependency> + <groupId>org.apache.hbase</groupId> + <artifactId>hbase-checkstyle</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + <configuration> + <configLocation>hbase/checkstyle.xml</configLocation> + <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation> + </configuration> + </plugin> </plugins> </pluginManagement> <plugins> @@ -713,6 +730,21 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <dependencies> + <dependency> + <groupId>org.apache.hbase</groupId> + <artifactId>hbase-checkstyle</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + <configuration> + <configLocation>hbase/checkstyle.xml</configLocation> + <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation> + </configuration> + </plugin> <!--Build the documentation. We build it twice. Once as a single page and then again as multipage.--> <plugin> @@ -2361,8 +2393,16 @@ </configuration> </reportSet> </reportSets> - </plugin> - + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.13</version> + <configuration> + <configLocation>hbase/checkstyle.xml</configLocation> + <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation> + </configuration> + </plugin> </plugins> </reporting> <distributionManagement>
