diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2015-03-02 09:54:06 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-03-04 21:18:17 +0100 |
commit | 6108a50f766dac17b0bd45258c70ffd346d366c1 (patch) | |
tree | 4633e567282ffefcf8eb996aa9061e15cef338e5 /sonar-batch-protocol/src/main/java | |
parent | ae4801956efbc9eba1971d0b899267a3e8406c42 (diff) | |
download | sonarqube-6108a50f766dac17b0bd45258c70ffd346d366c1.tar.gz sonarqube-6108a50f766dac17b0bd45258c70ffd346d366c1.zip |
SONAR-5945 close issues on deleted components
Diffstat (limited to 'sonar-batch-protocol/src/main/java')
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; |