From 7b8577ed9ebae1747a40c7c50c001fb4c08d21eb Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 5 Sep 2014 20:53:41 +0200 Subject: [PATCH] SONAR-5531 - Added project and component to IssueResult --- .../org/sonar/server/issue/IssueService.java | 20 ++++++++++++++++--- .../sonar/server/issue/index/IssueResult.java | 9 +++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java index 2965917ce45..c8741331806 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java @@ -340,12 +340,26 @@ public class IssueService implements ServerComponent { SearchResponse esResults = issueIndex.search(query, options); // Extend the content of the resultSet to make an actual IssueResponse - IssueResult results = new IssueResult(issueIndex, esResults); - results.setPaging(Paging.create( + IssueResult result = new IssueResult(issueIndex, esResults); + result.setPaging(Paging.create( options.getLimit(), (options.getOffset() * options.getLimit()) + 1, new Long(esResults.getHits().getTotalHits()).intValue())); - return results; + // TODO Optimise + // Insert the projects and component name; + DbSession session = dbClient.openSession(false); + try { + for (Issue issue : result.getHits()) { + result.addProject(issue.key(), + dbClient.componentDao().getByKey(session, issue.projectKey())); + result.addComponent(issue.key(), + dbClient.componentDao().getByKey(session, issue.componentKey())); + } + } finally { + session.close(); + } + + return result; } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueResult.java b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueResult.java index b10f8716ad3..ca80f822593 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueResult.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueResult.java @@ -29,6 +29,7 @@ import org.sonar.api.issue.IssueQueryResult; import org.sonar.api.rules.Rule; import org.sonar.api.user.User; import org.sonar.api.utils.Paging; +import org.sonar.core.component.ComponentDto; import org.sonar.server.search.BaseIndex; import org.sonar.server.search.Result; @@ -134,4 +135,12 @@ public class IssueResult extends Result implements IssueQueryResult { public boolean maxResultsReached() { return false; } + + public void addProject(String key, ComponentDto project) { + this.projects.put(key, project); + } + + public void addComponent(String key, ComponentDto project) { + this.components.put(key, project); + } } -- 2.39.5