aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-01-28 17:41:48 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-01-28 17:41:48 +0100
commitdb7da381fb19ff5356988a815e9bbfeb14879356 (patch)
treed29f5aea4ab4c4fa17ac5476abcd985b0015f920 /sonar-core
parenta743db9c4104a4ab1f56dd061314f4dc96d24e6c (diff)
downloadsonarqube-db7da381fb19ff5356988a815e9bbfeb14879356.tar.gz
sonarqube-db7da381fb19ff5356988a815e9bbfeb14879356.zip
SONAR-5029 Mix between quality profiles of each languages on project profiles page
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileDao.java6
-rw-r--r--sonar-core/src/main/java/org/sonar/core/qualityprofile/db/QualityProfileMapper.java2
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/QualityProfileMapper.xml7
-rw-r--r--sonar-core/src/test/java/org/sonar/core/qualityprofile/db/QualityProfileDaoTest.java5
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