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 2015/03/06 22:16:12 UTC

incubator-usergrid git commit: windows push raw notifications

Repository: incubator-usergrid
Updated Branches:
  refs/heads/USERGRID-432 1c0f4f14a -> 44bbd6b97
Updated Tags:  refs/tags/0.0.9.r0 [created] 1c0f4f14a


windows push raw notifications


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

Branch: refs/heads/USERGRID-432
Commit: 44bbd6b97546aeb9e29699cabab8e6f384f79914
Parents: 1c0f4f1
Author: Shawn Feldman <sf...@apache.org>
Authored: Fri Mar 6 14:16:10 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Fri Mar 6 14:16:10 2015 -0700

----------------------------------------------------------------------
 .../services/notifications/wns/WNSAdapter.java  | 39 ++++++++++++++++++++
 1 file changed, 39 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/44bbd6b9/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
index 9030fdd..34ae63f 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
@@ -22,6 +22,7 @@ package org.apache.usergrid.services.notifications.wns;
 
 import ar.com.fernandospr.wns.WnsService;
 import ar.com.fernandospr.wns.model.WnsBadge;
+import ar.com.fernandospr.wns.model.WnsRaw;
 import ar.com.fernandospr.wns.model.WnsToast;
 import ar.com.fernandospr.wns.model.builders.WnsBadgeBuilder;
 import ar.com.fernandospr.wns.model.builders.WnsToastBuilder;
@@ -36,6 +37,7 @@ import org.apache.usergrid.services.notifications.TaskTracker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -87,6 +89,11 @@ public class WNSAdapter implements ProviderAdapter {
                         }
                         service.pushBadge(providerId, badge);
                         break;
+                    case "raw" :
+                        WnsRaw raw = new WnsRaw();
+                        raw.stream = toBytes( translatedNotification.getMessage() ) ;
+                        service.pushRaw(providerId, raw);
+                        break;
                     default : throw new IllegalArgumentException(translatedNotification.getType()+" does not match a valid notification type (toast,badge).");
                 }
             }
@@ -97,6 +104,35 @@ public class WNSAdapter implements ProviderAdapter {
         }
     }
 
+    private byte[] toBytes(Object message) {
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        ObjectOutput out = null;
+        try {
+            if(message instanceof Serializable) {
+                out = new ObjectOutputStream(bos);
+                out.writeObject(message);
+                byte[] yourBytes = bos.toByteArray();
+                return yourBytes;
+            }else{
+                throw new RuntimeException("message is not serializable");
+            }
+        }catch (IOException e){
+            throw new RuntimeException(e);
+        } finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+            } catch (IOException ex) {
+                // ignore close exception
+            }
+            try {
+                bos.close();
+            } catch (IOException ex) {
+                // ignore close exception
+            }
+        }
+    }
     @Override
     public void doneSendingNotifications() throws Exception {
 
@@ -120,6 +156,9 @@ public class WNSAdapter implements ProviderAdapter {
             if (map.containsKey("badge")) {
                 translatedNotifications.add(new TranslatedNotification(map.get("badge"), "badge"));
             }
+            if (map.containsKey("raw")) {
+                translatedNotifications.add(new TranslatedNotification(map.get("raw"), "raw"));
+            }
 
         } else {
             //{payloads:{winphone:"mymessage"}}