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 2014/02/25 22:21:43 UTC

[1/3] git commit: Fixing social feed not working once you have over 10 followers, bumping limit to 1000

Repository: incubator-usergrid
Updated Branches:
  refs/pull/61/head c431c8409 -> d4accb978
  refs/pull/61/merge a9b170e62 -> 90abbe7a4 (forced update)


Fixing social feed not working once you have over 10 followers, bumping limit to 1000


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

Branch: refs/pull/61/head
Commit: d4accb978487b62c92f9c385a58a434dcc63c88d
Parents: c431c84
Author: Shawn Feldman <sh...@gmail.com>
Authored: Tue Feb 25 13:54:04 2014 -0700
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Tue Feb 25 13:54:04 2014 -0700

----------------------------------------------------------------------
 .../rest/management/ManagementResourceIT.java   | 92 +++++++++++++++++++-
 .../users/activities/ActivitiesService.java     |  2 +-
 2 files changed, 91 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4accb97/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
index b379770..f289cd7 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
@@ -16,12 +16,12 @@
 package org.apache.usergrid.rest.management;
 
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import javax.ws.rs.core.MediaType;
 
 import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.node.ArrayNode;
 import org.junit.Test;
 import org.apache.usergrid.cassandra.Concurrent;
 import org.apache.usergrid.management.OrganizationInfo;
@@ -216,6 +216,94 @@ public class ManagementResourceIT extends AbstractRestIT {
                 "<a href=\"mailto:test@usergrid.com\">" ) );
     }
 
+    /** Test that we can support over 10 items in feed. */
+    @Test
+    public void mgmtFollowsUserFeed() throws Exception {
+        List<String> users1 = new ArrayList<String>();
+        int i;
+        //try with 10 users
+        for(i = 0; i<10;i++){
+            users1.add("follower" + Integer.toString(i));
+        }
+        checkFeed("leader1",users1);
+        //try with 11
+        List<String> users2 = new ArrayList<String>();
+        for(i =20; i<31;i++){
+            users2.add("follower" + Integer.toString(i));
+        }
+        checkFeed("leader2",users2);
+    }
+
+    private void checkFeed(String leader, List<String> followers){
+        JsonNode userFeed;
+        //create user
+        createUser(leader);
+        String preFollowContent = leader+": pre-something to look for " + UUID.randomUUID().toString();
+        addActivity(leader, leader + " " + leader + "son", preFollowContent);
+        String lastUser = followers.get(followers.size()-1);
+        int i = 0;
+        for(String user : followers){
+            createUser(user);
+            follow(user,leader);
+        }
+        userFeed = getUserFeed(lastUser);
+        assertTrue(userFeed.size()==1);
+
+        //retrieve feed
+        userFeed = getUserFeed(lastUser);
+        assertTrue(userFeed.size()==1);
+        String postFollowContent = leader+": something to look for " + UUID.randomUUID().toString();
+        addActivity(leader,leader+" "+leader+"son",postFollowContent);
+        //check feed
+        userFeed = getUserFeed(lastUser);
+        assertNotNull(userFeed);
+        assertTrue(userFeed.size()>1);
+        String serialized = userFeed.toString();
+        assertTrue(serialized.indexOf(postFollowContent)>0);
+        assertTrue(serialized.indexOf(preFollowContent)>0);
+    }
+
+    private void createUser(String username){
+        Map<String, Object> payload = new LinkedHashMap<String, Object>();
+        payload.put( "username", username );
+        resource().path( "/test-organization/test-app/users" )
+                .queryParam("access_token", access_token)
+                .accept( MediaType.APPLICATION_JSON )
+                .type(MediaType.APPLICATION_JSON_TYPE)
+                .post(JsonNode.class, payload);
+
+    }
+    private JsonNode getUserFeed(String username){
+        JsonNode userFeed = resource().path( "/test-organization/test-app/users/"+username+"/feed" )
+                .queryParam( "access_token", access_token )
+                .accept(MediaType.APPLICATION_JSON)
+                .get( JsonNode.class );
+        return userFeed.get("entities");
+    }
+
+    private void follow(String user, String followUser){
+        //post follow
+        resource().path( "/test-organization/test-app/users/"+user+"/following/users/"+followUser )
+                .queryParam("access_token", access_token)
+                .accept( MediaType.APPLICATION_JSON )
+                .type(MediaType.APPLICATION_JSON_TYPE)
+                .post(JsonNode.class, new HashMap<String, String>());
+    }
+
+    private void addActivity(String user,String name, String content){
+        Map<String,Object> activityPayload = new HashMap<String, Object>();
+        activityPayload.put("content",content);
+        activityPayload.put("verb","post");
+        Map<String,String> actorMap = new HashMap<String, String>();
+        actorMap.put("displayName",name);
+        actorMap.put("username",user);
+        activityPayload.put("actor",actorMap);
+        resource().path("/test-organization/test-app/users/"+user+"/activities")
+                .queryParam("access_token", access_token)
+                .accept(MediaType.APPLICATION_JSON)
+                .type(MediaType.APPLICATION_JSON_TYPE)
+                .post(JsonNode.class, activityPayload);
+    }
 
     @Test
     public void mgmtCreateAndGetApplication() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4accb97/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java b/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
