You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2014/10/15 21:50:43 UTC

[1/7] git commit: adding device deletion

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o 27db106eb -> 3b1276650


adding device deletion


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

Branch: refs/heads/two-dot-o
Commit: bf9f69fb00d4902eed75a38e7fd45abca6ec51bf
Parents: 83de8ae
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Oct 14 14:50:27 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Oct 14 14:50:27 2014 -0600

----------------------------------------------------------------------
 .../services/devices/DevicesService.java        | 49 ++++++++++++++++++--
 .../services/users/devices/DevicesService.java  | 33 +++++++++++++
 2 files changed, 77 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bf9f69fb/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java b/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
index 3376b15..93e895f 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
@@ -17,13 +17,26 @@
 package org.apache.usergrid.services.devices;
 
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.UUID;
 
+import org.apache.shiro.SecurityUtils;
+import org.apache.usergrid.persistence.ConnectionRef;
+import org.apache.usergrid.persistence.EntityRef;
+import org.apache.usergrid.persistence.Results;
+import org.apache.usergrid.persistence.SimpleEntityRef;
+import org.apache.usergrid.persistence.entities.Device;
+import org.apache.usergrid.persistence.entities.User;
+import org.apache.usergrid.persistence.index.query.Identifier;
+import org.apache.usergrid.persistence.index.query.Query;
+import org.apache.usergrid.security.shiro.utils.SubjectUtils;
+import org.apache.usergrid.services.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.usergrid.services.AbstractCollectionService;
-import org.apache.usergrid.services.ServiceContext;
-import org.apache.usergrid.services.ServiceResults;
+import rx.Scheduler;
+import rx.functions.Func1;
+import rx.schedulers.Schedulers;
 
 
 public class DevicesService extends AbstractCollectionService {
@@ -39,14 +52,40 @@ public class DevicesService extends AbstractCollectionService {
 
     @Override
     public ServiceResults putItemById( ServiceContext context, UUID id ) throws Exception {
-        logger.debug( "Registering device {}", id );
+        logger.debug("Registering device {}", id);
         return super.putItemById( context, id );
     }
 
 
     @Override
     public ServiceResults postItemById( ServiceContext context, UUID id ) throws Exception {
-        logger.info( "Attempting to connect an entity to device {}", id );
+        logger.info("Attempting to connect an entity to device {}", id);
         return super.postItemById( context, id );
     }
+
+    protected void deleteEntityConnection(EntityRef entityRef){
+        if(entityRef == null) {
+            return;
+        }
+        try {
+            List<ConnectionRef> connections = new ArrayList<ConnectionRef>();
+            List<ConnectionRef> refs = em.getConnectedEntities(entityRef, "devices", "users", Query.Level.IDS).getConnections();
+            if(refs!=null) {
+                connections.addAll(refs);
+            }
+            refs = em.getConnectingEntities(entityRef,"users","devices", Query.Level.IDS).getConnections();
+            if(refs!=null) {
+                connections.addAll(refs);
+            }
+            for(ConnectionRef connectionRef : connections) {
+                try {
+                    em.deleteConnection(connectionRef);
+                } catch (Exception e) {
+                    logger.error("Failed to delete connection " + connectionRef.toString(), e);
+                }
+            }
+        }catch (Exception e){
+            logger.error("failed to get connection",e);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bf9f69fb/stack/services/src/main/java/org/apache/usergrid/services/users/devices/DevicesService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/users/devices/DevicesService.java b/stack/services/src/main/java/org/apache/usergrid/services/users/devices/DevicesService.java
index 672de8f..bdcd574 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/users/devices/DevicesService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/users/devices/DevicesService.java
@@ -17,9 +17,15 @@
 package org.apache.usergrid.services.users.devices;
 
 
+import org.apache.usergrid.persistence.EntityRef;
+import org.apache.usergrid.persistence.SimpleEntityRef;
+import org.apache.usergrid.services.ServiceContext;
+import org.apache.usergrid.services.ServiceResults;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.UUID;
+
 
 public class DevicesService extends org.apache.usergrid.services.devices.DevicesService {
 
@@ -30,4 +36,31 @@ public class DevicesService extends org.apache.usergrid.services.devices.Devices
         super();
         logger.debug( "/users/*/devices" );
     }
+
+    @Override
+    public ServiceResults putItemById( ServiceContext context, UUID id ) throws Exception {
+        logger.debug("Registering device {}", id);
+        unregisterDeviceToUsers(id);
+        ServiceResults results = super.putItemById( context, id );
+        return results;
+    }
+
+
+    @Override
+    public ServiceResults postItemById( ServiceContext context, UUID id ) throws Exception {
+        logger.info( "Attempting to connect an entity to device {}", id );
+        unregisterDeviceToUsers(id);
+        ServiceResults results = super.postItemById( context, id );
+        return results;
+    }
+
+    protected void unregisterDeviceToUsers(UUID deviceId){
+        try {
+            EntityRef device = new SimpleEntityRef("device",deviceId);
+            deleteEntityConnection(device);
+        } catch (Exception e) {
+            logger.error("Failed to delete connection for " + deviceId.toString(), e);
+        }
+
+    }
 }


[3/7] git commit: fix device removal, remove devices

Posted by to...@apache.org.
fix device removal, remove devices


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

Branch: refs/heads/two-dot-o
Commit: 72fc2bda35fe689168242c21bbcf6c086c470f3f
Parents: d3cce6e
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Oct 14 16:17:37 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Oct 14 16:17:37 2014 -0600

----------------------------------------------------------------------
 .../corepersistence/CpRelationManager.java      | 10 +++--
 .../services/devices/DevicesService.java        | 42 ++++++++++----------
 2 files changed, 27 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72fc2bda/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
index 49477e2..2a790ab 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
@@ -18,6 +18,7 @@ package org.apache.usergrid.corepersistence;
 
 import static me.prettyprint.hector.api.factory.HFactory.createMutator;
 
+import com.clearspring.analytics.hash.MurmurHash;
 import com.yammer.metrics.annotation.Metered;
 import java.nio.ByteBuffer;
 import java.util.AbstractMap;
@@ -306,7 +307,7 @@ public class CpRelationManager implements RelationManager {
         GraphManager gm = managerCache.getGraphManager(applicationScope);
 
         Iterator<String> edgeTypes = gm.getEdgeTypesToTarget( new SimpleSearchEdgeType( 
-            cpHeadEntity.getId(), edgeType, null) ).toBlockingObservable().getIterator();
+            cpHeadEntity.getId(), edgeType, null) ).toBlocking().getIterator();
 
         logger.debug("getContainers(): "
                 + "Searched for edges of type {}\n   to target {}:{}\n   in scope {}\n   found: {}", 
@@ -809,8 +810,9 @@ public class CpRelationManager implements RelationManager {
         Edge collectionToItemEdge = new SimpleEdge( 
             cpHeadEntity.getId(),
              CpNamingUtils.getEdgeTypeFromCollectionName( collName),
-            memberEntity.getId(), 
-            memberEntity.getId().getUuid().timestamp() );
+            memberEntity.getId(),
+                UUIDUtils.getUUIDLong(memberEntity.getId().getUuid())
+            );
         gm.deleteEdge(collectionToItemEdge).toBlockingObservable().last();
 
         // remove edge from item to collection
@@ -819,7 +821,7 @@ public class CpRelationManager implements RelationManager {
                 CpNamingUtils
                         .getEdgeTypeFromCollectionName( Schema.defaultCollectionName( cpHeadEntity.getId().getType() )),
             cpHeadEntity.getId(),
-            cpHeadEntity.getId().getUuid().timestamp() );
+            UUIDUtils.getUUIDLong(cpHeadEntity.getId().getUuid()));
         gm.deleteEdge(itemToCollectionEdge).toBlockingObservable().last();
 
         // special handling for roles collection of a group

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72fc2bda/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java b/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
index 93e895f..d1bb3db 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/devices/DevicesService.java
@@ -22,10 +22,7 @@ import java.util.List;
 import java.util.UUID;
 
 import org.apache.shiro.SecurityUtils;
-import org.apache.usergrid.persistence.ConnectionRef;
-import org.apache.usergrid.persistence.EntityRef;
-import org.apache.usergrid.persistence.Results;
-import org.apache.usergrid.persistence.SimpleEntityRef;
+import org.apache.usergrid.persistence.*;
 import org.apache.usergrid.persistence.entities.Device;
 import org.apache.usergrid.persistence.entities.User;
 import org.apache.usergrid.persistence.index.query.Identifier;
@@ -34,6 +31,7 @@ import org.apache.usergrid.security.shiro.utils.SubjectUtils;
 import org.apache.usergrid.services.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import rx.Observable;
 import rx.Scheduler;
 import rx.functions.Func1;
 import rx.schedulers.Schedulers;
@@ -63,27 +61,29 @@ public class DevicesService extends AbstractCollectionService {
         return super.postItemById( context, id );
     }
 
-    protected void deleteEntityConnection(EntityRef entityRef){
+    protected void deleteEntityConnection(final EntityRef entityRef){
         if(entityRef == null) {
             return;
         }
         try {
-            List<ConnectionRef> connections = new ArrayList<ConnectionRef>();
-            List<ConnectionRef> refs = em.getConnectedEntities(entityRef, "devices", "users", Query.Level.IDS).getConnections();
-            if(refs!=null) {
-                connections.addAll(refs);
-            }
-            refs = em.getConnectingEntities(entityRef,"users","devices", Query.Level.IDS).getConnections();
-            if(refs!=null) {
-                connections.addAll(refs);
-            }
-            for(ConnectionRef connectionRef : connections) {
-                try {
-                    em.deleteConnection(connectionRef);
-                } catch (Exception e) {
-                    logger.error("Failed to delete connection " + connectionRef.toString(), e);
-                }
-            }
+            Results entities = em.getCollection(entityRef,"users",null,100, Query.Level.REFS,false);
+            Observable.from(entities.getEntities())
+                    .map(new Func1<Entity, Entity>() {
+                        @Override
+                        public Entity call(Entity user) {
+                            try {
+                                Results devicesResults = em.getCollection(user,"devices",null,100,Query.Level.REFS,false);
+                                List<Entity> devices = devicesResults.getEntities();
+                                for(EntityRef device : devices){
+                                    em.removeFromCollection(user, "devices",device);
+                                }
+                                em.removeFromCollection(entityRef, "users",user);
+                            } catch (Exception e) {
+                                logger.error("Failed to delete connection " + user.toString(), e);
+                            }
+                            return user;
+                        }
+                    }).toBlocking().lastOrDefault(null);
         }catch (Exception e){
             logger.error("failed to get connection",e);
         }


[7/7] git commit: fix service

Posted by to...@apache.org.
fix service


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

Branch: refs/heads/two-dot-o
Commit: 3b1276650eb1da5e7cab64c94a79a9a00a283d98
Parents: b5470f1
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Oct 15 13:39:55 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Oct 15 13:39:55 2014 -0600

----------------------------------------------------------------------
 .../notifications/NotificationsService.java     |   5 +-
 .../apns/NotificationsServiceIT.java            | 108 ++-----------
 .../gcm/NotificationsServiceIT.java             | 153 ++-----------------
 3 files changed, 27 insertions(+), 239 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3b127665/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
index 36c3a14..ee5c1cb 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/NotificationsService.java
@@ -60,7 +60,6 @@ public class NotificationsService extends AbstractCollectionService {
     private static final int PAGE = 100;
     private static final Logger LOG = LoggerFactory.getLogger(NotificationsService.class);
     //need a mocking framework, this is to substitute for no mocking
-    public static PathQuery<Device> TEST_PATH_QUERY = null;
     public static QueueManager TEST_QUEUE_MANAGER = null;
 
     public static final String NOTIFIER_ID_POSTFIX = ".notifier.id";
@@ -139,7 +138,7 @@ public class NotificationsService extends AbstractCollectionService {
         postMeter.mark();
         try {
             validate(null, context.getPayload());
-            PathQuery<Device> pathQuery = TEST_PATH_QUERY != null ? TEST_PATH_QUERY : getPathQuery(context.getRequest().getOriginalParameters());
+            PathQuery<Device> pathQuery = getPathQuery(context.getRequest().getOriginalParameters());
             context.getProperties().put("state", Notification.State.CREATED);
             context.getProperties().put("pathQuery", pathQuery);
             context.setOwner(sm.getApplication());
@@ -177,7 +176,7 @@ public class NotificationsService extends AbstractCollectionService {
             org.apache.usergrid.persistence.index.query.Query query = sp.getQuery();
             if (query == null) {
                 query = new Query();
-                if(sp.isName() && !sp.getName().equals("notifications")) {
+                if(!sp.isName() ||  (sp.isName() && !sp.getName().equals("notifications"))) {
                     query.addIdentifier(sp.getIdentifier());
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3b127665/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
index 76dbed3..905483e 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
@@ -117,41 +117,16 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         user1 = app.getEm().create(user1);
 
         // create User
-         user2 = new User();
+        user2 = new User();
         user2.setUsername("user2");
         user2.setEmail("user2@usergrid.org");
         user2 = app.getEm().create(user2);
 
-        app.clear();
-        e = app.testRequest(ServiceAction.POST, 1, "users",user2.getUuid(),"devices",device1.getUuid()).getEntity();
-        app.clear();
-        e = app.testRequest(ServiceAction.POST, 1, "users",user1.getUuid(),"devices",device1.getUuid()).getEntity();
-        List device1Users = app.getEm().getCollection(device1,"users",null,100, Query.Level.REFS,false).getEntities();
-        assertEquals(device1Users.size(),1);
-
-        app.clear();
-        e = app.testRequest(ServiceAction.POST, 1, "users",user1.getUuid(),"devices",device2.getUuid()).getEntity();
-
-
-        // create Group
-        group1 = new Group();
-        group1.setPath("path");
-        group1 = app.getEm().create(group1);
-        app.getEm().createConnection(group1, "users", user1);
-
         ns = getNotificationService();
 
         TestQueueManager qm = new TestQueueManager();
         ns.TEST_QUEUE_MANAGER = qm;
 
-        Query query = new Query();
-        //query.addIdentifier(sp.getIdentifier());
-        query.setLimit(100);
-        query.setCollection("devices");
-        query.setResultsLevel(Query.Level.ALL_PROPERTIES);
-        PathQuery pathQuery = new PathQuery( new SimpleEntityRef(app.getEm().getApplicationRef()), query);
-
-        ns.TEST_PATH_QUERY = pathQuery;
         app.getEm().refreshIndex();
 
         listener = new QueueListener(ns.getServiceManagerFactory(),ns.getEntityManagerFactory(),ns.getMetricsFactory(), new Properties());
@@ -177,13 +152,6 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
 
         // give queue manager a query for loading 100 devices from an application (why?)
         app.clear();
-        Query pQuery = new Query();
-        pQuery.setLimit(100);
-        pQuery.setCollection("devices");
-        pQuery.setResultsLevel(Query.Level.ALL_PROPERTIES);
-        pQuery.addIdentifier(new ServiceParameter.NameParameter(device1.getUuid().toString()).getIdentifier());
-        ns.TEST_PATH_QUERY =  new PathQuery( new SimpleEntityRef(app.getEm().getApplicationRef()), pQuery);
-
         // create a "hellow world" notification
         String payload = getPayload();
         Map<String, String> payloads = new HashMap<String, String>(1);
@@ -193,7 +161,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("debug",true);
 
         // post notification to service manager
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications").getEntity();
 
         // ensure notification it was created
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
@@ -270,14 +238,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Query pQuery = new Query();
-        pQuery.setLimit(100);
-        pQuery.setCollection("devices");
-        pQuery.setResultsLevel(Query.Level.ALL_PROPERTIES);
-        pQuery.addIdentifier(new ServiceParameter.NameParameter("1234").getIdentifier());
-        ns.TEST_PATH_QUERY =   new PathQuery( new SimpleEntityRef(app.getEm().getApplicationRef()), pQuery);
-        e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
-        app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
+        app.testRequest(ServiceAction.GET, 1,  "notifications", e.getUuid());
 
         Notification notification = app.getEm().get(e.getUuid(),  Notification.class);
         assertEquals(
@@ -326,7 +287,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -387,7 +348,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("payloads", payloads);
         payloads.put("xxx", "");
         try {
-            Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+            Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                     .getEntity();
             fail("invalid payload should have been rejected");
         } catch (IllegalArgumentException ex) {
@@ -466,7 +427,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         properties.put("queued", System.currentTimeMillis());
         properties.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -502,7 +463,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications",";ql=notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
         Notification notification = app.getEm().get(e.getUuid(),Notification.class);
@@ -560,7 +521,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        e = app.testRequest(ServiceAction.POST, 1, "notifications",";ql=notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
         app.getEm().refreshIndex();
@@ -621,7 +582,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
         app.getEm().refreshIndex();
@@ -689,7 +650,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
         Notification notification = app.getEm().get(e.getUuid(),
@@ -746,7 +707,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -797,8 +758,6 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
 
         // give queue manager a query for loading 100 devices from an application (why?)
         app.clear();
-        ns.TEST_PATH_QUERY =  null;
-
         // create a "hello world" notification
         String payload = getPayload();
         Map<String, String> payloads = new HashMap<String, String>(1);
@@ -883,7 +842,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("debug",true);
 
         // create a notification
-        entity = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        entity = app.testRequest(ServiceAction.POST, 1, "notifications",";ql=notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", entity.getUuid());
         app.getEm().refreshIndex();
 
@@ -900,49 +859,6 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
 //        checkStatistics(notification, NUM_DEVICES, 0);
     }
 
-    @Ignore("Run only if you need to.")
-    @Test
-    public void loadTest() throws Exception {
-
-        MockSuccessfulProviderAdapter.install(ns, true);
-
-        final int NUM_DEVICES = 10000;
-
-        app.clear();
-        String payload = getPayload();
-        Map<String, String> payloads = new HashMap<String, String>(1);
-        payloads.put(notifier.getUuid().toString(), payload);
-        app.put("payloads", payloads);
-        app.put("queued", System.currentTimeMillis());
-        app.put("debug",true);
-
-        // create a notification
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
-                .getEntity();
-        app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
-        Notification notification = (Notification) e.toTypedEntity();
-
-        // create a bunch of devices and add them to the notification
-        app.clear();
-        app.put(notifier.getName() + NOTIFIER_ID_POSTFIX, PUSH_TOKEN);
-        for (int i = 0; i < NUM_DEVICES; i++) {
-            Entity entity = app.getEm().create("device", app.getProperties());
-            ns.addDevice(notification, entity);
-        }
-
-        long time = System.currentTimeMillis();
-        LOG.error("START DELIVERY OF {} NOTIFICATIONS", NUM_DEVICES);
-
-        // perform push //
-        notification = scheduleNotificationAndWait(notification);
-        LOG.error("END DELIVERY OF {} NOTIFICATIONS ({})", NUM_DEVICES,
-                System.currentTimeMillis() - time);
-
-        // check receipts //
-        checkReceipts(notification, NUM_DEVICES);
-        checkStatistics(notification, NUM_DEVICES, 0);
-    }
-
     private String getPayload(){
         ApnsPayloadBuilder builder = new ApnsPayloadBuilder();
         builder.setAlertBody("Hello, World!");

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3b127665/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 81f1f77..7143413 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
@@ -88,8 +88,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.clear();
         app.put(key, PUSH_TOKEN);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "devices")
-                .getEntity();
+        Entity e = app.testRequest(ServiceAction.POST, 1, "devices") .getEntity();
         app.testRequest(ServiceAction.GET, 1, "devices", e.getUuid());
 
         device1 = app.getEm().get(e.getUuid(), Device.class);
@@ -103,16 +102,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         TestQueueManager qm = new TestQueueManager();
         ns.TEST_QUEUE_MANAGER = qm;
 
-        Query query = new Query();
-        //query.addIdentifier(sp.getIdentifier());
-        query.setLimit(100);
-        query.setCollection("devices");
-        query.setResultsLevel(Query.Level.ALL_PROPERTIES);
-        PathQuery pathQuery =  new PathQuery(new SimpleEntityRef(  app.getEm().getApplicationRef()), query);
-
-        ns.TEST_PATH_QUERY = pathQuery;
-        listener = new QueueListener(ns.getServiceManagerFactory(),
-                ns.getEntityManagerFactory(),ns.getMetricsFactory(), new Properties());
+        listener = new QueueListener(ns.getServiceManagerFactory(), ns.getEntityManagerFactory(),ns.getMetricsFactory(), new Properties());
         listener.DEFAULT_SLEEP = 200;
         listener.TEST_QUEUE_MANAGER = qm;
         listener.start();
@@ -146,7 +136,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("debug",true);
         app.put("queued", System.currentTimeMillis());
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -161,13 +151,6 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
     @Test
     public void singlePushNotification() throws Exception {
 
-        Query pQuery = new Query();
-        pQuery.setLimit(100);
-        pQuery.setCollection("devices");
-        pQuery.setResultsLevel(Query.Level.ALL_PROPERTIES);
-        pQuery.addIdentifier(new ServiceParameter.NameParameter(device1.getUuid().toString()).getIdentifier());
-        ns.TEST_PATH_QUERY =  new PathQuery(new SimpleEntityRef( app.getEm().getApplicationRef()), pQuery);
-
         app.clear();
         String payload = "Hello, World!";
         Map<String, String> payloads = new HashMap<String, String>(1);
@@ -176,7 +159,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        Entity e = app.testRequest(ServiceAction.POST, 1, "devices",device1.getUuid(),"notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
         Notification notification = app.getEm().get(e.getUuid(), Notification.class);
@@ -205,14 +188,6 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
                 user.getUuid(), "devices", device1.getUuid()).getEntity();
         assertEquals(device.getUuid(), device1.getUuid());
 
-        // create path query to search in user's device collection for device by UUID
-        Query pQuery = new Query();
-        pQuery.setLimit(100);
-        pQuery.setCollection("devices");
-        pQuery.setResultsLevel(Query.Level.ALL_PROPERTIES);
-        pQuery.addIdentifier(new ServiceParameter.NameParameter(
-            device.getUuid().toString()).getIdentifier()); 
-        ns.TEST_PATH_QUERY =  new PathQuery( user, pQuery );
 
         // create and post notification 
         String payload = "Hello, World!";
@@ -221,7 +196,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("payloads", payloads);
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications").getEntity();
+        Entity e = app.testRequest(ServiceAction.POST, 1,"users","asdf", "notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
         app.getEm().refreshIndex();
@@ -246,12 +221,10 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
-                .getEntity();
+        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications",";ql=notifications")   .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
-        Notification notification = app.getEm().get(e.getUuid(),
-                Notification.class);
+        Notification notification = app.getEm().get(e.getUuid(),  Notification.class);
         assertEquals(
                 notification.getPayloads().get(notifier.getUuid().toString()),
                 payload);
@@ -297,7 +270,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -328,7 +301,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("debug",true);
 
         try {
-            app.testRequest(ServiceAction.POST, 1, "notifications");
+            app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications");
             fail("invalid payload should have been rejected");
         } catch (IllegalArgumentException ex) {
             // ok
@@ -340,7 +313,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("payloads", payloads);
         payloads.put("xxx", "");
         try {
-            app.testRequest(ServiceAction.POST, 1, "notifications");
+            app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications");
             fail("invalid payload should have been rejected");
         } catch (IllegalArgumentException ex) {
             // ok
@@ -372,7 +345,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("debug",true);
 
         try {
-            app.testRequest(ServiceAction.POST, 1, "notifications");
+            app.testRequest(ServiceAction.POST, 1, "devices",device1.getUuid(),"notifications");
             fail("invalid payload should have been rejected");
         } catch (Exception ex) {
             assertEquals("java.lang.IllegalArgumentException: GCM payloads must be 4096 characters or less",
@@ -410,7 +383,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1, "devices",device1.getUuid(),"notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -467,7 +440,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         app.put("queued", System.currentTimeMillis());
         app.put("debug",true);
 
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
+        Entity e = app.testRequest(ServiceAction.POST, 1,"devices",device1.getUuid(), "notifications")
                 .getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
@@ -488,104 +461,4 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         fail("Should have received a ConnectionException");
     }
 
-    @Ignore("Run only if you need to.")
-    @Test
-    public void loadTest() throws Exception {
-
-        final int NUM_DEVICES = 10000;
-
-        // create notification //
-
-        HashMap<String, Object> properties = new LinkedHashMap<String, Object>();
-        String payload = "Hello, World!";
-        Map<String, String> payloads = new HashMap<String, String>(1);
-        payloads.put(notifier.getUuid().toString(), payload);
-        properties.put("payloads", payloads);
-        properties.put("queued", System.currentTimeMillis());
-        properties.put("debug",true);
-
-        Entity e = app.testRequest(ServiceAction.POST, 1, "notifications")
-                .getEntity();
-        app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
-
-        Notification notification = app.getEm().get(e.getUuid(),
-                Notification.class);
-        assertEquals(
-                notification.getPayloads().get(notifier.getUuid().toString()),
-                payload);
-
-        // create a bunch of devices and add them to the notification
-        properties = new LinkedHashMap<String, Object>();
-        properties.put(notifier.getName() + NOTIFIER_ID_POSTFIX, PUSH_TOKEN);
-        for (int i = 0; i < NUM_DEVICES; i++) {
-            Entity entity = app.getEm().create("device", properties);
-            ns.addDevice(notification, entity);
-        }
-
-        long time = System.currentTimeMillis();
-        logger.error("START DELIVERY OF {} NOTIFICATIONS", NUM_DEVICES);
-
-        // perform push //
-        notification = scheduleNotificationAndWait(notification);
-        logger.error("END DELIVERY OF {} NOTIFICATIONS ({})", NUM_DEVICES,
-                System.currentTimeMillis() - time);
-
-        // check receipts //
-        checkReceipts(notification, NUM_DEVICES);
-        checkStatistics(notification, NUM_DEVICES, 0);
-    }
-
-    // @Test
-    // public void inactiveDeviceUpdate() throws Exception {
-    //
-    // if (!USE_REAL_CONNECTIONS) {
-    // // mock action (based on verified actual behavior) //
-    // NotificationsService.providerAdapters.put("apple", new
-    // MockSuccessfulProviderAdapter() {
-    // public Map<String,Date> getInactiveDevices(Notifier notifier,
-    // EntityManager em) throws Exception {
-    // return Collections.singletonMap(PUSH_TOKEN, new Date());
-    // }
-    // });
-    // }
-    //
-    // // create push notification //
-    //
-    // HashMap<String, Object> properties = new LinkedHashMap<String, Object>();
-    // String payload =
-    // APNS.newPayload().alertBody("Hello, World!").sound("chime").build();
-    // Map<String, String> payloads = new HashMap<String, String>(1);
-    // payloads.put(notifier.getUuid().toString(), payload);
-    // properties.put("payloads", payloads);
-    // properties.put("queued", System.currentTimeMillis());
-    //
-    // Entity e = testRequest(sm, ServiceAction.POST, 1, properties,
-    // "notifications").getEntity();
-    // testRequest(sm, ServiceAction.GET, 1, null, "notifications",
-    // e.getUuid());
-    //
-    // Notification notification = em.get(e.getUuid(), Notification.class);
-    // assertEquals(notification.getPayloads().get(notifier.getUuid().toString()),
-    // payload);
-    //
-    // ns.addDevice(notification, device1);
-    // ns.addDevice(notification, device2);
-    //
-    // assertNotNull(device1.getProperty(notifier.getName() +
-    // NOTIFIER_ID_POSTFIX));
-    // assertNotNull(device2.getProperty(notifier.getName() +
-    // NOTIFIER_ID_POSTFIX));
-    //
-    // // perform push //
-    // notification = scheduleNotificationAndWait(notification);
-    //
-    // // check provider IDs //
-    //
-    // device1 = em.get(device1, Device.class);
-    // assertNull(device1.getProperty(notifier.getName() +
-    // NOTIFIER_ID_POSTFIX));
-    // device2 = em.get(device2, Device.class);
-    // assertNull(device2.getProperty(notifier.getName() +
-    // NOTIFIER_ID_POSTFIX));
-    // }
 }


[4/7] git commit: adding collections test

Posted by to...@apache.org.
adding collections test


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

Branch: refs/heads/two-dot-o
Commit: dc9211bd4fdbe375f075f48b2abfc14b640fe549
Parents: 72fc2bd
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Oct 14 16:39:44 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Oct 14 16:39:44 2014 -0600

----------------------------------------------------------------------
 .../AbstractServiceNotificationIT.java          |  2 ++
 .../apns/NotificationsServiceIT.java            | 20 ++++++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/dc9211bd/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
index f67d731..651c94f 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
@@ -63,6 +63,8 @@ public class AbstractServiceNotificationIT extends AbstractServiceIT {
         return ns;
     }
 
+
+
     protected Notification scheduleNotificationAndWait(Notification notification)
             throws Exception {
         long timeout = System.currentTimeMillis() + 60000;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/dc9211bd/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
index 935f6b6..aef4da5 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
@@ -64,6 +64,7 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
     private NotificationsService ns;
     QueueListener listener;
     private String  notifierName = "apNs";
+    private User user2;
 
     @BeforeClass
     public static void setup(){
@@ -114,8 +115,23 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         user1.setUsername("user1");
         user1.setEmail("user1@usergrid.org");
         user1 = app.getEm().create(user1);
-        app.getEm().createConnection(user1, "devices", device1);
-        app.getEm().createConnection(user1, "devices", device2);
+
+        // create User
+         user2 = new User();
+        user2.setUsername("user2");
+        user2.setEmail("user2@usergrid.org");
+        user2 = app.getEm().create(user2);
+
+        app.clear();
+        e = app.testRequest(ServiceAction.POST, 1, "users",user2.getUuid(),"devices",device1.getUuid()).getEntity();
+        app.clear();
+        e = app.testRequest(ServiceAction.POST, 1, "users",user1.getUuid(),"devices",device1.getUuid()).getEntity();
+        List device1Users = app.getEm().getCollection(device1,"users",null,100, Query.Level.REFS,false).getEntities();
+        assertEquals(device1Users.size(),1);
+
+        app.clear();
+        e = app.testRequest(ServiceAction.POST, 1, "users",user1.getUuid(),"devices",device2.getUuid()).getEntity();
+
 
         // create Group
         group1 = new Group();


[5/7] git commit: register devices

Posted by to...@apache.org.
register devices


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

Branch: refs/heads/two-dot-o
Commit: 9c1c57c66da5e53d9cb1086daac77437518ee74a
Parents: dc9211b
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Oct 14 16:43:16 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Oct 14 16:43:16 2014 -0600

----------------------------------------------------------------------
 .../apns/NotificationsServiceIT.java              | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9c1c57c6/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
index aef4da5..45bd1bb 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
@@ -778,6 +778,22 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
     }
 
     @Test
+    public void deviceTest() throws Exception{
+        app.clear();
+        Entity e = app.testRequest(ServiceAction.POST, 1, "users",user2.getUuid(),"devices",device1.getUuid()).getEntity();
+        app.clear();
+        e = app.testRequest(ServiceAction.POST, 1, "users",user1.getUuid(),"devices",device1.getUuid()).getEntity();
+        app.clear();
+        e = app.testRequest(ServiceAction.POST, 1, "users",user1.getUuid(),"devices",device2.getUuid()).getEntity();
+
+        List device1Users = app.getEm().getCollection(device1,"users",null,100, Query.Level.REFS,false).getEntities();
+        assertEquals(device1Users.size(),1);
+        List user1Devices = app.getEm().getCollection(user1,"devices",null,100, Query.Level.REFS,false).getEntities();
+        assertEquals(user1Devices.size(),2);
+
+    }
+
+    @Test
     public void batchTest() throws Exception {
 
         final int NUM_DEVICES = 50;
@@ -881,6 +897,8 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         String payload = builder.buildWithDefaultMaximumLength();
         return payload;
     }
+
+
     // todo: can't do the following tests here. do it in the REST tier...
     // private Notification postNotification(String path) throws Exception {
     // HashMap<String, Object> properties = new LinkedHashMap<String, Object>();


[6/7] git commit: real tests for devices, BA

Posted by to...@apache.org.
real tests for devices, BA


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

Branch: refs/heads/two-dot-o
Commit: b5470f197b177822cccb828c970bc047f595de1f
Parents: 9c1c57c
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Oct 15 09:28:49 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Oct 15 09:28:49 2014 -0600

----------------------------------------------------------------------
 .../AbstractServiceNotificationIT.java          |  4 +-
 .../apns/NotificationsServiceIT.java            | 53 ++++++++++++++++++++
 2 files changed, 55 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b5470f19/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
index 651c94f..e16f111 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
@@ -103,7 +103,7 @@ public class AbstractServiceNotificationIT extends AbstractServiceIT {
     protected void checkReceipts(Notification notification, int expected)
             throws Exception {
         List<EntityRef> receipts = getNotificationReceipts(notification);
-        long timeout = System.currentTimeMillis() + 60000;
+        long timeout = System.currentTimeMillis() + 10000;
         while (System.currentTimeMillis() < timeout) {
             Thread.sleep(200);
             receipts =getNotificationReceipts(notification);
@@ -124,7 +124,7 @@ public class AbstractServiceNotificationIT extends AbstractServiceIT {
 
     protected void checkStatistics(Notification notification, long sent,  long errors) throws Exception{
         Map<String, Long> statistics = null;
-        long timeout = System.currentTimeMillis() + 60000;
+        long timeout = System.currentTimeMillis() + 10000;
         while (System.currentTimeMillis() < timeout) {
             Thread.sleep(200);
             statistics = app.getEm().get(notification.getUuid(), Notification.class).getStatistics();

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b5470f19/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
index 45bd1bb..76dbed3 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
@@ -791,6 +791,59 @@ public class NotificationsServiceIT extends AbstractServiceNotificationIT {
         List user1Devices = app.getEm().getCollection(user1,"devices",null,100, Query.Level.REFS,false).getEntities();
         assertEquals(user1Devices.size(),2);
 
+        // create push notification //
+
+        app.getEm().refreshIndex();
+
+        // give queue manager a query for loading 100 devices from an application (why?)
+        app.clear();
+        ns.TEST_PATH_QUERY =  null;
+
+        // create a "hello world" notification
+        String payload = getPayload();
+        Map<String, String> payloads = new HashMap<String, String>(1);
+        payloads.put(notifier.getName().toString(), payload);
+        app.put("payloads", payloads);
+        app.put("queued", System.currentTimeMillis());
+        app.put("debug",true);
+
+        // post notification to service manager
+        e = app.testRequest(ServiceAction.POST, 1,"users",user1.getUuid(), "notifications").getEntity();
+
+        // ensure notification it was created
+        app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
+
+        // ensure notification has expected name
+        Notification notification = app.getEm().get(e.getUuid(), Notification.class);
+        assertEquals(
+                notification.getPayloads().get(notifier.getName().toString()),
+                payload);
+
+        // verify Query for CREATED state
+        Query query = new Query();
+        query.addEqualityFilter("state", Notification.State.STARTED.toString());
+        Results results = app.getEm().searchCollection(
+                app.getEm().getApplicationRef(), "notifications", query);
+        Entity entity = results.getEntitiesMap().get(notification.getUuid());
+        //assertNotNull(entity);
+
+        // perform push //
+
+        notification = scheduleNotificationAndWait(notification);
+
+        app.getEm().refreshIndex();
+
+        // verify Query for FINISHED state
+        query = new Query();
+        query.addEqualityFilter("state", Notification.State.FINISHED.toString());
+        results = app.getEm().searchCollection(app.getEm().getApplicationRef(),
+                "notifications", query);
+        entity = results.getEntitiesMap().get(notification.getUuid());
+        assertNotNull(entity);
+
+        checkReceipts(notification, 2);
+        checkStatistics(notification, 2, 0);
+
     }
 
     @Test


[2/7] git commit: Merge branch 'two-dot-o' of https://git-wip-us.apache.org/repos/asf/incubator-usergrid into delete-device-connections

Posted by to...@apache.org.
Merge branch 'two-dot-o' of https://git-wip-us.apache.org/repos/asf/incubator-usergrid into delete-device-connections


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

Branch: refs/heads/two-dot-o
Commit: d3cce6e8887feaa50e2cfca9dbc4c1e577ad3798
Parents: bf9f69f 27db106
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Oct 14 14:50:50 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Oct 14 14:50:50 2014 -0600

----------------------------------------------------------------------
 .../corepersistence/CpEntityManagerFactory.java       | 13 ++++++++-----
 .../persistence/queue/impl/SQSQueueManagerImpl.java   | 14 +++++++++++---
 .../notifications/ApplicationQueueManager.java        |  5 +++--
 .../services/notifications/NotificationsService.java  |  2 +-
 .../services/notifications/QueueListener.java         |  2 +-
 .../apache/usergrid/services/TestQueueManager.java    |  4 +---
 .../services/notifications/NotifiersServiceIT.java    |  1 +
 7 files changed, 26 insertions(+), 15 deletions(-)
----------------------------------------------------------------------