You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2014/08/21 20:49:07 UTC

git commit: abstract queue messages

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o-notifications-queue [created] 06db9e798


abstract queue messages


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/06db9e79
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/06db9e79
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/06db9e79

Branch: refs/heads/two-dot-o-notifications-queue
Commit: 06db9e798df420e05760d3e3c7083915b9377e04
Parents: ddc219c
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Aug 21 12:46:50 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Aug 21 12:46:50 2014 -0600

----------------------------------------------------------------------
 .../NotificationsQueueManager.java              |  6 +--
 .../services/notifications/QueueMessage.java    | 43 ++++++++++++++++++++
 2 files changed, 45 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/06db9e79/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsQueueManager.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsQueueManager.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsQueueManager.java
index f36a3de..23e3e62 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsQueueManager.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsQueueManager.java
@@ -74,7 +74,6 @@ public class NotificationsQueueManager implements NotificationServiceProxy {
     private final InflectionUtils utils;
     private AtomicLong consecutiveEmptyQueues = new AtomicLong();
     private Long pushAutoExpireAfter = null;
-    static final String MESSAGE_PROPERTY_DEVICE_UUID = "deviceUUID";
 
     public final Map<String, ProviderAdapter> providerAdapters =   new HashMap<String, ProviderAdapter>(3);
     {
@@ -173,8 +172,7 @@ public class NotificationsQueueManager implements NotificationServiceProxy {
                                         sketch.add(hash,1);
                                     }
                                     maySchedule |= deviceCount.incrementAndGet() % BATCH_SIZE == 0;
-                                    Message message = new Message();
-                                    message.setProperty(MESSAGE_PROPERTY_DEVICE_UUID, deviceRef.getUuid());
+                                    QueueMessage message = new QueueMessage(deviceRef);
                                     qm.postToQueue(queueName, message);
                                     if(notification.getQueued() == null){
                                         // update queued time
@@ -329,7 +327,7 @@ public class NotificationsQueueManager implements NotificationServiceProxy {
                             return messageObservable.map(new Func1<Message, Message>() {
                                 @Override
                                 public Message call(Message message) {
-                                    UUID deviceUUID = (UUID) message.getObjectProperty(MESSAGE_PROPERTY_DEVICE_UUID);
+                                    UUID deviceUUID =QueueMessage.generate(message).getUuid();
                                     boolean foundNotifier = false;
                                     for (Map.Entry<String, Object> entry : payloads.entrySet()) {
                                         try {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/06db9e79/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueMessage.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueMessage.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueMessage.java
new file mode 100644
index 0000000..065d6a3
--- /dev/null
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueMessage.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.usergrid.services.notifications;
+
+import org.apache.usergrid.mq.Message;
+import org.apache.usergrid.persistence.EntityRef;
+
+import java.util.UUID;
+
+public class QueueMessage extends Message {
+
+    static final String MESSAGE_PROPERTY_DEVICE_UUID = "deviceUUID";
+
+    public QueueMessage() {
+    }
+
+    public QueueMessage(UUID deviceId){
+        this.setProperty(MESSAGE_PROPERTY_DEVICE_UUID,deviceId);
+    }
+
+    public QueueMessage(EntityRef deviceRef){
+        this.setProperty(MESSAGE_PROPERTY_DEVICE_UUID,deviceRef.getUuid());
+    }
+
+    public static QueueMessage generate(Message message){
+        return new QueueMessage((UUID) message.getObjectProperty(MESSAGE_PROPERTY_DEVICE_UUID));
+    }
+
+}