aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2014-11-24 18:00:31 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2014-11-24 21:47:19 +0100
commitee2626afdde71c4f3380f3d22b3cc132be8bf465 (patch)
tree1291cd06e39a8325c1c9b70668d8550135b7d852 /sonar-core
parentf7598fbe9b8df747b525e9642fba3e7a3ae9da77 (diff)
downloadsonarqube-ee2626afdde71c4f3380f3d22b3cc132be8bf465.tar.gz
sonarqube-ee2626afdde71c4f3380f3d22b3cc132be8bf465.zip
SONAR-5868 Allow issue tracking mechanism to work without full previous sources
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/source/db/FileSourceDto.java11
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl1
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/source/db/FileSourceMapper.xml7
-rw-r--r--sonar-core/src/test/java/org/sonar/core/source/db/FileSourceDaoTest.java10
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/insert-result.xml2
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/shared.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/update-result.xml1
7 files changed, 27 insertions, 6 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/source/db/FileSourceDto.java b/sonar-core/src/main/java/org/sonar/core/source/db/FileSourceDto.java
index e992ee4a648..722f10551fb 100644
--- a/sonar-core/src/main/java/org/sonar/core/source/db/FileSourceDto.java
+++ b/sonar-core/src/main/java/org/sonar/core/source/db/FileSourceDto.java
@@ -29,6 +29,7 @@ public class FileSourceDto {
private long createdAt;
private long updatedAt;
private String data;
+ private String lineHashes;
private String dataHash;
public Long getId() {
@@ -68,6 +69,16 @@ public class FileSourceDto {
return this;
}
+ @CheckForNull
+ public String getLineHashes() {
+ return lineHashes;
+ }
+
+ public FileSourceDto setLineHashes(@Nullable String lineHashes) {
+ this.lineHashes = lineHashes;
+ return this;
+ }
+
public String getDataHash() {
return dataHash;
}
diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
index 7de7f8d46c2..fec355edc63 100644
--- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
+++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
@@ -571,6 +571,7 @@ CREATE TABLE "FILE_SOURCES" (
"PROJECT_UUID" VARCHAR(50) NOT NULL,
"FILE_UUID" VARCHAR(50) NOT NULL,
"DATA" CLOB(2147483647),
+ "LINE_HASHES" CLOB(2147483647),
"DATA_HASH" VARCHAR(50) NOT NULL,
"CREATED_AT" BIGINT NOT NULL,
"UPDATED_AT" BIGINT NOT NULL
diff --git a/sonar-core/src/main/resources/org/sonar/core/source/db/FileSourceMapper.xml b/sonar-core/src/main/resources/org/sonar/core/source/db/FileSourceMapper.xml
index 4b3b88465c3..d7b65c501ea 100644
--- a/sonar-core/src/main/resources/org/sonar/core/source/db/FileSourceMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/source/db/FileSourceMapper.xml
@@ -5,7 +5,7 @@
<mapper namespace="org.sonar.core.source.db.FileSourceMapper">
<select id="select" parameterType="string" resultType="org.sonar.core.source.db.FileSourceDto">
- SELECT id, project_uuid as projectUuid, file_uuid as fileUuid, created_at as createdAt, updated_at as updatedAt, data, data_hash as dataHash
+ SELECT id, project_uuid as projectUuid, file_uuid as fileUuid, created_at as createdAt, updated_at as updatedAt, data, line_hashes as lineHashes, data_hash as dataHash
FROM file_sources
WHERE file_uuid = #{fileUuid}
</select>
@@ -17,14 +17,15 @@
</select>
<insert id="insert" parameterType="org.sonar.core.source.db.FileSourceDto" useGeneratedKeys="false">
- insert into file_sources (project_uuid, file_uuid, created_at, updated_at, data, data_hash)
- values (#{projectUuid}, #{fileUuid}, #{createdAt}, #{updatedAt}, #{data}, #{dataHash})
+ insert into file_sources (project_uuid, file_uuid, created_at, updated_at, data, line_hashes, data_hash)
+ values (#{projectUuid}, #{fileUuid}, #{createdAt}, #{updatedAt}, #{data}, #{lineHashes}, #{dataHash})
</insert>
<update id="update" parameterType="org.sonar.core.source.db.FileSourceDto" useGeneratedKeys="false">
update file_sources set
updated_at = #{updatedAt},
data = #{data},
+ line_hashes = #{lineHashes},
data_hash = #{dataHash}
where id = #{id}
</update>
diff --git a/sonar-core/src/test/java/org/sonar/core/source/db/FileSourceDaoTest.java b/sonar-core/src/test/java/org/sonar/core/source/db/FileSourceDaoTest.java
index ddd45cedfa5..0487d80b379 100644
--- a/sonar-core/src/test/java/org/sonar/core/source/db/FileSourceDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/source/db/FileSourceDaoTest.java
@@ -53,7 +53,9 @@ public class FileSourceDaoTest extends AbstractDaoTestCase {
@Test
public void insert() throws Exception {
- dao.insert(new FileSourceDto().setProjectUuid("prj").setFileUuid("file").setData("bla bla").setDataHash("hash2")
+ dao.insert(new FileSourceDto().setProjectUuid("prj").setFileUuid("file").setData("bla bla")
+ .setDataHash("hash2")
+ .setLineHashes("foo\nbar")
.setCreatedAt(DateUtils.parseDateTime("2014-10-31T16:44:02+0100").getTime())
.setUpdatedAt(DateUtils.parseDateTime("2014-10-31T16:44:02+0100").getTime()));
@@ -62,10 +64,12 @@ public class FileSourceDaoTest extends AbstractDaoTestCase {
@Test
public void update() throws Exception {
- dao.update(new FileSourceDto().setId(101L).setProjectUuid("prj").setFileUuid("file").setData("updated data").setDataHash("hash2")
+ dao.update(new FileSourceDto().setId(101L).setProjectUuid("prj").setFileUuid("file")
+ .setData("updated data")
+ .setDataHash("hash2")
+ .setLineHashes("foo2\nbar2")
.setUpdatedAt(DateUtils.parseDateTime("2014-10-31T16:44:02+0100").getTime()));
checkTable("update", "file_sources");
}
-
}
diff --git a/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/insert-result.xml b/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/insert-result.xml
index c5d483b7e55..49ea06706e5 100644
--- a/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/insert-result.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/insert-result.xml
@@ -2,11 +2,13 @@
<file_sources id="101" project_uuid="abcd" file_uuid="ab12"
data="aef12a,alice,2014-04-25T12:34:56+0100,,class Foo" data_hash="hash"
+ line_hashes="truc"
created_at="1414597442000" updated_at="1414683842000" />
<file_sources id="102" project_uuid="prj" file_uuid="file"
data="bla bla" data_hash="hash2"
+ line_hashes="foo&#10;bar"
created_at="1414770242000" updated_at="1414770242000" />
</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/shared.xml
index fb3c258ddc0..538240d2fac 100644
--- a/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/shared.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/shared.xml
@@ -2,6 +2,7 @@
<file_sources id="101" project_uuid="abcd" file_uuid="ab12"
data="aef12a,alice,2014-04-25T12:34:56+0100,,class Foo" data_hash="hash"
+ line_hashes="truc"
created_at="1414597442000" updated_at="1414683842000" />
</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/update-result.xml b/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/update-result.xml
index 465b2e52cb8..ddad2e2b410 100644
--- a/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/update-result.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/source/db/FileSourceDaoTest/update-result.xml
@@ -2,6 +2,7 @@
<file_sources id="101" project_uuid="abcd" file_uuid="ab12"
data="updated data" data_hash="hash2"
+ line_hashes="foo2&#10;bar2"
created_at="1414597442000" updated_at="1414770242000" />