aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2014-09-29 11:43:58 +0200
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2014-09-29 17:14:58 +0200
commit7de252ea61bdfc2cb33f74f04aa781d0ad773183 (patch)
tree04710c8a2bc8a74d2039ed0e5e90c56b2aa6e00e /sonar-core
parent64b43e759608ba4bec30be11dc9c6a0feed6fc8e (diff)
downloadsonarqube-7de252ea61bdfc2cb33f74f04aa781d0ad773183.tar.gz
sonarqube-7de252ea61bdfc2cb33f74f04aa781d0ad773183.zip
SONAR-5624 clean analysis report tasks to pending when server is starting and truncate when upgrading
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportDto.java2
-rw-r--r--sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportMapper.java16
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/computation/db/AnalysisReportMapper.xml25
3 files changed, 41 insertions, 2 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportDto.java b/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportDto.java
index 043fd5303e9..82ed36befae 100644
--- a/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportDto.java
+++ b/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportDto.java
@@ -34,7 +34,7 @@ public class AnalysisReportDto extends Dto<String> {
private String data;
public enum Status {
- PENDING
+ PENDING, WORKING
}
public String getProjectKey() {
diff --git a/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportMapper.java b/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportMapper.java
index 0d6af52b8bc..c32f0610070 100644
--- a/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportMapper.java
+++ b/sonar-core/src/main/java/org/sonar/core/computation/db/AnalysisReportMapper.java
@@ -19,9 +19,25 @@
*/
package org.sonar.core.computation.db;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+
/**
* since 5.0
*/
public interface AnalysisReportMapper {
void insert(AnalysisReportDto report);
+
+ java.util.List<AnalysisReportDto> selectByProjectKey(String projectKey);
+
+ /**
+ * startup task use only
+ */
+ void cleanWithUpdateAllToPendingStatus(@Param("status") AnalysisReportDto.Status status, @Param("updatedAt") Date updatedAt);
+
+ /**
+ * startup task use only
+ */
+ void cleanWithTruncate();
}
diff --git a/sonar-core/src/main/resources/org/sonar/core/computation/db/AnalysisReportMapper.xml b/sonar-core/src/main/resources/org/sonar/core/computation/db/AnalysisReportMapper.xml
index d7b54447271..785e71a775e 100644
--- a/sonar-core/src/main/resources/org/sonar/core/computation/db/AnalysisReportMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/computation/db/AnalysisReportMapper.xml
@@ -2,11 +2,34 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.sonar.core.computation.db.AnalysisReportMapper">
+ <sql id="reportColumns">
+ id,
+ project_key as projectKey,
+ report_status as status,
+ report_data as data,
+ created_at as createdAt,
+ updated_at as updatedAt
+ </sql>
<insert id="insert" parameterType="AnalysisReport" useGeneratedKeys="true">
insert into analysis_reports
(project_key, report_status, report_data, created_at, updated_at)
values (#{projectKey}, #{status}, #{data}, #{createdAt}, #{updatedAt})
</insert>
-</mapper>
+ <update id="cleanWithUpdateAllToPendingStatus" parameterType="map">
+ update analysis_reports
+ set report_status=#{status}, updated_at=#{updatedAt}
+ </update>
+
+ <delete id="cleanWithTruncate">
+ truncate table analysis_reports
+ </delete>
+
+ <select id="selectByProjectKey" parameterType="String" resultType="AnalysisReport">
+ select
+ <include refid="reportColumns"/>
+ from analysis_reports
+ where project_key = #{projectKey}
+ </select>
+</mapper> \ No newline at end of file