You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nd...@apache.org on 2020/03/31 16:33:24 UTC

[hbase] 02/02: HBASE-24078 SpotBugs check automatically skip inapplicable modules

This is an automated email from the ASF dual-hosted git repository.

ndimiduk pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 593f44c9286be8f919d28c2db7f1309c816ed1f0
Author: Nick Dimiduk <nd...@apache.org>
AuthorDate: Wed Mar 25 15:45:28 2020 -0700

    HBASE-24078 SpotBugs check automatically skip inapplicable modules
    
    Without patch, the spotbugs results include warnings for inapplicable
    modules:
    
    +---------------------------------------------------------------------------
    |      |                |            | Compile Tests
    +---------------------------------------------------------------------------
    |   0  |        mvndep  |   0m 11s   | Maven dependency ordering
    |  +1  |    mvninstall  |   2m 47s   | the source passed
    |   0  |      spotbugs  |   0m 11s   | branch/hbase-annotations no spotbugs
    |      |                |            | output file (spotbugsXml.xml)
    |   0  |      spotbugs  |   0m 14s   | branch/hbase-assembly no spotbugs output
    |      |                |            | file (spotbugsXml.xml)
    |   0  |      spotbugs  |   0m 07s   |
    |      |                |            | branch/hbase-archetypes/hbase-archetype-bu
    |      |                |            | ilder no spotbugs output file
    |      |                |            | (spotbugsXml.xml)
    +---------------------------------------------------------------------------
    
    With patch,
    
    +---------------------------------------------------------------------------
    |      |                |            | Compile Tests
    +---------------------------------------------------------------------------
    |   0  |        mvndep  |   0m 13s   | Maven dependency ordering
    |  +1  |    mvninstall  |   3m 09s   | the source passed
    |  +1  |      spotbugs  |  17m 09s   | the source passed
    +---------------------------------------------------------------------------
    
    Signed-off-by: stack <st...@apache.org>
---
 dev-support/hbase-personality.sh | 25 ++++++-------------------
 1 file changed, 6 insertions(+), 19 deletions(-)

diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh
index 3fe9fd9..ec05187 100755
--- a/dev-support/hbase-personality.sh
+++ b/dev-support/hbase-personality.sh
@@ -153,8 +153,8 @@ function personality_modules
   # If BUILDMODE is 'patch', for unit and compile testtypes, there is no need to run individual
   # modules if root is included. HBASE-18505
   if [[ "${BUILDMODE}" == "full" ]] || \
-     ( ( [[ "${testtype}" == unit ]] || [[ "${testtype}" == compile ]] || [[ "${testtype}" == checkstyle ]] ) && \
-     [[ "${MODULES[*]}" =~ \. ]] ); then
+     { { [[ "${testtype}" == unit ]] || [[ "${testtype}" == compile ]] || [[ "${testtype}" == checkstyle ]]; } && \
+     [[ "${MODULES[*]}" =~ \. ]]; }; then
     MODULES=(.)
   fi
 
@@ -190,23 +190,10 @@ function personality_modules
     # For some reason, spotbugs on root is not working, but running on individual modules is
     # working. For time being, let it run on original list of CHANGED_MODULES. HBASE-19491
     for module in "${CHANGED_MODULES[@]}"; do
-      # skip spotbugs on hbase-shell and hbase-it. hbase-it has nothing
-      # in src/main/java where spotbugs goes to look
-      # skip hbase-shaded* as there is no java code in them
-      # skip all modules with no java code or at least, non test java code
-      if [[ ${module} == hbase-shell ]]; then
-        continue
-      elif [[ ${module} == hbase-it ]]; then
-        continue
-      elif [[ ${module} == hbase-shaded* ]]; then
-        continue
-      elif [[ ${module} == hbase-build-configuration ]]; then
-        continue
-      elif [[ ${module} == hbase-checkstyle ]]; then
-        continue
-      elif [[ ${module} == hbase-resource-bundle ]]; then
-        continue
-      elif [[ ${module} == hbase-testing-util ]]; then
+      # skip spotbugs on any module that lacks content in `src/main/java`
+      if [[ "$(find "${BASEDIR}/${module}" -iname '*.java' -and -ipath '*/src/main/java/*' \
+          -type f | wc -l | tr -d '[:space:]')" -eq 0 ]]; then
+        yetus_debug "no java files found under ${module}/src/main/java. skipping."
         continue
       else
         # shellcheck disable=SC2086