index ae3ac9b..b076e4d 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
@@ -133,7 +133,7 @@ public class ActivitiesService extends GenericCollectionService {
             return;
         }
         em.addToCollection( user, "feed", activity );
-        Results r = em.getConnectingEntities( user.getUuid(), "following", User.ENTITY_TYPE, Results.Level.REFS );
+        Results r = em.getConnectingEntities( user.getUuid(), "following", User.ENTITY_TYPE, Results.Level.REFS, 1000 ); //allow 1000 connections
         List<EntityRef> refs = r.getRefs();
         if ( refs != null ) {
             em.addToCollections( refs, "feed", activity );


[3/3] git commit: Merge d4accb978487b62c92f9c385a58a434dcc63c88d into 9aff385f50cc3af1b60082882dcef442eeefbb6e

Posted by sn...@apache.org.
Merge d4accb978487b62c92f9c385a58a434dcc63c88d into 9aff385f50cc3af1b60082882dcef442eeefbb6e


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

Branch: refs/pull/61/merge
Commit: 90abbe7a4e0ebfa72fb76cebd52e1febefdc18ee
Parents: 9aff385 d4accb9
Author: Shawn Feldman <sh...@gmail.com>
Authored: Tue Feb 25 13:54:13 2014 -0700
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Tue Feb 25 13:54:13 2014 -0700

----------------------------------------------------------------------
 portal/package.json                             |  3 +-
 .../rest/management/ManagementResourceIT.java   | 92 +++++++++++++++++++-
 .../users/activities/ActivitiesService.java     |  2 +-
 3 files changed, 92 insertions(+), 5 deletions(-)
----------------------------------------------------------------------



[2/3] git commit: Fixing social feed not working once you have over 10 followers, bumping limit to 1000

Posted by sn...@apache.org.
Fixing social feed not working once you have over 10 followers, bumping limit to 1000


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

Branch: refs/pull/61/merge
Commit: d4accb978487b62c92f9c385a58a434dcc63c88d
Parents: c431c84
Author: Shawn Feldman <sh...@gmail.com>
Authored: Tue Feb 25 13:54:04 2014 -0700
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Tue Feb 25 13:54:04 2014 -0700

----------------------------------------------------------------------
 .../rest/management/ManagementResourceIT.java   | 92 +++++++++++++++++++-
 .../users/activities/ActivitiesService.java     |  2 +-
 2 files changed, 91 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4accb97/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
index b379770..f289cd7 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
@@ -16,12 +16,12 @@
 package org.apache.usergrid.rest.management;
 
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import javax.ws.rs.core.MediaType;
 
 import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.node.ArrayNode;
 import org.junit.Test;
 import org.apache.usergrid.cassandra.Concurrent;
 import org.apache.usergrid.management.OrganizationInfo;
@@ -216,6 +216,94 @@ public class ManagementResourceIT extends AbstractRestIT {
                 "<a href=\"mailto:test@usergrid.com\">" ) );
     }
 
