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/10/15 00:44:16 UTC
[1/5] git commit: adding device deletion
Repository: incubator-usergrid
Updated Branches:
refs/heads/delete-device-connections [created] 9c1c57c66
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/delete-device-connections
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);
+ }
+
+ }
}
[5/5] git commit: register devices
Posted by sf...@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/delete-device-connections
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>();
[2/5] git commit: Merge branch 'two-dot-o' of
https://git-wip-us.apache.org/repos/asf/incubator-usergrid into
delete-device-connections
Posted by sf...@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/delete-device-connections
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(-)
----------------------------------------------------------------------
[3/5] git commit: fix device removal, remove devices
Posted by sf...@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/delete-device-connections
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);
}
[4/5] git commit: adding collections test
Posted by sf...@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/delete-device-connections
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();