From 96d6d7532cb485deb8b95865fc43144b33e2f202 Mon Sep 17 00:00:00 2001 From: Jacek Date: Fri, 11 Jun 2021 16:01:12 +0200 Subject: [PATCH] SONAR-14935 add 'detectedCI' field --- .../db/component/AnalysisPropertiesDao.java | 8 ++++ .../component/AnalysisPropertiesMapper.java | 4 ++ .../db/component/AnalysisPropertyDto.java | 2 +- .../db/component/AnalysisPropertiesMapper.xml | 10 +++++ .../component/AnalysisPropertiesDaoTest.java | 33 +++++++++++++-- .../projectanalysis/ws/SearchAction.java | 16 ++++--- .../server/projectanalysis/ws/SearchData.java | 16 +++++++ .../ws/SearchResponseBuilder.java | 3 +- .../projectanalysis/ws/search-example.json | 1 + .../projectanalysis/ws/SearchActionTest.java | 42 +++++++++++-------- .../main/protobuf/ws-projectanalyses.proto | 1 + 11 files changed, 107 insertions(+), 29 deletions(-) diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesDao.java index c40ad31952f..14fff32259b 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesDao.java @@ -19,10 +19,12 @@ */ package org.sonar.db.component; +import java.util.Collection; import java.util.List; import javax.annotation.Nullable; import org.sonar.api.utils.System2; import org.sonar.db.Dao; +import org.sonar.db.DatabaseUtils; import org.sonar.db.DbSession; import static java.util.Objects.requireNonNull; @@ -41,6 +43,12 @@ public class AnalysisPropertiesDao implements Dao { return getMapper(session).selectByAnalysisUuid(analysisUuid); } + public List selectByKeyAndAnalysisUuids(DbSession session, String key, Collection snapshotUuids) { + requireNonNull(snapshotUuids); + var mapper = getMapper(session); + return DatabaseUtils.executeLargeInputs(snapshotUuids, input -> mapper.selectByKeyAnAnalysisUuids(input, key)); + } + public void insert(DbSession session, List analysisPropertyDto) { analysisPropertyDto.forEach(a -> insert(session, a)); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesMapper.java index 19080f1413b..262d34112ec 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertiesMapper.java @@ -19,6 +19,7 @@ */ package org.sonar.db.component; +import java.util.Collection; import java.util.List; import org.apache.ibatis.annotations.Param; @@ -33,4 +34,7 @@ public interface AnalysisPropertiesMapper { void insertAsText(@Param("analysisPropertyDto") AnalysisPropertyDto analysisPropertyDto, @Param("createdAt") long createdAt); List selectProjectCountPerAnalysisPropertyValueInLastAnalysis(@Param("analysisPropertyKey") String analysisPropertyKey); + + List selectByKeyAnAnalysisUuids(@Param("analysisUuids") Collection analysisUuids, @Param("analysisPropertyKey") String analysisPropertyKey); + } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertyDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertyDto.java index 779eb9c4e68..24383484bbc 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertyDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/AnalysisPropertyDto.java @@ -83,7 +83,7 @@ public class AnalysisPropertyDto { @Override public String toString() { - return "BranchDto{" + "uuid='" + uuid + '\'' + + return "AnalysisPropertyDto{" + "uuid='" + uuid + '\'' + ", analysisUuid='" + analysisUuid + '\'' + ", key='" + key + '\'' + ", value='" + value + "'" + diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/AnalysisPropertiesMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/AnalysisPropertiesMapper.xml index 124b27aad3d..685e1ad0a05 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/AnalysisPropertiesMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/AnalysisPropertiesMapper.xml @@ -21,6 +21,16 @@ analysis_uuid = #{analysisUuid} + +