+    /** Test that we can support over 10 items in feed. */
+    @Test
+    public void mgmtFollowsUserFeed() throws Exception {
+        List<String> users1 = new ArrayList<String>();
+        int i;
+        //try with 10 users
+        for(i = 0; i<10;i++){
+            users1.add("follower" + Integer.toString(i));
+        }
+        checkFeed("leader1",users1);
+        //try with 11
+        List<String> users2 = new ArrayList<String>();
+        for(i =20; i<31;i++){
+            users2.add("follower" + Integer.toString(i));
+        }
+        checkFeed("leader2",users2);
+    }
+
+    private void checkFeed(String leader, List<String> followers){
+        JsonNode userFeed;
+        //create user
+        createUser(leader);
+        String preFollowContent = leader+": pre-something to look for " + UUID.randomUUID().toString();
+        addActivity(leader, leader + " " + leader + "son", preFollowContent);
+        String lastUser = followers.get(followers.size()-1);
+        int i = 0;
+        for(String user : followers){
+            createUser(user);
+            follow(user,leader);
+        }
+        userFeed = getUserFeed(lastUser);
+        assertTrue(userFeed.size()==1);
+
+        //retrieve feed
+        userFeed = getUserFeed(lastUser);
+        assertTrue(userFeed.size()==1);
+        String postFollowContent = leader+": something to look for " + UUID.randomUUID().toString();
+        addActivity(leader,leader+" "+leader+"son",postFollowContent);
+        //check feed
+        userFeed = getUserFeed(lastUser);
+        assertNotNull(userFeed);
+        assertTrue(userFeed.size()>1);
+        String serialized = userFeed.toString();
+        assertTrue(serialized.indexOf(postFollowContent)>0);
+        assertTrue(serialized.indexOf(preFollowContent)>0);
+    }
+
+    private void createUser(String username){
+        Map<String, Object> payload = new LinkedHashMap<String, Object>();
+        payload.put( "username", username );
+        resource().path( "/test-organization/test-app/users" )
+                .queryParam("access_token", access_token)
+                .accept( MediaType.APPLICATION_JSON )
+                .type(MediaType.APPLICATION_JSON_TYPE)
+                .post(JsonNode.class, payload);
+
+    }
+    private JsonNode getUserFeed(String username){
+        JsonNode userFeed = resource().path( "/test-organization/test-app/users/"+username+"/feed" )
+                .queryParam( "access_token", access_token )
+                .accept(MediaType.APPLICATION_JSON)
+                .get( JsonNode.class );
+        return userFeed.get("entities");
+    }
+
+    private void follow(String user, String followUser){
+        //post follow
+        resource().path( "/test-organization/test-app/users/"+user+"/following/users/"+followUser )
+                .queryParam("access_token", access_token)
+                .accept( MediaType.APPLICATION_JSON )
+                .type(MediaType.APPLICATION_JSON_TYPE)
+                .post(JsonNode.class, new HashMap<String, String>());
+    }
+
+    private void addActivity(String user,String name, String content){
+        Map<String,Object> activityPayload = new HashMap<String, Object>();
+        activityPayload.put("content",content);
+        activityPayload.put("verb","post");
+        Map<String,String> actorMap = new HashMap<String, String>();
+        actorMap.put("displayName",name);
+        actorMap.put("username",user);
+        activityPayload.put("actor",actorMap);
+        resource().path("/test-organization/test-app/users/"+user+"/activities")
+                .queryParam("access_token", access_token)
+                .accept(MediaType.APPLICATION_JSON)
+                .type(MediaType.APPLICATION_JSON_TYPE)
+                .post(JsonNode.class, activityPayload);
+    }
 
     @Test
     public void mgmtCreateAndGetApplication() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4accb97/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java b/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
index ae3ac9b..b076e4d 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
@@ -133,7 +133,7 @@ public class ActivitiesService extends GenericCollectionService {
             return;
         }
         em.addToCollection( user, "feed", activity );
-        Results r = em.getConnectingEntities( user.getUuid(), "following", User.ENTITY_TYPE, Results.Level.REFS );
+        Results r = em.getConnectingEntities( user.getUuid(), "following", User.ENTITY_TYPE, Results.Level.REFS, 1000 ); //allow 1000 connections
         List<EntityRef> refs = r.getRefs();
         if ( refs != null ) {
             em.addToCollections( refs, "feed", activity );