aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-04-09 09:58:03 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-04-09 09:58:03 +0200
commit2a0843355942ed03672048cb36b2eec25f8e410b (patch)
tree59b873fd7b531247994298fb6e70b0913d730641
parentc60ddf5ab35dafebf515145ad9993dbfa098fe6e (diff)
downloadsonarqube-2a0843355942ed03672048cb36b2eec25f8e410b.tar.gz
sonarqube-2a0843355942ed03672048cb36b2eec25f8e410b.zip
SONAR-3755 Fix IssueDao and add title property in Issue
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml9
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/DefaultIssuableTest.java1
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java12
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueFinder.java5
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueQuery.java6
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java2
7 files changed, 25 insertions, 14 deletions
diff --git a/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml b/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml
index 01469a975f6..7a88f7fb484 100644
--- a/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml
@@ -84,9 +84,7 @@
</select>
<select id="select" parameterType="map" resultType="Issue">
- select <include refid="issueColumns"/>
- from issues i
- <!--where i.resolution=#{resolution}-->
+ select <include refid="issueColumns"/> from issues i
<where>
<if test="severity != null">
and i.severity=#{severity}
@@ -103,11 +101,6 @@
<if test="assigneeLogin != null">
and i.assignee_login=#{assigneeLogin}
</if>
- <if test="componentKeys != null">
- and i.resource_id in
- <foreach item="componentKey" index="index" collection="componentKeys" open="(" separator="," close=")">#{componentKey}
- </foreach>
- </if>
</where>
</select>
diff --git a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssuableTest.java b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssuableTest.java
index 7c63d6c4184..bfafb3432f6 100644
--- a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssuableTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssuableTest.java
@@ -52,6 +52,7 @@ public class DefaultIssuableTest {
.line(10)
.componentKey("componentKey")
.cost(10.0)
+ .title("title")
.message("issue message")
.userLogin("user")
.assigneeLogin("user")
diff --git a/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java b/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java
index 99c09d66010..a5eef723f93 100644
--- a/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java
@@ -135,9 +135,9 @@ public class IssueDaoTest extends AbstractDaoTestCase {
Collection<IssueDto> issues = dao.select(issueQuery);
assertThat(issues).hasSize(1);
- issueQuery = new IssueQuery.Builder().componentKeys("400").build();
+ issueQuery = new IssueQuery.Builder().build();
issues = dao.select(issueQuery);
- assertThat(issues).hasSize(2);
+ assertThat(issues).hasSize(5);
}
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
index 2016e2316d9..d7c38486e4e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java
@@ -46,6 +46,7 @@ public class Issue {
private String ruleKey;
private String ruleRepositoryKey;
private String severity;
+ private String title;
private String message;
private Integer line;
private Double cost;
@@ -95,6 +96,10 @@ public class Issue {
return severity;
}
+ public String title() {
+ return title;
+ }
+
public String message() {
return message;
}
@@ -162,6 +167,7 @@ public class Issue {
private String ruleKey;
private String ruleRepositoryKey;
private String severity;
+ private String title;
private String message;
private Integer line;
private Double cost;
@@ -184,6 +190,7 @@ public class Issue {
this.ruleKey = issue.ruleKey();
this.ruleRepositoryKey = issue.ruleRepositoryKey();
this.severity = issue.severity();
+ this.title = title;
this.message = issue.message();
this.line = issue.line();
this.cost = issue.cost();
@@ -214,6 +221,11 @@ public class Issue {
return this;
}
+ public Builder title(String title) {
+ this.title = title;
+ return this;
+ }
+
public Builder message(String message) {
this.message = message;
return this;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueFinder.java
index fecaed24d9c..c944d8813b9 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueFinder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueFinder.java
@@ -20,12 +20,15 @@
package org.sonar.api.issue;
+import org.sonar.api.ServerComponent;
+import org.sonar.api.task.TaskComponent;
+
import java.util.List;
/**
* @since 3.6
*/
-public interface IssueFinder {
+public interface IssueFinder extends TaskComponent, ServerComponent {
List<Issue> find(IssueQuery issueQuery);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueQuery.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueQuery.java
index c0f324b410e..887dd022ad6 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueQuery.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueQuery.java
@@ -34,7 +34,7 @@ public class IssueQuery {
private String severity;
private String status;
private String resolution;
- private String[] componentKeys;
+ private List<String> componentKeys;
private String userLogin;
private String assigneeLogin;
@@ -42,7 +42,7 @@ public class IssueQuery {
this.severity = builder.severity;
this.status = builder.status;
this.resolution = builder.resolution;
- this.componentKeys = builder.componentKeys.isEmpty() ? null : builder.componentKeys.toArray(new String[]{});
+ this.componentKeys = builder.componentKeys;
this.userLogin = builder.userLogin;
this.assigneeLogin = builder.assigneeLogin;
}
@@ -59,7 +59,7 @@ public class IssueQuery {
return resolution;
}
- public String[] componentKeys() {
+ public List<String> componentKeys() {
return componentKeys;
}
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index fd46071d9d0..158abd83c86 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -40,6 +40,7 @@ import org.sonar.core.config.Logback;
import org.sonar.core.i18n.GwtI18n;
import org.sonar.core.i18n.I18nManager;
import org.sonar.core.i18n.RuleI18nManager;
+import org.sonar.core.issue.DefaultIssueFinder;
import org.sonar.core.measure.MeasureFilterEngine;
import org.sonar.core.measure.MeasureFilterExecutor;
import org.sonar.core.measure.MeasureFilterFactory;
@@ -229,6 +230,7 @@ public final class Platform {
servicesContainer.addSingleton(DryRunDatabaseFactory.class);
servicesContainer.addSingleton(DefaultResourcePermissions.class);
servicesContainer.addSingleton(Periods.class);
+ servicesContainer.addSingleton(DefaultIssueFinder.class);
// Notifications
servicesContainer.addSingleton(EmailSettings.class);