You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2016/04/19 18:51:46 UTC

[49/50] usergrid git commit: Update to newer version of GCM server which lets Usergrid directly set the data object within the SDK instead of just adding key/value pairs.

Update to newer version of GCM server which lets Usergrid directly set the data object within the SDK instead of just adding key/value pairs.


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

Branch: refs/heads/master
Commit: d06918562a6e3f76a3ca98d384d1c5ef6beb1c23
Parents: b8f502f
Author: Michael Russo <mr...@apigee.com>
Authored: Tue Apr 19 17:37:41 2016 +0100
Committer: Michael Russo <mr...@apigee.com>
Committed: Tue Apr 19 17:37:41 2016 +0100

----------------------------------------------------------------------
 stack/pom.xml                                   |  2 +-
 .../services/notifications/gcm/GCMAdapter.java  | 12 +++-----
 .../gcm/NotificationsServiceIT.java             | 32 ++++++++++++++++++++
 3 files changed, 37 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/d0691856/stack/pom.xml
----------------------------------------------------------------------
diff --git a/stack/pom.xml b/stack/pom.xml
index f052bf9..a94233e 100644
--- a/stack/pom.xml
+++ b/stack/pom.xml
@@ -121,7 +121,7 @@
         <antlr.version>3.4</antlr.version>
         <tika.version>1.4</tika.version>
         <mockito.version>1.10.8</mockito.version>
-        <io.apigee.gcm.version>1.0.0</io.apigee.gcm.version>
+        <io.apigee.gcm.version>1.0.1</io.apigee.gcm.version>
 
         <!-- only use half the cores on the machine for testing -->
         <usergrid.it.parallel>methods</usergrid.it.parallel>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d0691856/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
index af0bc78..7929ad4 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
@@ -242,14 +242,10 @@ public class GCMAdapter implements ProviderAdapter {
                     payload.remove(priorityKey);
 
                 }
-//
-//                // add our source notification payload data into the Message Builder
-//                // Message.Builder requires the payload to be Map<String,String> so blindly cast
-//                Map<String,String> dataMap = (Map<String,String>) payload;
-//
-//                dataMap.forEach( (key, value) -> builder.addData(key, value));
-
-                builder.addData("data", JSON.toString(payload));
+
+                builder.setData(payload);
+                // GCM will accept Map<String,Object> but builder.build().toString() will throw a class cast
+                // exception, but luckily Message.toString() is not used anywhere in the GCM SDK or Usergrid
 
                 Message message = builder.build();
                 MulticastResult multicastResult;

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d0691856/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
index 8782fe3..77abb56 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
@@ -167,6 +167,38 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
     }
 
     @Test
+    public void singlePushNotificationMapPayload() throws Exception {
+
+        app.clear();
+        Map<String, Object> topLevel = new HashMap<>();
+        Map<String, String> mapPayload = new HashMap<String, String>(){{
+            put("key1", "value1");
+            put("key2", "value2");
+
+        }};
+        topLevel.put("enabler", mapPayload);
+        Map<String, Object> payloads = new HashMap<>(1);
+        payloads.put(notifier.getUuid().toString(), topLevel);
+        app.put("payloads", payloads);
+        app.put("queued", System.currentTimeMillis());
+        app.put("debug", true);
+        app.put("expire", System.currentTimeMillis() + 300000); // add 5 minutes to current time
+
+        Entity e = app.testRequest(ServiceAction.POST, 1, "devices", device1.getUuid(), "notifications").getEntity();
+        app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
+
+        Notification notification = app.getEntityManager().get(e.getUuid(), Notification.class);
+
+        //assertEquals(
+        //    notification.getPayloads().get(notifier.getUuid().toString()),
+        //    payload);
+
+        // perform push //
+        notification = notificationWaitForComplete(notification);
+        checkReceipts(notification, 1);
+    }
+
+    @Test
     public void singlePushNotificationNoReceipts() throws Exception {
 
         app.clear();