From a0faa47c366e83c5fc5c64e4699cb52064bc3409 Mon Sep 17 00:00:00 2001 From: Duarte Meneses Date: Tue, 17 Apr 2018 11:53:16 +0200 Subject: [PATCH] SONAR-10544 Process external rules --- .../java/org/sonar/db/issue/IssueDao.java | 2 +- .../java/org/sonar/db/issue/IssueMapper.java | 2 + .../org/sonar/db/rule/RuleForIndexingDto.java | 4 +- .../org/sonar/db/issue/IssueMapper.xml | 12 ++++ .../version/v72/AddRuleExternalTest.java | 4 +- .../issue/NewExternalRule.java | 27 +++----- .../task/projectanalysis/issue/Rule.java | 3 +- .../task/projectanalysis/issue/RuleImpl.java | 2 +- .../issue/TrackerRawInputFactory.java | 12 ++-- .../server/rule/ExternalRuleCreator.java | 4 -- .../org/sonar/server/rule/index/RuleDoc.java | 7 +- .../server/rule/ws/RuleQueryFactory.java | 2 +- .../sonar/server/rule/ws/SearchAction.java | 14 ++-- .../batch/BatchReportReaderRule.java | 9 ++- .../issue/NewExternalRuleTest.java | 4 +- .../issue/TrackerRawInputFactoryTest.java | 66 +++++++++++++++++- .../step/PersistExternalRulesStepTest.java | 1 + .../server/rule/ExternalRuleCreatorTest.java | 8 +-- .../server/rule/ws/RuleQueryFactoryTest.java | 69 +++++++++++++++++-- .../java/org/sonar/api/rules/RuleType.java | 15 ++++ 20 files changed, 209 insertions(+), 58 deletions(-) diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueDao.java index 61b10d7fd4a..2ed5d393061 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueDao.java @@ -62,7 +62,7 @@ public class IssueDao implements Dao { } public void scrollNonClosedByComponentUuidExcludingExternals(DbSession dbSession, String componentUuid, ResultHandler handler) { - mapper(dbSession).scrollNonClosedByComponentUuid(componentUuid, handler); + mapper(dbSession).scrollNonClosedByComponentUuidExcludingExternals(componentUuid, handler); } public void scrollNonClosedByModuleOrProjectExcludingExternals(DbSession dbSession, ComponentDto module, ResultHandler handler) { diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java index 9e6956976dd..3c502d5a10b 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueMapper.java @@ -43,6 +43,8 @@ public interface IssueMapper { int updateIfBeforeSelectedDate(IssueDto issue); void scrollNonClosedByComponentUuid(@Param("componentUuid") String componentUuid, ResultHandler handler); + + void scrollNonClosedByComponentUuidExcludingExternals(@Param("componentUuid") String componentUuid, ResultHandler handler); void scrollNonClosedByModuleOrProject( @Param("projectUuid") String projectUuid, diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java index 0a42c354613..e76a891a819 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java @@ -22,6 +22,7 @@ package org.sonar.db.rule; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableSet; import java.util.Set; +import javax.annotation.CheckForNull; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleStatus; import org.sonar.api.rules.RuleType; @@ -121,8 +122,9 @@ public class RuleForIndexingDto { return updatedAt; } + @CheckForNull public RuleType getTypeAsRuleType() { - return RuleType.valueOf(type); + return RuleType.valueOfNullable(type); } public String getSeverityAsString() { diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml index 1716b6af4ac..52f3d91d7a6 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/issue/IssueMapper.xml @@ -185,6 +185,18 @@ + +