From 43c9839354d12e4a25642511c1adcbbc50813331 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 27 May 2013 19:05:54 +0200 Subject: [PATCH] Fix conflicts --- .../org/sonar/plugins/core/CorePlugin.java | 10 --- .../core/sensors/ReviewNotifications.java | 85 ------------------- .../core}/issue/DefaultIssueQueryResult.java | 2 +- .../issue/DefaultIssueQueryResultTest.java | 5 +- .../core/issue/IssueNotificationsTest.java | 3 +- .../server/issue/DefaultIssueFinder.java | 1 + 6 files changed, 6 insertions(+), 100 deletions(-) delete mode 100644 plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewNotifications.java rename {sonar-server/src/main/java/org/sonar/server => sonar-core/src/main/java/org/sonar/core}/issue/DefaultIssueQueryResult.java (99%) diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java index 779c33832ed..741f1176f1a 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java @@ -17,7 +17,6 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package org.sonar.plugins.core; import com.google.common.collect.ImmutableList; @@ -36,21 +35,13 @@ import org.sonar.plugins.core.issue.notification.*; import org.sonar.plugins.core.measurefilters.MyFavouritesFilter; import org.sonar.plugins.core.measurefilters.ProjectFilter; import org.sonar.plugins.core.notifications.alerts.NewAlerts; -import org.sonar.plugins.core.notifications.reviews.ChangesInReviewAssignedToMeOrCreatedByMe; -import org.sonar.plugins.core.notifications.reviews.NewFalsePositiveReview; -import org.sonar.plugins.core.notifications.violations.NewViolationsOnFirstDifferentialPeriod; import org.sonar.plugins.core.security.ApplyProjectRolesDecorator; import org.sonar.plugins.core.sensors.*; import org.sonar.plugins.core.timemachine.*; import org.sonar.plugins.core.web.Lcom4Viewer; import org.sonar.plugins.core.web.TestsViewer; import org.sonar.plugins.core.widgets.*; -import org.sonar.plugins.core.widgets.issues.ActionPlansWidget; import org.sonar.plugins.core.widgets.issues.*; -import org.sonar.plugins.core.widgets.reviews.FalsePositiveReviewsWidget; -import org.sonar.plugins.core.widgets.reviews.MyReviewsWidget; -import org.sonar.plugins.core.widgets.reviews.ProjectReviewsWidget; -import org.sonar.plugins.core.widgets.reviews.ReviewsPerDeveloperWidget; import java.util.List; @@ -446,7 +437,6 @@ public final class CorePlugin extends SonarPlugin { NoSonarFilter.class, DirectoriesDecorator.class, FilesDecorator.class, - ReviewNotifications.class, IndexProjectPostJob.class, ManualMeasureDecorator.class, diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewNotifications.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewNotifications.java deleted file mode 100644 index d9224b9d109..00000000000 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewNotifications.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * SonarQube, open source software quality management tool. - * Copyright (C) 2008-2013 SonarSource - * mailto:contact AT sonarsource DOT com - * - * SonarQube is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * SonarQube is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.core.sensors; - -import org.sonar.api.BatchExtension; -import org.sonar.api.database.model.User; -import org.sonar.api.notifications.Notification; -import org.sonar.api.notifications.NotificationManager; -import org.sonar.api.resources.Project; -import org.sonar.api.resources.Resource; -import org.sonar.api.security.UserFinder; -import org.sonar.core.review.ReviewDto; - -import javax.annotation.Nullable; - -public class ReviewNotifications implements BatchExtension { - private NotificationManager notificationManager; - private UserFinder userFinder; - - public ReviewNotifications(NotificationManager notificationManager, UserFinder userFinder) { - this.notificationManager = notificationManager; - this.userFinder = userFinder; - } - - void notifyReopened(ReviewDto review, Project project, Resource resource) { - Notification notification = createReviewNotification(review, project, resource) - .setFieldValue("old.status", review.getStatus()) - .setFieldValue("new.status", ReviewDto.STATUS_REOPENED) - .setFieldValue("old.resolution", review.getResolution()) - .setFieldValue("new.resolution", null); - notificationManager.scheduleForSending(notification); - } - - void notifyClosed(ReviewDto review, Project project, @Nullable Resource resource) { - Notification notification = createReviewNotification(review, project, resource) - .setFieldValue("old.status", review.getStatus()) - .setFieldValue("new.status", ReviewDto.STATUS_CLOSED); - notificationManager.scheduleForSending(notification); - } - - private Notification createReviewNotification(ReviewDto review, Project project, @Nullable Resource resource) { - return new Notification("review-changed") - .setDefaultMessage("Review #" + review.getId() + " has changed.") - .setFieldValue("reviewId", String.valueOf(review.getId())) - .setFieldValue("project", project.getRoot().getLongName()) - .setFieldValue("projectId", String.valueOf(project.getId())) - .setFieldValue("resource", resource != null ? resource.getLongName() : null) - .setFieldValue("title", review.getTitle()) - .setFieldValue("creator", getCreator(review)) - .setFieldValue("assignee", getAssignee(review)); - } - - private String getCreator(ReviewDto review) { - if (review.getUserId() == null) { // no creator and in fact this should never happen in real-life, however happens during unit tests - return null; - } - User user = userFinder.findById(review.getUserId()); - return user != null ? user.getLogin() : null; - } - - private String getAssignee(ReviewDto review) { - if (review.getAssigneeId() == null) { // not assigned - return null; - } - User user = userFinder.findById(review.getAssigneeId().intValue()); - return user != null ? user.getLogin() : null; - } -} diff --git a/sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueQueryResult.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueQueryResult.java similarity index 99% rename from sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueQueryResult.java rename to sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueQueryResult.java index 18b686048ee..239d1b8d1e1 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueQueryResult.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueQueryResult.java @@ -18,7 +18,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.server.issue; +package org.sonar.core.issue; import com.google.common.collect.Maps; import org.sonar.api.component.Component; diff --git a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueQueryResultTest.java b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueQueryResultTest.java index c3241d569c6..b1018bd62a8 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueQueryResultTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueQueryResultTest.java @@ -23,18 +23,19 @@ import org.junit.Test; import org.sonar.api.issue.Issue; import java.util.Arrays; +import java.util.Collections; import static org.fest.assertions.Assertions.assertThat; public class DefaultIssueQueryResultTest { @Test public void test_first_issue() { - DefaultIssueQueryResult result = new DefaultIssueQueryResult(); + DefaultIssueQueryResult result = new DefaultIssueQueryResult(Collections.emptyList()); assertThat(result.first()).isNull(); Issue first = new DefaultIssue(); Issue second = new DefaultIssue(); - result.setIssues(Arrays.asList(first, second)); + result = new DefaultIssueQueryResult(Arrays.asList(first, second)); assertThat(result.first()).isSameAs(first); } } diff --git a/sonar-core/src/test/java/org/sonar/core/issue/IssueNotificationsTest.java b/sonar-core/src/test/java/org/sonar/core/issue/IssueNotificationsTest.java index 42c404ada63..34789bb72ce 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/IssueNotificationsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/IssueNotificationsTest.java @@ -76,8 +76,7 @@ public class IssueNotificationsTest { .setFieldDiff(context, "status", "OPEN", "RESOLVED") .setComponentKey("struts:Action") .setProjectKey("struts"); - DefaultIssueQueryResult queryResult = new DefaultIssueQueryResult(); - queryResult.setIssues(Arrays.asList(issue)); + DefaultIssueQueryResult queryResult = new DefaultIssueQueryResult(Arrays.asList(issue)); queryResult.addProjects(Arrays.asList(new Project("struts"))); Notification notification = issueNotifications.sendChanges(issue, context, queryResult); diff --git a/sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueFinder.java b/sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueFinder.java index fcdf4e5dbd6..0f099d0f259 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueFinder.java +++ b/sonar-server/src/main/java/org/sonar/server/issue/DefaultIssueFinder.java @@ -32,6 +32,7 @@ import org.sonar.api.user.UserFinder; import org.sonar.api.utils.Paging; import org.sonar.core.issue.DefaultIssue; import org.sonar.core.issue.DefaultIssueComment; +import org.sonar.core.issue.DefaultIssueQueryResult; import org.sonar.core.issue.db.IssueChangeDao; import org.sonar.core.issue.db.IssueDao; import org.sonar.core.issue.db.IssueDto; -- 2.39.5