aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/main
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-04-18 12:15:13 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-04-18 14:09:18 +0200
commitbfeca720d3a702b77664b0164aa02ce89b353cec (patch)
treee68bad3f6151ed92c89667fa7e92e55cc8487401 /sonar-batch/src/main
parent5857333fb71af4090a6b3dcb3e972d465873f98d (diff)
downloadsonarqube-bfeca720d3a702b77664b0164aa02ce89b353cec.tar.gz
sonarqube-bfeca720d3a702b77664b0164aa02ce89b353cec.zip
SONAR-5218 Once a module has been turned into a project, its issues are no more visible in the UI
Diffstat (limited to 'sonar-batch/src/main')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/issue/DefaultIssuable.java7
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/issue/IssuableFactory.java7
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/issue/ModuleIssues.java1
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/issue/ScanIssueStorage.java21
4 files changed, 17 insertions, 19 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/DefaultIssuable.java b/sonar-batch/src/main/java/org/sonar/batch/issue/DefaultIssuable.java
index 62b44e7d69e..578bb2bb49e 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/issue/DefaultIssuable.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/issue/DefaultIssuable.java
@@ -24,6 +24,7 @@ import org.sonar.api.component.Component;
import org.sonar.api.issue.Issuable;
import org.sonar.api.issue.Issue;
import org.sonar.api.issue.internal.DefaultIssue;
+import org.sonar.api.resources.Project;
import org.sonar.core.issue.DefaultIssueBuilder;
import java.util.List;
@@ -36,16 +37,18 @@ public class DefaultIssuable implements Issuable {
private final ModuleIssues moduleIssues;
private final IssueCache cache;
private final Component component;
+ private final Project project;
- DefaultIssuable(Component component, ModuleIssues moduleIssues, IssueCache cache) {
+ DefaultIssuable(Component component, Project project, ModuleIssues moduleIssues, IssueCache cache) {
this.component = component;
+ this.project = project;
this.moduleIssues = moduleIssues;
this.cache = cache;
}
@Override
public IssueBuilder newIssueBuilder() {
- return new DefaultIssueBuilder().componentKey(component.key());
+ return new DefaultIssueBuilder().componentKey(component.key()).projectKey(project.getKey());
}
@Override
diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/IssuableFactory.java b/sonar-batch/src/main/java/org/sonar/batch/issue/IssuableFactory.java
index 147ab7c7c15..7491bbb7814 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/issue/IssuableFactory.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/issue/IssuableFactory.java
@@ -22,6 +22,7 @@ package org.sonar.batch.issue;
import org.sonar.api.component.Component;
import org.sonar.api.issue.Issuable;
import org.sonar.api.resources.Scopes;
+import org.sonar.batch.ProjectTree;
import org.sonar.core.component.PerspectiveBuilder;
import org.sonar.core.component.ResourceComponent;
@@ -35,11 +36,13 @@ public class IssuableFactory extends PerspectiveBuilder<Issuable> {
private final ModuleIssues moduleIssues;
private final IssueCache cache;
+ private final ProjectTree projectTree;
- public IssuableFactory(ModuleIssues moduleIssues, IssueCache cache) {
+ public IssuableFactory(ModuleIssues moduleIssues, IssueCache cache, ProjectTree projectTree) {
super(Issuable.class);
this.moduleIssues = moduleIssues;
this.cache = cache;
+ this.projectTree = projectTree;
}
@CheckForNull
@@ -49,6 +52,6 @@ public class IssuableFactory extends PerspectiveBuilder<Issuable> {
if (component instanceof ResourceComponent) {
supported = Scopes.isHigherThanOrEquals(((ResourceComponent) component).scope(), Scopes.FILE);
}
- return supported ? new DefaultIssuable(component, moduleIssues, cache) : null;
+ return supported ? new DefaultIssuable(component, projectTree.getRootProject(), moduleIssues, cache) : null;
}
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/ModuleIssues.java b/sonar-batch/src/main/java/org/sonar/batch/issue/ModuleIssues.java
index c0a49d68671..6f46e2cc7a9 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/issue/ModuleIssues.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/issue/ModuleIssues.java
@@ -67,6 +67,7 @@ public class ModuleIssues {
private DefaultIssue newIssue(Violation violation) {
return (DefaultIssue) new DefaultIssueBuilder()
.componentKey(violation.getResource().getEffectiveKey())
+ .projectKey(project.getRoot().getEffectiveKey())
.ruleKey(RuleKey.of(violation.getRule().getRepositoryKey(), violation.getRule().getKey()))
.effortToFix(violation.getCost())
.line(violation.getLineId())
diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/ScanIssueStorage.java b/sonar-batch/src/main/java/org/sonar/batch/issue/ScanIssueStorage.java
index 23dab80cde1..723082eb335 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/issue/ScanIssueStorage.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/issue/ScanIssueStorage.java
@@ -23,6 +23,7 @@ import org.sonar.api.BatchComponent;
import org.sonar.api.database.model.Snapshot;
import org.sonar.api.issue.internal.DefaultIssue;
import org.sonar.api.rules.RuleFinder;
+import org.sonar.batch.ProjectTree;
import org.sonar.batch.index.SnapshotCache;
import org.sonar.core.issue.db.IssueStorage;
import org.sonar.core.persistence.MyBatis;
@@ -34,16 +35,18 @@ public class ScanIssueStorage extends IssueStorage implements BatchComponent {
private final SnapshotCache snapshotCache;
private final ResourceDao resourceDao;
+ private final ProjectTree projectTree;
- public ScanIssueStorage(MyBatis mybatis, RuleFinder ruleFinder, SnapshotCache snapshotCache, ResourceDao resourceDao) {
+ public ScanIssueStorage(MyBatis mybatis, RuleFinder ruleFinder, SnapshotCache snapshotCache, ResourceDao resourceDao, ProjectTree projectTree) {
super(mybatis, ruleFinder);
this.snapshotCache = snapshotCache;
this.resourceDao = resourceDao;
+ this.projectTree = projectTree;
}
@Override
protected long componentId(DefaultIssue issue) {
- Snapshot snapshot = getSnapshot(issue);
+ Snapshot snapshot = snapshotCache.get(issue.componentKey());
if (snapshot != null) {
return snapshot.getResourceId();
}
@@ -58,19 +61,7 @@ public class ScanIssueStorage extends IssueStorage implements BatchComponent {
@Override
protected long projectId(DefaultIssue issue) {
- Snapshot snapshot = getSnapshot(issue);
- if (snapshot != null) {
- return snapshot.getRootProjectId();
- }
- throw new IllegalStateException("Project id not found for: " + issue.componentKey());
- }
-
- private Snapshot getSnapshot(DefaultIssue issue) {
- Snapshot snapshot = snapshotCache.get(issue.componentKey());
- if (snapshot != null) {
- return snapshot;
- }
- return null;
+ return projectTree.getRootProject().getId();
}
}