diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-01-28 17:41:48 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-01-28 17:41:48 +0100 |
commit | db7da381fb19ff5356988a815e9bbfeb14879356 (patch) | |
tree | d29f5aea4ab4c4fa17ac5476abcd985b0015f920 /sonar-core | |
parent | a743db9c4104a4ab1f56dd061314f4dc96d24e6c (diff) | |
download | sonarqube-db7da381fb19ff5356988a815e9bbfeb14879356.tar.gz sonarqube-db7da381fb19ff5356988a815e9bbfeb14879356.zip |
SONAR-5029 Mix between quality profiles of each languages on project profiles page
Diffstat (limited to 'sonar-core')
4 files changed, 13 insertions, 7 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileDao.java b/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileDao.java index 2f8ab8a38b5..b069a9598c8 100644 --- a/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileDao.java +++ b/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileDao.java @@ -27,6 +27,7 @@ import org.sonar.core.component.ComponentDto; import org.sonar.core.persistence.MyBatis; import javax.annotation.CheckForNull; + import java.util.List; public class QualityProfileDao implements ServerComponent { @@ -101,10 +102,11 @@ public class QualityProfileDao implements ServerComponent { } } - public List<QualityProfileDto> selectByProject(long projectId, String propKeyPrefix) { + + public QualityProfileDto selectByProjectAndLanguage(long projectId, String language, String key) { SqlSession session = mybatis.openSession(); try { - return session.getMapper(QualityProfileMapper.class).selectByProject(projectId, propKeyPrefix); + return session.getMapper(QualityProfileMapper.class).selectByProjectAndLanguage(projectId, language, key); } finally { MyBatis.closeQuietly(session); } diff --git a/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileMapper.java b/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileMapper.java index 5ddf7e3b98f..fb4ace51624 100644 --- a/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileMapper.java @@ -63,7 +63,7 @@ public interface QualityProfileMapper { int countProjects(@Param("value") String propertyValue, @Param("key") String propertyKey); - List<QualityProfileDto> selectByProject(@Param("projectId") Long projectId, @Param("key") String propertyKeyPrefix); + QualityProfileDto selectByProjectAndLanguage(@Param("projectId") Long projectId, @Param("language") String language, @Param("key") String propertyKeyPrefix); void updatedUsedColumn(@Param("id") int profileId, @Param("used") boolean used); } diff --git a/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/QualityProfileMapper.xml b/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/QualityProfileMapper.xml index 876fc40df5c..78eff7dd4e2 100644 --- a/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/QualityProfileMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/QualityProfileMapper.xml @@ -121,12 +121,15 @@ </where> </select> - <select id="selectByProject" parameterType="map" resultType="QualityProfile"> - SELECT DISTINCT <include refid="profilesColumns"/> + <select id="selectByProjectAndLanguage" parameterType="map" resultType="QualityProfile"> + SELECT <include refid="profilesColumns"/> FROM rules_profiles p INNER JOIN properties prop ON prop.resource_id=#{projectId} AND prop.prop_key LIKE #{key} AND prop.text_value LIKE p.name + <where> + AND p.language=#{language} + </where> </select> <update id="updatedUsedColumn" parameterType="map"> diff --git a/sonar-core/src/test/java/org/sonar/core/qualityprofile/db/QualityProfileDaoTest.java b/sonar-core/src/test/java/org/sonar/core/qualityprofile/db/QualityProfileDaoTest.java index f01091d9963..3044732c8cd 100644 --- a/sonar-core/src/test/java/org/sonar/core/qualityprofile/db/QualityProfileDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/qualityprofile/db/QualityProfileDaoTest.java @@ -217,10 +217,11 @@ public class QualityProfileDaoTest extends AbstractDaoTestCase { } @Test - public void select_by_project() { + public void select_by_project_and_language() { setupData("projects"); - assertThat(dao.selectByProject(1L, "sonar.profile.%")).hasSize(2); + QualityProfileDto dto = dao.selectByProjectAndLanguage(1L, "java", "sonar.profile.java"); + assertThat(dto.getId()).isEqualTo(1); } @Test |