Initial plugin source code (stable-2.13)
This patchset contains the initial implementation of the
cloud-notifications plugin for the stable 2.13 branch.
Change-Id: I9c1e4a738682041862a3d9394e13ef97f8928b68
Signed-off-by: Jorge Ruesga <j.ruesga.criado@gmail.com>
diff --git a/BUCK b/BUCK
index 693eccc..cfecda5 100644
--- a/BUCK
+++ b/BUCK
@@ -36,13 +36,13 @@
manifest_entries = [
'Gerrit-PluginName: cloud-notifications',
'Gerrit-ApiType: plugin',
- 'Gerrit-ApiVersion: 2.14-SNAPSHOT',
+ 'Gerrit-ApiVersion: 2.13.3',
'Gerrit-Module: com.ruesga.gerrit.plugins.fcm.ApiModule',
'Gerrit-InitStep: com.ruesga.gerrit.plugins.fcm.InitStep',
'Implementation-Title: Firebase Cloud Notifications Plugin',
'Implementation-Vendor: Jorge Ruesga',
'Implementation-URL: https://gerrit.googlesource.com/plugins/cloud-notifications',
- 'Implementation-Version: 2.14-SNAPSHOT'
+ 'Implementation-Version: 2.13.3'
],
deps = DEPS,
provided_deps = PROVIDED_DEPS
diff --git a/src/main/java/com/ruesga/gerrit/plugins/fcm/ApiModule.java b/src/main/java/com/ruesga/gerrit/plugins/fcm/ApiModule.java
index f240abc..1a43c3c 100644
--- a/src/main/java/com/ruesga/gerrit/plugins/fcm/ApiModule.java
+++ b/src/main/java/com/ruesga/gerrit/plugins/fcm/ApiModule.java
@@ -19,7 +19,6 @@
import static com.ruesga.gerrit.plugins.fcm.server.DeviceResource.DEVICE_KIND;
import static com.ruesga.gerrit.plugins.fcm.server.TokenResource.TOKEN_KIND;
-import com.google.gerrit.extensions.events.AssigneeChangedListener;
import com.google.gerrit.extensions.events.ChangeAbandonedListener;
import com.google.gerrit.extensions.events.ChangeMergedListener;
import com.google.gerrit.extensions.events.ChangeRestoredListener;
@@ -37,7 +36,6 @@
import com.google.gerrit.extensions.restapi.RestApiModule;
import com.google.inject.Scopes;
import com.ruesga.gerrit.plugins.fcm.DatabaseManager;
-import com.ruesga.gerrit.plugins.fcm.handlers.AssigneeChangedEventHandler;
import com.ruesga.gerrit.plugins.fcm.handlers.ChangeAbandonedEventHandler;
import com.ruesga.gerrit.plugins.fcm.handlers.ChangeMergedEventHandler;
import com.ruesga.gerrit.plugins.fcm.handlers.ChangeRestoredEventHandler;
@@ -72,8 +70,6 @@
// Configure listener handlers
DynamicSet.bind(binder(), LifecycleListener.class)
.to(LifeCycleHandler.class);
- DynamicSet.bind(binder(), AssigneeChangedListener.class)
- .to(AssigneeChangedEventHandler.class);
DynamicSet.bind(binder(), ChangeAbandonedListener.class)
.to(ChangeAbandonedEventHandler.class);
DynamicSet.bind(binder(), ChangeMergedListener.class)
diff --git a/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/AssigneeChangedEventHandler.java b/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/AssigneeChangedEventHandler.java
deleted file mode 100644
index 6a6b62e..0000000
--- a/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/AssigneeChangedEventHandler.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2016 Jorge Ruesga
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ruesga.gerrit.plugins.fcm.handlers;
-
-import com.google.gerrit.extensions.annotations.PluginName;
-import com.google.gerrit.extensions.common.AccountInfo;
-import com.google.gerrit.extensions.events.AssigneeChangedListener;
-import com.google.gerrit.reviewdb.client.AccountProjectWatch.NotifyType;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.IdentifiedUser.GenericFactory;
-import com.google.gerrit.server.config.AllProjectsName;
-import com.google.gerrit.server.query.change.ChangeQueryBuilder;
-import com.google.gerrit.server.query.change.ChangeQueryProcessor;
-import com.google.gson.annotations.SerializedName;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.ruesga.gerrit.plugins.fcm.messaging.Notification;
-import com.ruesga.gerrit.plugins.fcm.rest.CloudNotificationEvents;
-import com.ruesga.gerrit.plugins.fcm.workers.FcmUploaderWorker;
-
-public class AssigneeChangedEventHandler extends EventHandler
- implements AssigneeChangedListener {
-
- private static class AssigneeInfo {
- @SerializedName("old") public AccountInfo old;
- @SerializedName("new") public AccountInfo _new;
- }
-
- @Inject
- public AssigneeChangedEventHandler(
- @PluginName String pluginName,
- FcmUploaderWorker uploader,
- AllProjectsName allProjectsName,
- ChangeQueryBuilder cqb,
- ChangeQueryProcessor cqp,
- Provider<ReviewDb> reviewdb,
- GenericFactory identifiedUserFactory) {
- super(pluginName,
- uploader,
- allProjectsName,
- cqb, cqp,
- reviewdb,
- identifiedUserFactory);
- }
-
- protected int getEventType() {
- return CloudNotificationEvents.TOPIC_CHANGED_EVENT;
- }
-
- protected NotifyType getNotifyType() {
- return NotifyType.NEW_PATCHSETS;
- }
-
- @Override
- public void onAssigneeChanged(Event event) {
- AssigneeInfo assignee = new AssigneeInfo();
- assignee.old = event.getOldAssignee();
- assignee._new = event.getChange().assignee;
- Notification notification = createNotification(event);
- notification.extra = getSerializer().toJson(assignee);
- notification.body = formatAccount(event.getWho())
- + " change assignee to "
- + formatAccount(event.getChange().assignee)
- + " on this change";
-
- notify(notification, event);
- }
-
-}
diff --git a/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/ReviewerAddedEventHandler.java b/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/ReviewerAddedEventHandler.java
index 4f4a16d..63de838 100644
--- a/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/ReviewerAddedEventHandler.java
+++ b/src/main/java/com/ruesga/gerrit/plugins/fcm/handlers/ReviewerAddedEventHandler.java
@@ -15,10 +15,7 @@
*/
package com.ruesga.gerrit.plugins.fcm.handlers;
-import java.util.Arrays;
-
import com.google.gerrit.extensions.annotations.PluginName;
-import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.extensions.events.ReviewerAddedListener;
import com.google.gerrit.reviewdb.client.AccountProjectWatch.NotifyType;
import com.google.gerrit.reviewdb.server.ReviewDb;
@@ -61,17 +58,11 @@
}
@Override
- public void onReviewersAdded(Event event) {
- int count = event.getReviewers().size();
- String[] reviewers = new String[count];
- for (int i = 0; i < count; i++) {
- AccountInfo reviewer = event.getReviewers().get(i);
- reviewers[i] = formatAccount(reviewer);
- }
+ public void onReviewerAdded(Event event) {
Notification notification = createNotification(event);
- notification.extra = getSerializer().toJson(event.getReviewers());
+ notification.extra = getSerializer().toJson(event.getReviewer());
notification.body = formatAccount(event.getWho())
- + " added " + Arrays.toString(reviewers)
+ + " added " + formatAccount(event.getReviewer())
+ " as reviewer on this changed";
notify(notification, event);
diff --git a/src/main/java/com/ruesga/gerrit/plugins/fcm/rest/CloudNotificationEvents.java b/src/main/java/com/ruesga/gerrit/plugins/fcm/rest/CloudNotificationEvents.java
index 4487788..f23796b 100644
--- a/src/main/java/com/ruesga/gerrit/plugins/fcm/rest/CloudNotificationEvents.java
+++ b/src/main/java/com/ruesga/gerrit/plugins/fcm/rest/CloudNotificationEvents.java
@@ -27,5 +27,4 @@
public static final int REVIEWER_DELETED_EVENT = 0x100;
public static final int PATCHSET_CREATED_EVENT = 0x200;
public static final int TOPIC_CHANGED_EVENT = 0x400;
- public static final int ASSIGNEE_CHANGED_EVENT = 0x800;
}
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md
index 1bc2410..04029fb 100644
--- a/src/main/resources/Documentation/build.md
+++ b/src/main/resources/Documentation/build.md
@@ -13,7 +13,7 @@
cd gerrit
git submodule init
git submodule update
- git clone https://gerrit.googlesource.com/plugins/cloud-notifications
+ git clone https://gerrit.googlesource.com/plugins/cloud-notifications plugins/cloud-notifications
buck build plugins/cloud-notifications
```