summaryrefslogtreecommitdiffstats
path: root/sonar-batch-protocol/src/main/java
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-03-02 09:54:06 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2015-03-04 21:18:17 +0100
commit6108a50f766dac17b0bd45258c70ffd346d366c1 (patch)
tree4633e567282ffefcf8eb996aa9061e15cef338e5 /sonar-batch-protocol/src/main/java
parentae4801956efbc9eba1971d0b899267a3e8406c42 (diff)
downloadsonarqube-6108a50f766dac17b0bd45258c70ffd346d366c1.tar.gz
sonarqube-6108a50f766dac17b0bd45258c70ffd346d366c1.zip
SONAR-5945 close issues on deleted components
Diffstat (limited to 'sonar-batch-protocol/src/main/java')
-rw-r--r--sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchOutputWriter.java14
-rw-r--r--sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchReportReader.java10
-rw-r--r--sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/FileStructure.java2
3 files changed, 25 insertions, 1 deletions
diff --git a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchOutputWriter.java b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchOutputWriter.java
index 2e12a297e1e..ce1ce341d6f 100644
--- a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchOutputWriter.java
+++ b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchOutputWriter.java
@@ -62,4 +62,18 @@ public class BatchOutputWriter {
File file = fileStructure.fileFor(FileStructure.Domain.ISSUES, componentRef);
ProtobufUtil.writeToFile(issuesBuilder.build(), file);
}
+
+ /**
+ * Issues on components which have been deleted are stored in another location.
+ * Temporary hack, waiting for computation stack
+ */
+ public void writeDeletedComponentIssues(int componentRef, String componentUuid, Iterable<BatchReport.Issue> issues) {
+ BatchReport.Issues.Builder issuesBuilder = BatchReport.Issues.newBuilder();
+ issuesBuilder.setComponentRef(componentRef);
+ issuesBuilder.setComponentUuid(componentUuid);
+ issuesBuilder.addAllList(issues);
+ File file = fileStructure.fileFor(FileStructure.Domain.ISSUES_ON_DELETED, componentRef);
+ ProtobufUtil.writeToFile(issuesBuilder.build(), file);
+ }
+
}
diff --git a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchReportReader.java b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchReportReader.java
index 872aa277e5d..e1695c1bd07 100644
--- a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchReportReader.java
+++ b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/BatchReportReader.java
@@ -20,6 +20,7 @@
package org.sonar.batch.protocol.output;
import org.sonar.batch.protocol.ProtobufUtil;
+import org.sonar.batch.protocol.output.BatchReport.Issues;
import javax.annotation.CheckForNull;
@@ -60,4 +61,13 @@ public class BatchReportReader {
}
return Collections.emptyList();
}
+
+ public Issues readDeletedComponentIssues(int deletedComponentRef) {
+ File file = fileStructure.fileFor(FileStructure.Domain.ISSUES_ON_DELETED, deletedComponentRef);
+ if (!file.exists() || !file.isFile()) {
+ throw new IllegalStateException("Unable to find report for deleted component #" + deletedComponentRef);
+ }
+ // all the issues are loaded in memory
+ return ProtobufUtil.readFile(file, Issues.PARSER);
+ }
}
diff --git a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/FileStructure.java b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/FileStructure.java
index 5e2d51b26ce..4f9529d2c3b 100644
--- a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/FileStructure.java
+++ b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/output/FileStructure.java
@@ -27,7 +27,7 @@ import java.io.File;
public class FileStructure {
public static enum Domain {
- ISSUES("issues-"), COMPONENT("component-");
+ ISSUES("issues-"), ISSUES_ON_DELETED("issues-deleted-"), COMPONENT("component-");
private final String filePrefix;