You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/05/13 19:40:10 UTC

[1/3] incubator-usergrid git commit: [USERGRID-572] - ignore sensitive params from QP in response params

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o-dev f5cb7880c -> ed8ee9a9a


[USERGRID-572] - ignore sensitive params from QP in response params


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

Branch: refs/heads/two-dot-o-dev
Commit: 072e2d4f9dd15c1f859ee110b3997f6e8d79c256
Parents: 472ccaf
Author: Senthil Kumar K <se...@gmail.com>
Authored: Wed Apr 22 11:38:38 2015 -0700
Committer: Senthil Kumar K <se...@gmail.com>
Committed: Wed Apr 22 11:38:38 2015 -0700

----------------------------------------------------------------------
 .../org/apache/usergrid/rest/ApiResponse.java   |  6 +++
 .../apache/usergrid/rest/ApiResponseTest.java   | 45 ++++++++++++++++++++
 2 files changed, 51 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/072e2d4f/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java b/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
index d7dd5f8..93e7f84 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
@@ -24,6 +24,8 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -85,6 +87,9 @@ public class ApiResponse {
 
     protected Map<String, Object> properties = new TreeMap<String, Object>( String.CASE_INSENSITIVE_ORDER );
 
+    protected final Collection<String> IGNORE_QP = Arrays.asList("client_id", "client_secret", "password", "username", "access_token",
+                    "client_credentials", "fb_access_token", "fq_access_token", "ping_access_token", "token");
+
     @Autowired
     protected ServerEnvironmentProperties serverEnvironmentProperties;
 
@@ -556,6 +561,7 @@ public class ApiResponse {
     public void setParams( Map<String, List<String>> params ) {
         Map<String, List<String>> q = new LinkedHashMap<String, List<String>>();
         for ( String k : params.keySet() ) {
+            if (IGNORE_QP.contains(k.toLowerCase())) continue;
             List<String> v = params.get( k );
             if ( v != null ) {
                 q.put( k, new ArrayList<String>( v ) );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/072e2d4f/stack/rest/src/test/java/org/apache/usergrid/rest/ApiResponseTest.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/ApiResponseTest.java b/stack/rest/src/test/java/org/apache/usergrid/rest/ApiResponseTest.java
new file mode 100644
index 0000000..552feaa
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/ApiResponseTest.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.usergrid.rest;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+public class ApiResponseTest {
+
+    @Test
+    public void testIgnoreQP() {
+        ApiResponse apiResponse = new ApiResponse();
+        Map<String, List<String>> params = new HashMap<String, List<String>>();
+        params.put("access_token", Arrays.asList("YWMtL8AQ-ukcEeS2lHs-P-n8wQAAAU0GaCt_Y0cPWeXMJij4x_fW0w_dTMpUH7I"));
+        params.put("name", Arrays.asList("test"));
+        params.put("username", Arrays.asList("abc"));
+        params.put("password", Arrays.asList("123"));
+        apiResponse.setParams(params);
+        assertNull(apiResponse.getParams().get("password"));
+        assertEquals(apiResponse.getParams().size(), 1);
+    }
+}


[2/3] incubator-usergrid git commit: rename vars

Posted by sf...@apache.org.
rename vars


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

Branch: refs/heads/two-dot-o-dev
Commit: e3ba2b0bca060b59c854e82502bade67ce01ae77
Parents: f5cb788
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed May 13 10:35:18 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed May 13 10:35:18 2015 -0700

----------------------------------------------------------------------
 .../corepersistence/CpRelationManager.java      | 77 ++++++++++----------
 .../cassandra/ManagementServiceImpl.java        |  3 +-
 2 files changed, 38 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e3ba2b0b/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 fb66b97..bd3d137 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
@@ -19,6 +19,8 @@ package org.apache.usergrid.corepersistence;
 
 import java.util.*;
 
+import org.apache.usergrid.persistence.graph.*;
+import org.apache.usergrid.utils.UUIDUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.Assert;
@@ -48,10 +50,6 @@ import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.entities.Group;
 import org.apache.usergrid.persistence.entities.User;
-import org.apache.usergrid.persistence.graph.Edge;
-import org.apache.usergrid.persistence.graph.GraphManager;
-import org.apache.usergrid.persistence.graph.SearchByEdge;
-import org.apache.usergrid.persistence.graph.SearchByEdgeType;
 import org.apache.usergrid.persistence.graph.impl.SimpleEdge;
 import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdge;
 import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
@@ -270,11 +268,11 @@ public class CpRelationManager implements RelationManager {
 
     @SuppressWarnings( "unchecked" )
     @Override
-    public boolean isCollectionMember( String collName, EntityRef entity ) throws Exception {
+    public boolean isCollectionMember( String collectionName, EntityRef entity ) throws Exception {
 
         Id entityId = new SimpleId( entity.getUuid(), entity.getType() );
 
-        String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName(collName);
+        String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName(collectionName);
 
         logger.debug( "isCollectionMember(): Checking for edge type {} from {}:{} to {}:{}", new Object[] {
             edgeType, headEntity.getType(), headEntity.getUuid(), entity.getType(), entity.getUuid()
@@ -313,7 +311,6 @@ public class CpRelationManager implements RelationManager {
     public Results getCollection( String collectionName, UUID startResult, int count, Level resultsLevel,
                                   boolean reversed ) throws Exception {
 
-
         final String ql;
 
         if ( startResult != null ) {
@@ -332,35 +329,35 @@ public class CpRelationManager implements RelationManager {
 
 
     @Override
-    public Results getCollection( String collName, Query query, Level level ) throws Exception {
+    public Results getCollection( String collectionName, Query query, Level level ) throws Exception {
 
-        return searchCollection( collName, query );
+        return searchCollection( collectionName, query );
     }
 
 
     // add to a named collection of the head entity
     @Override
-    public Entity addToCollection( String collName, EntityRef itemRef ) throws Exception {
+    public Entity addToCollection( String collectionName, EntityRef itemRef ) throws Exception {
 
-        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collName );
+        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collectionName );
         if ( ( collection != null ) && !collection.getType().equals( itemRef.getType() ) ) {
             return null;
         }
 
-        return addToCollection( collName, itemRef, ( collection != null && collection.getLinkedCollection() != null ) );
+        return addToCollection( collectionName, itemRef, ( collection != null && collection.getLinkedCollection() != null ) );
     }
 
 
-    public Entity addToCollection( String collName, EntityRef itemRef, boolean connectBack ) throws Exception {
+    public Entity addToCollection( String collectionName, EntityRef itemRef, boolean connectBack ) throws Exception {
 
         Id entityId = new SimpleId( itemRef.getUuid(), itemRef.getType() );
         org.apache.usergrid.persistence.model.entity.Entity memberEntity = ( ( CpEntityManager ) em ).load( entityId );
 
-        return addToCollection( collName, itemRef, memberEntity, connectBack );
+        return addToCollection( collectionName, itemRef, memberEntity, connectBack );
     }
 
 
-    public Entity addToCollection( final String collName, final EntityRef itemRef,
+    public Entity addToCollection( final String collectionName, final EntityRef itemRef,
                                    final org.apache.usergrid.persistence.model.entity.Entity memberEntity,
                                    final boolean connectBack ) throws Exception {
 
@@ -377,7 +374,7 @@ public class CpRelationManager implements RelationManager {
             return null;
         }
 
-        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collName );
+        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collectionName );
         if ( ( collection != null ) && !collection.getType().equals( itemRef.getType() ) ) {
             return null;
         }
@@ -396,7 +393,7 @@ public class CpRelationManager implements RelationManager {
 
 
         // create graph edge connection from head entity to member entity
-        final Edge edge = createCollectionEdge( cpHeadEntity.getId(), collName, memberEntity.getId() );
+        final Edge edge = createCollectionEdge( cpHeadEntity.getId(), collectionName, memberEntity.getId() );
         GraphManager gm = managerCache.getGraphManager( applicationScope );
         gm.writeEdge( edge ).toBlocking().last();
 
@@ -412,7 +409,7 @@ public class CpRelationManager implements RelationManager {
 
         if ( logger.isDebugEnabled() ) {
             logger.debug( "Added entity {}:{} to collection {}", new Object[] {
-                itemRef.getUuid().toString(), itemRef.getType(), collName
+                itemRef.getUuid().toString(), itemRef.getType(), collectionName
             } );
         }
 
@@ -422,11 +419,11 @@ public class CpRelationManager implements RelationManager {
 
 
     @Override
-    public Entity addToCollections( List<EntityRef> owners, String collName ) throws Exception {
+    public Entity addToCollections( List<EntityRef> owners, String collectionName ) throws Exception {
 
         // TODO: this addToCollections() implementation seems wrong.
         for ( EntityRef eref : owners ) {
-            addToCollection( collName, eref );
+            addToCollection( collectionName, eref );
         }
 
         return null;
@@ -434,12 +431,12 @@ public class CpRelationManager implements RelationManager {
 
 
     @Override
-    public Entity createItemInCollection( String collName, String itemType, Map<String, Object> properties )
+    public Entity createItemInCollection( String collectionName, String itemType, Map<String, Object> properties )
         throws Exception {
 
         if ( headEntity.getUuid().equals( applicationId ) ) {
             if ( itemType.equals( TYPE_ENTITY ) ) {
-                itemType = singularize( collName );
+                itemType = singularize( collectionName );
             }
 
             if ( itemType.equals( TYPE_ROLE ) ) {
@@ -453,13 +450,13 @@ public class CpRelationManager implements RelationManager {
             return em.create( itemType, properties );
         }
 
-        else if ( headEntity.getType().equals( Group.ENTITY_TYPE ) && ( collName.equals( COLLECTION_ROLES ) ) ) {
+        else if ( headEntity.getType().equals( Group.ENTITY_TYPE ) && ( collectionName.equals( COLLECTION_ROLES ) ) ) {
             UUID groupId = headEntity.getUuid();
             String roleName = ( String ) properties.get( PROPERTY_NAME );
             return em.createGroupRole( groupId, roleName, ( Long ) properties.get( PROPERTY_INACTIVITY ) );
         }
 
-        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collName );
+        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collectionName );
         if ( ( collection != null ) && !collection.getType().equals( itemType ) ) {
             return null;
         }
@@ -470,11 +467,11 @@ public class CpRelationManager implements RelationManager {
 
         if ( itemEntity != null ) {
 
-            addToCollection( collName, itemEntity );
+            addToCollection( collectionName, itemEntity );
 
             if ( collection != null && collection.getLinkedCollection() != null ) {
                 Id itemEntityId = new SimpleId( itemEntity.getUuid(), itemEntity.getType() );
-                final Edge edge = createCollectionEdge( cpHeadEntity.getId(), collName, itemEntityId );
+                final Edge edge = createCollectionEdge( cpHeadEntity.getId(), collectionName, itemEntityId );
 
                 GraphManager gm = managerCache.getGraphManager( applicationScope );
                 gm.writeEdge( edge );
@@ -486,11 +483,11 @@ public class CpRelationManager implements RelationManager {
 
 
     @Override
-    public void removeFromCollection( String collName, EntityRef itemRef ) throws Exception {
+    public void removeFromCollection( String collectionName, EntityRef itemRef ) throws Exception {
 
         // special handling for roles collection of the application
         if ( headEntity.getUuid().equals( applicationId ) ) {
-            if ( collName.equals( COLLECTION_ROLES ) ) {
+            if ( collectionName.equals( COLLECTION_ROLES ) ) {
                 Entity itemEntity = em.get( itemRef );
                 if ( itemEntity != null ) {
                     RoleRef roleRef = SimpleRoleRef.forRoleEntity( itemEntity );
@@ -522,7 +519,7 @@ public class CpRelationManager implements RelationManager {
 
 
         //run our delete
-        final Edge collectionToItemEdge = createCollectionEdge( cpHeadEntity.getId(), collName, memberEntity.getId() );
+        final Edge collectionToItemEdge = createCollectionEdge( cpHeadEntity.getId(), collectionName, memberEntity.getId() );
         gm.markEdge( collectionToItemEdge ).toBlocking().last();
 
 
@@ -535,7 +532,7 @@ public class CpRelationManager implements RelationManager {
         final EntityIndexBatch batch = ei.createBatch();
 
         // remove item from collection index
-        SearchEdge indexScope = createCollectionSearchEdge( cpHeadEntity.getId(), collName );
+        SearchEdge indexScope = createCollectionSearchEdge( cpHeadEntity.getId(), collectionName );
 
         batch.deindex( indexScope, memberEntity );
 
@@ -546,7 +543,7 @@ public class CpRelationManager implements RelationManager {
         // special handling for roles collection of a group
         if ( headEntity.getType().equals( Group.ENTITY_TYPE ) ) {
 
-            if ( collName.equals( COLLECTION_ROLES ) ) {
+            if ( collectionName.equals( COLLECTION_ROLES ) ) {
                 String path = ( String ) ( ( Entity ) itemRef ).getMetadata( "path" );
 
                 if ( path.startsWith( "/roles/" ) ) {
@@ -599,20 +596,20 @@ public class CpRelationManager implements RelationManager {
 
 
     @Override
-    public Results searchCollection( String collName, Query query ) throws Exception {
+    public Results searchCollection( String collectionName, Query query ) throws Exception {
 
         if ( query == null ) {
             query = new Query();
-            query.setCollection( collName );
+            query.setCollection( collectionName );
         }
 
         headEntity = em.validate( headEntity );
 
-        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collName );
+        CollectionInfo collection = getDefaultSchema().getCollection( headEntity.getType(), collectionName );
 
         if ( collection == null ) {
             throw new RuntimeException(
-                "Cannot find collection-info for '" + collName + "' of " + headEntity.getType() + ":" + headEntity
+                "Cannot find collection-info for '" + collectionName + "' of " + headEntity.getType() + ":" + headEntity
                     .getUuid() );
         }
 
@@ -627,18 +624,18 @@ public class CpRelationManager implements RelationManager {
 
         //set our fields applicable to both operations
         readPipelineBuilder.withCursor(query.getCursor());
-        readPipelineBuilder.withLimit( Optional.of( query.getLimit() ));
+        readPipelineBuilder.withLimit( Optional.of(query.getLimit()));
 
         //TODO, this should be removed when the CP relation manager is removed
         readPipelineBuilder.setStartId( cpHeadEntity.getId() );
 
         if ( query.isGraphSearch() ) {
-            readPipelineBuilder.getCollection( collName );
+            readPipelineBuilder.getCollection( collectionName );
         }
         else {
             final String entityType = collection.getType();
 
-            readPipelineBuilder.getCollectionWithQuery( collName, entityType, query.getQl().get() );
+            readPipelineBuilder.getCollectionWithQuery( collectionName, entityType, query.getQl().get() );
         }
 
 
@@ -648,14 +645,14 @@ public class CpRelationManager implements RelationManager {
     }
 
     @Override
-    public Results searchCollectionConsistent( String collName, Query query, int expectedResults ) throws Exception {
+    public Results searchCollectionConsistent( String collectionName, Query query, int expectedResults ) throws Exception {
         Results results;
         long maxLength = entityManagerFig.pollForRecordsTimeout();
         long sleepTime = entityManagerFig.sleep();
         boolean found;
         long current = System.currentTimeMillis(), length = 0;
         do {
-            results = searchCollection(collName, query);
+            results = searchCollection(collectionName, query);
             length = System.currentTimeMillis() - current;
             found = expectedResults == results.size();
             if(found){

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e3ba2b0b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index ebc1008..7909439 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -540,8 +540,7 @@ public class ManagementServiceImpl implements ManagementService {
         organizationEntity = em.create( organizationEntity );
 
         em.addToCollection( organizationEntity, "users", new SimpleEntityRef( User.ENTITY_TYPE, user.getUuid() ) );
-      //  em.addToCollection( new SimpleEntityRef( User.ENTITY_TYPE, user.getUuid() ), Schema.COLLECTION_GROUPS, organizationEntity );
-
+//        em.addToCollection( new SimpleEntityRef( User.ENTITY_TYPE, user.getUuid() ), Schema.COLLECTION_GROUPS, organizationEntity );
 
         writeUserToken( smf.getManagementAppId(), organizationEntity, encryptionService
                 .plainTextCredentials( generateOAuthSecretKey( AuthPrincipalType.ORGANIZATION ), user.getUuid(),


[3/3] incubator-usergrid git commit: merge

Posted by sf...@apache.org.
merge


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

Branch: refs/heads/two-dot-o-dev
Commit: ed8ee9a9a197b00497a1f7b74701368e2b48763b
Parents: 072e2d4 e3ba2b0
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed May 13 10:39:21 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed May 13 10:39:21 2015 -0700

----------------------------------------------------------------------
 portal/index-template.html                      |    2 +-
 portal/js/data/data-controller.js               |   58 +-
 portal/js/data/data.html                        |   36 +-
 portal/js/global/ug-service.js                  |   30 +-
 portal/js/login/login-controller.js             |   15 +-
 .../Usergrid.Notifications/BackgroundTask.cs    |   57 +
 .../Usergrid.Notifications/Client/PushClient.cs |   12 +-
 .../Usergrid.Notifications/MainPage.xaml.cs     |   12 +-
 .../Usergrid.Notifications/MyBackgroundTask.cs  |   18 +
 .../Usergrid.Notifications/Package.appxmanifest |    8 +
 .../Usergrid.Notifications.csproj               |    1 +
 .../Usergrid.Notifications.sln                  |   40 +
 .../main/dist/init_instance/init_rest_server.sh |    6 +-
 .../main/resources/usergrid-default.properties  |    5 +-
 stack/core/pom.xml                              |   58 +-
 .../batch/service/JobSchedulerService.java      |   28 +-
 .../batch/service/SchedulerService.java         |    2 +-
 .../batch/service/SchedulerServiceImpl.java     |   23 +-
 .../corepersistence/ApplicationIdCache.java     |   51 +
 .../ApplicationIdCacheFactory.java              |   43 +
 .../corepersistence/ApplicationIdCacheFig.java  |   43 +
 .../corepersistence/ApplicationIdCacheImpl.java |  146 +
 .../usergrid/corepersistence/CoreModule.java    |  156 +-
 .../corepersistence/CpEntityManager.java        |  449 +--
 .../corepersistence/CpEntityManagerFactory.java |  572 ++--
 .../corepersistence/CpManagerCache.java         |   65 +-
 .../corepersistence/CpQueryProcessor.java       |   94 -
 .../corepersistence/CpRelationManager.java      | 1980 +++---------
 .../usergrid/corepersistence/CpSetup.java       |   32 +-
 .../usergrid/corepersistence/CpWalker.java      |   85 +-
 .../corepersistence/EntityManagerFig.java       |   38 +
 .../usergrid/corepersistence/GuiceFactory.java  |   75 +-
 .../usergrid/corepersistence/ManagerCache.java  |   17 +-
 .../corepersistence/OrgApplicationCache.java    |   67 -
 .../OrgApplicationCacheImpl.java                |  181 --
 .../asyncevents/AsyncEventService.java          |   71 +
 .../asyncevents/AsyncIndexProvider.java         |  124 +
 .../asyncevents/EventBuilder.java               |  105 +
 .../asyncevents/EventBuilderImpl.java           |  154 +
 .../asyncevents/InMemoryAsyncEventService.java  |  116 +
 .../asyncevents/SQSAsyncEventService.java       |  349 +++
 .../events/EntityDeletedHandler.java            |   82 -
 .../events/EntityVersionCreatedHandler.java     |   89 -
 .../events/EntityVersionDeletedHandler.java     |  106 -
 .../corepersistence/index/IndexEntityEvent.java |   75 +
 .../index/IndexProcessorFig.java                |   89 +
 .../corepersistence/index/IndexService.java     |   85 +
 .../corepersistence/index/IndexServiceImpl.java |  229 ++
 .../corepersistence/index/ReIndexAction.java    |   33 +
 .../corepersistence/index/ReIndexService.java   |   89 +
 .../index/ReIndexServiceImpl.java               |  130 +
 .../migration/AppInfoMigrationPlugin.java       |  292 ++
 .../migration/AppInfoVersions.java              |   40 +
 .../migration/CoreDataVersions.java             |   45 +
 .../migration/CoreMigration.java                |   53 +
 .../migration/CoreMigrationPlugin.java          |   64 +
 .../migration/EntityDataMigration.java          |  147 -
 .../migration/EntityTypeMappingMigration.java   |   69 +-
 .../migration/GraphShardVersionMigration.java   |  152 -
 .../migration/MigrationModuleVersionPlugin.java |  145 +
 .../migration/MigrationSystemVersions.java      |   43 +
 .../corepersistence/migration/Versions.java     |   14 -
 .../corepersistence/pipeline/Pipeline.java      |  121 +
 .../pipeline/PipelineBuilderFactory.java        |   39 +
 .../pipeline/PipelineContext.java               |   82 +
 .../pipeline/PipelineDiagram.jpg                |  Bin 0 -> 183035 bytes
 .../pipeline/PipelineModule.java                |   58 +
 .../pipeline/PipelineOperation.java             |   39 +
 .../usergrid/corepersistence/pipeline/README.md |  187 ++
 .../cursor/AbstractCursorSerializer.java        |   62 +
 .../pipeline/cursor/CursorDiagram.jpg           |  Bin 0 -> 167390 bytes
 .../pipeline/cursor/CursorParseException.java   |   30 +
 .../pipeline/cursor/CursorSerializer.java       |   42 +
 .../pipeline/cursor/CursorSerializerUtil.java   |   43 +
 .../pipeline/cursor/RequestCursor.java          |  111 +
 .../pipeline/cursor/ResponseCursor.java         |  110 +
 .../pipeline/read/AbstractFilter.java           |   45 +
 .../pipeline/read/AbstractPathFilter.java       |  109 +
 .../pipeline/read/Collector.java                |   38 +
 .../pipeline/read/CollectorFactory.java         |   38 +
 .../corepersistence/pipeline/read/EdgePath.java |   79 +
 .../corepersistence/pipeline/read/Filter.java   |   31 +
 .../pipeline/read/FilterFactory.java            |  143 +
 .../pipeline/read/FilterResult.java             |   56 +
 .../pipeline/read/ReadDiagram.jpg               |  Bin 0 -> 818565 bytes
 .../pipeline/read/ReadFilterFactoryImpl.java    |  136 +
 .../pipeline/read/ReadPipelineBuilder.java      |  104 +
 .../pipeline/read/ReadPipelineBuilderImpl.java  |  296 ++
 .../pipeline/read/ResultsPage.java              |   67 +
 .../read/collect/AbstractCollector.java         |   46 +
 .../pipeline/read/collect/CollectDiagram.jpg    |  Bin 0 -> 98007 bytes
 .../pipeline/read/collect/EntityFilter.java     |   68 +
 .../read/collect/IdCursorSerializer.java        |   41 +
 .../read/collect/ResultsPageCollector.java      |   80 +
 .../AbstractElasticSearchFilter.java            |  171 +
 .../pipeline/read/elasticsearch/Candidate.java  |   55 +
 .../elasticsearch/CandidateEntityFilter.java    |  234 ++
 .../read/elasticsearch/CandidateIdFilter.java   |  201 ++
 .../ElasticSearchCollectionFilter.java          |   77 +
 .../ElasticSearchConnectionFilter.java          |   73 +
 .../ElasticsearchCursorSerializer.java          |   42 +
 .../read/elasticsearch/Elasticsearchdiagram.jpg |  Bin 0 -> 316655 bytes
 .../graph/AbstractReadGraphEdgeByIdFilter.java  |   82 +
 .../read/graph/AbstractReadGraphFilter.java     |  147 +
 .../read/graph/EdgeCursorSerializer.java        |   42 +
 .../pipeline/read/graph/EntityIdFilter.java     |   54 +
 .../pipeline/read/graph/EntityLoadFilter.java   |  155 +
 .../pipeline/read/graph/GraphDiagram.jpg        |  Bin 0 -> 347711 bytes
 .../graph/ReadGraphCollectionByIdFilter.java    |   49 +
 .../read/graph/ReadGraphCollectionFilter.java   |   53 +
 .../graph/ReadGraphConnectionByIdFilter.java    |   50 +
 .../graph/ReadGraphConnectionByTypeFilter.java  |  100 +
 .../read/graph/ReadGraphConnectionFilter.java   |   53 +
 .../results/CollectionRefsVerifier.java         |   44 -
 .../CollectionResultsLoaderFactoryImpl.java     |   60 -
 .../results/ConnectionRefsVerifier.java         |   61 -
 .../ConnectionResultsLoaderFactoryImpl.java     |   65 -
 .../results/ElasticSearchQueryExecutor.java     |  216 --
 .../corepersistence/results/EntityVerifier.java |  127 -
 .../results/FilteringLoader.java                |  254 --
 .../corepersistence/results/IdsVerifier.java    |   46 -
 .../results/ObservableQueryExecutor.java        |  135 +
 .../corepersistence/results/ResultsLoader.java  |   43 -
 .../results/ResultsLoaderFactory.java           |   42 -
 .../results/ResultsVerifier.java                |   52 -
 .../results/VersionVerifier.java                |   85 -
 .../rx/AllEntitiesInSystemObservable.java       |  101 -
 .../rx/ApplicationObservable.java               |  128 -
 .../rx/EdgesFromSourceObservable.java           |   63 -
 .../rx/EdgesToTargetObservable.java             |   63 -
 .../corepersistence/rx/TargetIdObservable.java  |   66 -
 .../rx/impl/AbstractGraphVisitorImpl.java       |   65 +
 .../rx/impl/AllApplicationsObservable.java      |   43 +
 .../rx/impl/AllApplicationsObservableImpl.java  |  134 +
 .../rx/impl/AllEntitiesInSystemImpl.java        |   53 +
 .../rx/impl/AllEntityIdsObservable.java         |   52 +
 .../rx/impl/AllEntityIdsObservableImpl.java     |   92 +
 .../rx/impl/AllNodesInGraphImpl.java            |   54 +
 .../corepersistence/rx/impl/EdgeScope.java      |   51 +
 .../corepersistence/util/CpEntityMapUtils.java  |   19 +-
 .../corepersistence/util/CpNamingUtils.java     |  236 +-
 .../util/SerializableMapper.java                |   91 +
 .../usergrid/exception/ConflictException.java   |   36 +
 .../main/java/org/apache/usergrid/mq/Query.java |    2 +-
 .../org/apache/usergrid/mq/QueryProcessor.java  |  210 +-
 .../apache/usergrid/mq/cassandra/QueuesCF.java  |    5 -
 .../usergrid/persistence/ConnectionRef.java     |    4 +-
 .../usergrid/persistence/CounterQuery.java      |    2 +-
 .../usergrid/persistence/EntityManager.java     |   49 +-
 .../persistence/EntityManagerFactory.java       |  134 +-
 .../persistence/EntityPropertyComparator.java   |   56 -
 .../persistence/GuiceAdapterBeanFactory.java    |  114 +
 .../persistence/MultiQueryIterator.java         |    4 +-
 .../persistence/ObservableIterator.java         |    1 +
 .../persistence/PagingResultsIterator.java      |    4 +-
 .../apache/usergrid/persistence/PathQuery.java  |    6 +-
 .../usergrid/persistence/PersistenceModule.java |   66 +
 .../org/apache/usergrid/persistence/Query.java  |  890 ++++++
 .../apache/usergrid/persistence/QueryUtils.java |   61 +-
 .../usergrid/persistence/RelationManager.java   |   17 +-
 .../apache/usergrid/persistence/Results.java    |   81 +-
 .../org/apache/usergrid/persistence/Schema.java |    5 +-
 .../persistence/cassandra/ApplicationCF.java    |   37 -
 .../cassandra/CassandraPersistenceUtils.java    |  122 +-
 .../persistence/cassandra/CassandraService.java |  304 +-
 .../cassandra/ConnectionRefImpl.java            |   24 +-
 .../persistence/cassandra/CursorCache.java      |  137 -
 .../cassandra/EntityManagerFactoryImpl.java     |  485 ---
 .../cassandra/EntityManagerImpl.java            | 2935 ------------------
 .../cassandra/EntityValueSerializer.java        |   53 -
 .../persistence/cassandra/GeoIndexManager.java  |  330 --
 .../persistence/cassandra/IndexUpdate.java      |  451 ---
 .../persistence/cassandra/QueryProcessor.java   |   60 -
 .../cassandra/QueryProcessorImpl.java           |  727 -----
 .../cassandra/RelationManagerImpl.java          | 2298 --------------
 .../persistence/cassandra/SetupImpl.java        |  170 -
 .../cassandra/SimpleIndexBucketLocatorImpl.java |  122 -
 .../cassandra/index/ConnectedIndexScanner.java  |  280 --
 .../cassandra/index/IndexBucketScanner.java     |  238 --
 .../index/IndexMultiBucketSetLoader.java        |  139 -
 .../cassandra/index/IndexScanner.java           |   40 -
 .../cassandra/index/NoOpIndexScanner.java       |   95 -
 .../DuplicateUniquePropertyExistsException.java |    2 +-
 .../persistence/geo/CollectionGeoSearch.java    |   68 -
 .../persistence/geo/ConnectionGeoSearch.java    |   67 -
 .../persistence/geo/EntityLocationRef.java      |  227 --
 .../EntityLocationRefDistanceComparator.java    |   78 -
 .../persistence/geo/GeoIndexSearcher.java       |  370 ---
 .../persistence/geo/GeocellManager.java         |  195 --
 .../usergrid/persistence/geo/GeocellUtils.java  |  543 ----
 .../geo/comparator/DoubleTupleComparator.java   |   39 -
 .../persistence/geo/model/BoundingBox.java      |   74 -
 .../persistence/geo/model/CostFunction.java     |   36 -
 .../geo/model/DefaultCostFunction.java          |   37 -
 .../usergrid/persistence/geo/model/Point.java   |   61 -
 .../usergrid/persistence/geo/model/Tuple.java   |   40 -
 .../usergrid/persistence/query/ir/AllNode.java  |   82 -
 .../usergrid/persistence/query/ir/AndNode.java  |   44 -
 .../persistence/query/ir/BooleanNode.java       |   65 -
 .../query/ir/EmailIdentifierNode.java           |   58 -
 .../query/ir/NameIdentifierNode.java            |   56 -
 .../persistence/query/ir/NodeVisitor.java       |   79 -
 .../usergrid/persistence/query/ir/NotNode.java  |   75 -
 .../usergrid/persistence/query/ir/OrNode.java   |   53 -
 .../persistence/query/ir/OrderByNode.java       |  105 -
 .../persistence/query/ir/QueryNode.java         |   41 -
 .../persistence/query/ir/QuerySlice.java        |  345 --
 .../persistence/query/ir/SearchVisitor.java     |  270 --
 .../persistence/query/ir/SliceNode.java         |  180 --
 .../query/ir/UuidIdentifierNode.java            |   60 -
 .../persistence/query/ir/WithinNode.java        |  109 -
 .../query/ir/result/AbstractScanColumn.java     |   83 -
 .../result/CollectionResultsLoaderFactory.java  |   41 -
 .../ir/result/ConnectionIndexSliceParser.java   |   87 -
 .../query/ir/result/ConnectionRefLoader.java    |   81 -
 .../result/ConnectionResultsLoaderFactory.java  |   50 -
 .../ir/result/ConnectionTypesIterator.java      |  190 --
 .../query/ir/result/EmptyIterator.java          |   63 -
 .../query/ir/result/EntityRefLoader.java        |   51 -
 .../query/ir/result/EntityResultsLoader.java    |   47 -
 .../query/ir/result/GeoIterator.java            |  351 ---
 .../persistence/query/ir/result/IDLoader.java   |   40 -
 .../query/ir/result/IntersectionIterator.java   |  170 -
 .../query/ir/result/MergeIterator.java          |  150 -
 .../query/ir/result/MultiIterator.java          |   55 -
 .../query/ir/result/OrderByIterator.java        |  250 --
 .../query/ir/result/ResultIterator.java         |   44 -
 .../query/ir/result/ResultsLoader.java          |   30 -
 .../query/ir/result/ResultsLoaderFactory.java   |   37 -
 .../persistence/query/ir/result/ScanColumn.java |   32 -
 .../query/ir/result/ScanColumnTransformer.java  |   39 -
 .../ir/result/SecondaryIndexSliceParser.java    |   61 -
 .../query/ir/result/SliceIterator.java          |  242 --
 .../query/ir/result/SliceParser.java            |   32 -
 .../query/ir/result/StaticIdIterator.java       |   82 -
 .../query/ir/result/SubtractionIterator.java    |  113 -
 .../query/ir/result/UUIDIndexSliceParser.java   |   47 -
 .../query/ir/result/UnionIterator.java          |  264 --
 .../main/resources/usergrid-core-context.xml    |   32 +-
 .../java/org/apache/usergrid/Application.java   |    2 +-
 .../org/apache/usergrid/CoreApplication.java    |   40 +-
 .../java/org/apache/usergrid/CoreITSetup.java   |   10 +-
 .../org/apache/usergrid/CoreITSetupImpl.java    |   69 +-
 .../org/apache/usergrid/TestEntityIndex.java    |   27 +
 .../usergrid/batch/job/SchedulerRuntime8IT.java |    8 +-
 .../corepersistence/StaleIndexCleanupTest.java  |  124 +-
 .../corepersistence/TestIndexModule.java        |   43 +
 .../index/AsyncIndexServiceTest.java            |  199 ++
 .../index/InMemoryAsycIndexServiceTest.java     |   65 +
 .../corepersistence/index/IndexServiceTest.java |  328 ++
 .../corepersistence/index/PublishRxTest.java    |   95 +
 .../index/SQSAsyncEventServiceTest.java         |   84 +
 .../migration/EntityDataMigrationIT.java        |  262 --
 .../migration/EntityTypeMappingMigrationIT.java |  183 +-
 .../migration/GraphShardVersionMigrationIT.java |  226 --
 .../MigrationModuleVersionPluginTest.java       |  259 ++
 .../migration/MigrationTestRule.java            |   99 -
 .../migration/TestProgressObserver.java         |   71 -
 .../pipeline/cursor/CursorTest.java             |  109 +
 .../rx/AllEntitiesInSystemObservableIT.java     |   71 +-
 .../rx/ApplicationObservableTestIT.java         |   17 +-
 .../rx/EdgesFromSourceObservableIT.java         |   19 +-
 .../rx/EdgesToTargetObservableIT.java           |   59 +-
 .../rx/TargetIdObservableTestIT.java            |    7 +-
 .../java/org/apache/usergrid/mq/MessagesIT.java |    6 +
 .../usergrid/persistence/CollectionIT.java      |  388 +--
 .../apache/usergrid/persistence/CounterIT.java  |   11 +-
 .../usergrid/persistence/CountingMutatorIT.java |    6 +-
 .../persistence/EntityConnectionsIT.java        |   36 +-
 .../usergrid/persistence/EntityManagerIT.java   |   66 +-
 .../EntityPropertyComparatorTest.java           |  222 --
 .../org/apache/usergrid/persistence/GeoIT.java  |  170 +-
 .../persistence/GeoQueryBooleanTest.java        |   28 +-
 .../apache/usergrid/persistence/IndexIT.java    |   62 +-
 .../usergrid/persistence/LargeEntityIT.java     |    3 +-
 .../usergrid/persistence/PathQueryIT.java       |   33 +-
 .../PerformanceEntityRebuildIndexTest.java      |   61 +-
 .../usergrid/persistence/PermissionsIT.java     |    6 +-
 .../apache/usergrid/persistence/QueryTest.java  |  328 --
 .../cassandra/EntityManagerFactoryImplIT.java   |  126 +-
 .../cassandra/QueryProcessorTest.java           |  822 -----
 .../SimpleIndexShardLocatorImplTest.java        |  177 --
 ...EntityLocationRefDistanceComparatorTest.java |  104 -
 .../persistence/query/CollectionIoHelper.java   |    3 +-
 .../persistence/query/ConnectionHelper.java     |    4 +-
 .../query/IntersectionTransitivePagingIT.java   |    7 +-
 .../query/IntersectionUnionPagingIT.java        |    5 +-
 .../usergrid/persistence/query/IoHelper.java    |    2 +-
 .../persistence/query/IteratingQueryIT.java     |  165 +-
 .../persistence/query/NotSubPropertyIT.java     |    8 +-
 .../query/OrderByDiscardPagesPagingIT.java      |  164 -
 .../query/ir/result/AbstractScanColumnTest.java |  101 -
 .../query/ir/result/InOrderIterator.java        |  132 -
 .../ir/result/IntersectionIteratorTest.java     |  308 --
 .../query/ir/result/IteratorHelper.java         |   34 -
 .../ir/result/SubtractionIteratorTest.java      |  182 --
 .../query/ir/result/UnionIteratorTest.java      |  468 ---
 .../apache/usergrid/utils/EdgeTestUtils.java    |   50 +
 stack/core/src/test/resources/log4j.properties  |    4 +
 .../resources/usergrid-custom-test.properties   |    7 +-
 .../resources/usergrid-properties-context.xml   |   40 -
 .../usergrid-scheduler-test.properties          |    2 +
 .../test/resources/usergrid-test-context.xml    |    1 +
 stack/corepersistence/collection/pom.xml        |   14 +-
 .../persistence/collection/CollectionScope.java |   45 -
 .../collection/EntityCollectionManager.java     |   67 +-
 .../EntityCollectionManagerFactory.java         |   36 +-
 .../collection/EntityCollectionManagerSync.java |   49 -
 .../persistence/collection/EntitySet.java       |   14 +-
 .../persistence/collection/FieldSet.java        |    2 +-
 .../persistence/collection/MvccEntity.java      |    5 +-
 .../persistence/collection/MvccLogEntry.java    |    1 +
 .../cache/CachedEntityCollectionManager.java    |   29 +-
 .../collection/event/EntityDeleted.java         |   45 -
 .../collection/event/EntityVersionCreated.java  |   38 -
 .../collection/event/EntityVersionDeleted.java  |   45 -
 .../exception/CollectionRuntimeException.java   |   30 +-
 .../exception/EntityTooLargeException.java      |    6 +-
 .../exception/WriteCommitException.java         |   11 +-
 .../WriteOptimisticVerifyException.java         |   11 +-
 .../exception/WriteStartException.java          |   11 +-
 .../exception/WriteUniqueVerifyException.java   |    6 +-
 .../collection/guice/CollectionModule.java      |   63 +-
 .../guice/CollectionTaskExecutor.java           |    4 +-
 .../persistence/collection/guice/Write.java     |   17 -
 .../collection/guice/WriteUpdate.java           |   17 -
 .../collection/impl/CollectionScopeImpl.java    |  102 -
 .../EntityCollectionManagerFactoryImpl.java     |  124 +-
 .../impl/EntityCollectionManagerImpl.java       |  485 ++-
 .../impl/EntityCollectionManagerSyncImpl.java   |   71 -
 .../collection/impl/EntityDeletedTask.java      |  147 -
 .../impl/EntityVersionCleanupTask.java          |  248 --
 .../impl/EntityVersionCreatedTask.java          |  122 -
 .../impl/EntityVersionTaskFactory.java          |   65 -
 .../mvcc/MvccEntitySerializationStrategy.java   |  102 -
 .../mvcc/MvccLogEntrySerializationStrategy.java |   80 -
 .../collection/mvcc/changelog/ChangeLog.java    |    2 -
 .../mvcc/entity/MvccValidationUtils.java        |   16 -
 .../mvcc/entity/impl/MvccEntityDeleteEvent.java |    8 +-
 .../mvcc/entity/impl/MvccEntityEvent.java       |   11 +-
 .../mvcc/entity/impl/MvccEntityWriteEvent.java  |    6 +-
 .../mvcc/stage/CollectionIoEvent.java           |    9 +-
 .../mvcc/stage/EntityUpdateEvent.java           |   34 -
 .../mvcc/stage/delete/MarkCommit.java           |   15 +-
 .../collection/mvcc/stage/delete/MarkStart.java |   20 +-
 .../mvcc/stage/delete/UniqueCleanup.java        |  133 +
 .../mvcc/stage/delete/VersionCompact.java       |  125 +
 .../mvcc/stage/write/RollbackAction.java        |   14 +-
 .../mvcc/stage/write/WriteCommit.java           |   32 +-
 .../mvcc/stage/write/WriteOptimisticVerify.java |   12 +-
 .../collection/mvcc/stage/write/WriteStart.java |   22 +-
 .../mvcc/stage/write/WriteUniqueVerify.java     |   45 +-
 .../collection/serialization/EntityRepair.java  |   38 -
 .../MvccEntitySerializationStrategy.java        |  117 +
 .../MvccLogEntrySerializationStrategy.java      |   96 +
 .../serialization/OptimisticUpdate.java         |   23 -
 .../serialization/SerializationFig.java         |   30 +-
 .../collection/serialization/UniqueValue.java   |    1 -
 .../UniqueValueSerializationStrategy.java       |   65 +-
 .../serialization/UniqueValueSet.java           |    1 +
 .../impl/CollectionDataVersions.java            |   54 +
 .../serialization/impl/EntityRepairImpl.java    |  149 -
 .../serialization/impl/EntitySetImpl.java       |   10 +-
 .../impl/EntityVersionSerializer.java           |   11 +-
 .../serialization/impl/FieldSerializer.java     |  118 -
 .../serialization/impl/LogEntryIterator.java    |  114 -
 .../impl/MinMaxLogEntryIterator.java            |  121 +
 .../serialization/impl/MutableFieldSet.java     |    6 +-
 .../MvccEntitySerializationStrategyImpl.java    |  177 +-
 ...vccEntitySerializationStrategyProxyImpl.java |  163 +-
 .../MvccEntitySerializationStrategyV1Impl.java  |    9 +-
 .../MvccEntitySerializationStrategyV2Impl.java  |    8 +-
 .../MvccEntitySerializationStrategyV3Impl.java  |  551 ++++
 .../MvccLogEntrySerializationProxyImpl.java     |  163 +
 .../MvccLogEntrySerializationStrategyImpl.java  |  157 +-
 ...MvccLogEntrySerializationStrategyV1Impl.java |  118 +
 ...MvccLogEntrySerializationStrategyV2Impl.java |  106 +
 .../serialization/impl/SerializationModule.java |  170 +-
 .../serialization/impl/TypeField.java           |   43 +
 .../serialization/impl/UniqueFieldEntry.java    |   60 +
 .../impl/UniqueFieldEntrySerializer.java        |  138 +
 .../impl/UniqueFieldRowKeySerializer.java       |  122 +
 .../impl/UniqueTypeFieldRowKeySerializer.java   |   60 +
 .../serialization/impl/UniqueValueImpl.java     |    5 +-
 .../UniqueValueSerializationStrategyImpl.java   |  322 +-
 ...iqueValueSerializationStrategyProxyImpl.java |  179 ++
 .../UniqueValueSerializationStrategyV1Impl.java |  159 +
 .../UniqueValueSerializationStrategyV2Impl.java |  139 +
 .../impl/migration/CollectionMigration.java     |   53 +
 .../migration/CollectionMigrationPlugin.java    |   68 +
 .../impl/migration/EntityIdScope.java           |   79 +
 .../migration/MvccEntityDataMigrationImpl.java  |  270 ++
 .../serialization/impl/util/Inflector.java      |  370 +++
 .../impl/util/LegacyScopeUtils.java             |   51 +
 .../collection/util/EntityUtils.java            |   71 -
 .../collection/ApplicationContextImplTest.java  |   33 +
 .../collection/CollectionContextImplTest.java   |   53 -
 .../EntityCollectionManagerFactoryTest.java     |    9 +-
 .../collection/EntityCollectionManagerIT.java   |  319 +-
 .../EntityCollectionManagerStressTest.java      |   14 +-
 .../EntityCollectionManagerSyncIT.java          |  193 --
 .../collection/guice/TestCollectionModule.java  |   22 +-
 .../impl/EntityVersionCleanupTaskTest.java      |  808 -----
 .../impl/EntityVersionCreatedTaskTest.java      |  244 --
 .../mvcc/stage/AbstractEntityStageTest.java     |    6 +-
 .../mvcc/stage/AbstractIdStageTest.java         |    4 +-
 .../mvcc/stage/AbstractMvccEntityStageTest.java |    6 +-
 .../mvcc/stage/TestEntityGenerator.java         |    2 +-
 .../mvcc/stage/delete/MarkCommitTest.java       |   14 +-
 .../mvcc/stage/delete/MarkStartTest.java        |    6 +-
 .../mvcc/stage/delete/UniqueCleanupTest.java    |  712 +++++
 .../mvcc/stage/delete/VersionCompactTest.java   |  238 ++
 .../mvcc/stage/write/FieldSerializerTest.java   |   52 -
 .../write/UniqueFieldRowKeySerializerTest.java  |   52 +
 ...niqueValueSerializationStrategyImplTest.java |  185 --
 .../mvcc/stage/write/WriteCommitTest.java       |   12 +-
 .../stage/write/WriteOptimisticVerifyTest.java  |   35 +-
 .../mvcc/stage/write/WriteStartTest.java        |   26 +-
 .../mvcc/stage/write/WriteUniqueVerifyIT.java   |   34 +-
 .../mvcc/stage/write/WriteUniqueVerifyTest.java |   13 +-
 .../persistence/collection/rx/ParallelTest.java |   10 +-
 .../serialization/EntityRepairImplTest.java     |  147 -
 .../impl/LogEntryIteratorTest.java              |  131 -
 .../impl/MinMaxLogEntryIteratorTest.java        |  131 +
 ...MvccEntitySerializationStrategyImplTest.java |  167 +-
 ...cEntitySerializationStrategyProxyV1Test.java |   85 -
 ...ntitySerializationStrategyProxyV1_3Test.java |   81 +
 ...cEntitySerializationStrategyProxyV2Test.java |   83 -
 ...ntitySerializationStrategyProxyV2_3Test.java |   82 +
 ...ccEntitySerializationStrategyV1ImplTest.java |   78 +-
 ...ccEntitySerializationStrategyV2ImplTest.java |   73 +-
 .../MvccEntitySerializationStrategyV2Test.java  |   27 +-
 ...ccEntitySerializationStrategyV3ImplTest.java |   70 +
 .../impl/MvccLESSTransientTest.java             |   27 +-
 ...ccLogEntrySerializationStrategyImplTest.java |  235 +-
 ...EntrySerializationStrategyProxyImplTest.java |   90 +
 ...LogEntrySerializationStrategyV1ImplTest.java |   55 +
 ...LogEntrySerializationStrategyV2ImplTest.java |   53 +
 .../impl/ScopedRowKeySerializerTest.java        |    2 +-
 .../impl/SerializationComparison.java           |    4 +-
 .../impl/SettingsValidationTest.java            |    1 -
 .../impl/UniqueFieldEntrySerializerTest.java    |  108 +
 ...niqueValueSerializationStrategyImplTest.java |  344 ++
 ...ValueSerializationStrategyProxyImplTest.java |  100 +
 ...queValueSerializationStrategyV1ImplTest.java |   57 +
 ...queValueSerializationStrategyV2ImplTest.java |   58 +
 ...ctMvccEntityDataMigrationV1ToV3ImplTest.java |  214 ++
 .../MvccEntityDataMigrationV1ToV3ImplTest.java  |   99 +
 .../MvccEntityDataMigrationV2ToV3ImplTest.java  |   99 +
 .../collection/util/EntityHelper.java           |    1 -
 .../collection/util/InvalidEntityGenerator.java |    1 +
 .../collection/util/LogEntryMock.java           |  116 +-
 .../collection/util/UniqueValueEntryMock.java   |  150 +
 .../collection/util/VersionGenerator.java       |   55 +
 .../src/test/resources/log4j.properties         |    1 +
 stack/corepersistence/common/pom.xml            |   21 +-
 .../usergrid/persistence/core/CPManager.java    |   28 +
 .../persistence/core/astyanax/CassandraFig.java |    3 -
 .../astyanax/DynamicCompositeParserImpl.java    |   81 +
 .../core/astyanax/FieldBufferBuilder.java       |   15 +
 .../core/astyanax/FieldBufferParser.java        |   13 +
 .../astyanax/MultiKeyColumnNameIterator.java    |    4 +-
 .../core/astyanax/MultiRowColumnIterator.java   |   12 +-
 .../core/executor/TaskExecutorFactory.java      |   95 +
 .../persistence/core/future/BetterFuture.java   |   68 -
 .../core/future/FutureObservable.java           |   44 +
 .../persistence/core/guice/CommonModule.java    |   27 +-
 .../persistence/core/guice/CurrentImpl.java     |   42 -
 .../persistence/core/guice/PreviousImpl.java    |   42 -
 .../persistence/core/guice/ProxyImpl.java       |   42 -
 .../core/hystrix/HystrixCassandra.java          |   94 -
 .../core/metrics/MetricsFactory.java            |    2 +-
 .../core/metrics/MetricsFactoryImpl.java        |   44 +-
 .../core/metrics/ObservableTimer.java           |   72 +
 .../migration/data/AbstractMigrationPlugin.java |  128 +
 .../core/migration/data/DataMigration.java      |   97 +-
 .../migration/data/DataMigrationManager.java    |   18 +-
 .../data/DataMigrationManagerImpl.java          |  237 +-
 .../migration/data/MigrationDataProvider.java   |   43 +
 .../core/migration/data/MigrationInfoCache.java |   52 +
 .../migration/data/MigrationInfoCacheImpl.java  |   84 +
 .../data/MigrationInfoSerialization.java        |   28 +-
 .../data/MigrationInfoSerializationImpl.java    |   67 +-
 .../core/migration/data/MigrationPlugin.java    |   56 +
 .../migration/data/MigrationRelationship.java   |  117 +
 .../core/migration/data/PluginPhase.java        |   42 +
 .../core/migration/data/ProgressObserver.java   |   63 +
 .../core/migration/data/VersionedData.java      |   38 +
 .../migration/data/VersionedMigrationSet.java   |  164 +
 .../core/migration/schema/Migration.java        |    2 +-
 .../persistence/core/rx/ObservableIterator.java |    2 +
 .../persistence/core/rx/OrderedMerge.java       |    1 -
 .../persistence/core/rx/RxSchedulerFig.java     |   60 +
 .../persistence/core/rx/RxTaskScheduler.java    |   38 +
 .../core/rx/RxTaskSchedulerImpl.java            |  131 +
 .../core/scope/ApplicationScope.java            |    9 +-
 .../core/scope/ApplicationScopeImpl.java        |   24 +-
 .../core/task/NamedTaskExecutorImpl.java        |  286 --
 .../usergrid/persistence/core/task/Task.java    |   48 -
 .../persistence/core/task/TaskExecutor.java     |   41 -
 .../persistence/core/util/StringUtils.java      |   34 +
 .../MultiKeyColumnNameIteratorTest.java         |  187 +-
 .../astyanax/MultiRowColumnIteratorTest.java    |   50 +-
 .../persistence/core/astyanax/TestUtils.java    |    2 +-
 .../persistence/core/aws/NoAWSCredsRule.java    |   98 +
 .../core/guice/DataMigrationResetRule.java      |   88 +
 .../core/guice/MaxMigrationModule.java          |   39 -
 .../core/guice/MaxMigrationVersion.java         |   40 -
 .../core/guice/MigrationManagerRule.java        |    7 +
 .../core/guice/TestCommonModule.java            |    1 +
 .../persistence/core/guice/TestModule.java      |    5 +-
 .../data/DataMigrationManagerImplTest.java      |  350 ++-
 .../data/MigrationInfoSerializationTest.java    |   32 +-
 .../data/TestMigrationDataProvider.java         |   61 +
 .../migration/data/TestProgressObserver.java    |   89 +
 .../data/VersionedMigrationSetTest.java         |  194 ++
 .../core/task/NamedTaskExecutorImplTest.java    |  271 --
 .../persistence/core/util/IdGenerator.java      |   51 +
 .../apache/usergrid/persistence/graph/Edge.java |    4 +
 .../usergrid/persistence/graph/GraphFig.java    |   26 +-
 .../persistence/graph/GraphManager.java         |   36 +-
 .../persistence/graph/GraphManagerFactory.java  |    4 +-
 .../usergrid/persistence/graph/MarkedEdge.java  |    8 +-
 .../persistence/graph/SearchByEdge.java         |    6 +
 .../persistence/graph/SearchByEdgeType.java     |    8 +-
 .../persistence/graph/guice/GraphModule.java    |  115 +-
 .../graph/impl/GraphManagerImpl.java            |  652 ++--
 .../persistence/graph/impl/SimpleEdge.java      |   16 +-
 .../graph/impl/SimpleMarkedEdge.java            |    3 +
 .../graph/impl/SimpleSearchByEdge.java          |   37 +-
 .../graph/impl/SimpleSearchByEdgeType.java      |   51 +-
 .../graph/impl/SimpleSearchByIdType.java        |   12 +-
 .../graph/impl/stage/EdgeDeleteListener.java    |    2 +-
 .../impl/stage/EdgeDeleteListenerImpl.java      |   31 +-
 .../graph/impl/stage/EdgeDeleteRepairImpl.java  |   12 +-
 .../graph/impl/stage/EdgeMetaRepair.java        |    6 +-
 .../graph/impl/stage/EdgeMetaRepairImpl.java    |  195 +-
 .../graph/impl/stage/NodeDeleteListener.java    |    2 +-
 .../impl/stage/NodeDeleteListenerImpl.java      |   26 +-
 .../EdgeMetadataSerialization.java              |    3 +-
 .../graph/serialization/EdgesObservable.java    |   71 +
 .../graph/serialization/TargetIdObservable.java |   38 +
 .../EdgeMetadataSerializationProxyImpl.java     |  161 +-
 .../impl/EdgeMetadataSerializationV1Impl.java   |    6 +
 .../impl/EdgeMetadataSerializationV2Impl.java   |    6 +
 .../serialization/impl/EdgesObservableImpl.java |  129 +
 .../serialization/impl/GraphDataVersions.java   |   43 +
 .../impl/GraphManagerFactoryImpl.java           |   95 +
 .../impl/NodeSerializationImpl.java             |   36 +-
 .../impl/TargetIdObservableImpl.java            |   72 +
 .../impl/migration/EdgeDataMigrationImpl.java   |  136 +
 .../impl/migration/GraphMigration.java          |   53 +
 .../impl/migration/GraphMigrationPlugin.java    |   69 +
 .../serialization/impl/migration/GraphNode.java |   39 +
 .../impl/shard/DirectedEdgeMeta.java            |    9 +-
 .../shard/count/NodeShardApproximationImpl.java |   13 +-
 .../NodeShardCounterSerializationImpl.java      |   25 +-
 .../shard/impl/NodeShardAllocationImpl.java     |   16 +-
 .../shard/impl/ShardGroupCompactionImpl.java    |  154 +-
 .../graph/CommittedGraphManagerIT.java          |  135 -
 .../persistence/graph/GraphManagerIT.java       |  724 ++++-
 .../persistence/graph/GraphManagerLoadTest.java |   19 +-
 .../graph/GraphManagerShardConsistencyIT.java   |   15 +-
 .../graph/GraphManagerShardingIT.java           |   13 +-
 .../graph/GraphManagerStressTest.java           |   19 +-
 .../usergrid/persistence/graph/SimpleTest.java  |   12 +-
 .../graph/StorageGraphManagerIT.java            |  240 --
 .../graph/guice/TestGraphModule.java            |   27 +-
 .../graph/impl/EdgeDeleteListenerTest.java      |   12 +-
 .../graph/impl/NodeDeleteListenerTest.java      |   10 +-
 .../graph/impl/stage/EdgeDeleteRepairTest.java  |   13 +-
 .../graph/impl/stage/EdgeMetaRepairTest.java    |   30 +-
 .../EdgeMetaDataSerializationProxyV1Test.java   |   15 +-
 .../EdgeMetaDataSerializationProxyV2Test.java   |   23 +-
 .../EdgeMetaDataSerializationV1Test.java        |    7 +-
 .../EdgeMetaDataSerializationV2Test.java        |    7 +-
 .../EdgeMetadataSerializationTest.java          |   39 +-
 .../EdgeSerializationChopTest.java              |    7 +-
 .../serialization/EdgeSerializationTest.java    |   21 +-
 .../serialization/NodeSerializationTest.java    |   15 +-
 .../migration/EdgeDataMigrationImplTest.java    |  177 ++
 .../impl/shard/EdgeShardSerializationTest.java  |    7 +-
 .../impl/shard/NodeShardAllocationTest.java     |   27 +-
 .../impl/shard/NodeShardCacheTest.java          |    7 +-
 .../impl/shard/ShardGroupCompactionTest.java    |   11 +-
 .../shard/count/NodeShardApproximationTest.java |    9 +-
 .../NodeShardCounterSerializationTest.java      |    6 +-
 .../shard/impl/ShardEntryGroupIteratorTest.java |   15 +-
 ...rceDirectedEdgeDescendingComparatorTest.java |   23 +-
 ...getDirectedEdgeDescendingComparatorTest.java |   23 +-
 .../graph/test/util/EdgeTestUtils.java          |   63 +-
 .../usergrid/persistence/map/MapManager.java    |   25 +-
 .../persistence/map/guice/MapModule.java        |    8 +-
 .../persistence/map/guice/TestMapModule.java    |    3 +-
 stack/corepersistence/model/pom.xml             |    1 -
 .../persistence/model/entity/Entity.java        |   23 +-
 .../persistence/model/entity/EntityMap.java     |   80 +
 .../model/entity/EntityToMapConverter.java      |  160 +
 .../usergrid/persistence/model/entity/Id.java   |    3 +
 .../model/entity/MapToEntityConverter.java      |  203 ++
 .../persistence/model/entity/SimpleId.java      |   36 +-
 .../persistence/model/field/AbstractField.java  |    8 +
 .../persistence/model/field/ListField.java      |    8 +-
 .../persistence/model/field/StringField.java    |   20 +
 .../persistence/model/util/EntityUtils.java     |   72 +
 stack/corepersistence/pom.xml                   |   38 +-
 stack/corepersistence/queryindex/pom.xml        |   63 +-
 .../index/query/tree/CpQueryFilter.g            |   20 +-
 .../persistence/index/AliasedEntityIndex.java   |   13 +-
 .../index/ApplicationEntityIndex.java           |   53 +
 .../persistence/index/CandidateResult.java      |   84 +
 .../persistence/index/CandidateResults.java     |  103 +
 .../usergrid/persistence/index/EntityIndex.java |   75 +-
 .../persistence/index/EntityIndexBatch.java     |   28 +-
 .../persistence/index/EntityIndexFactory.java   |   11 +-
 .../persistence/index/IndexBatchBuffer.java     |   36 -
 .../persistence/index/IndexBufferConsumer.java  |   37 -
 .../persistence/index/IndexBufferProducer.java  |   37 -
 .../usergrid/persistence/index/IndexEdge.java   |   36 +
 .../usergrid/persistence/index/IndexFig.java    |  129 +-
 .../persistence/index/IndexIdentifier.java      |   92 -
 .../index/IndexOperationMessage.java            |  138 -
 .../persistence/index/IndexRefreshCommand.java  |   50 +
 .../usergrid/persistence/index/IndexScope.java  |   38 -
 .../usergrid/persistence/index/SearchEdge.java  |   61 +
 .../usergrid/persistence/index/SearchType.java  |   51 +
 .../usergrid/persistence/index/SearchTypes.java |   46 +-
 .../persistence/index/SelectFieldMapping.java   |   58 +
 .../persistence/index/guice/IndexModule.java    |   44 +-
 .../persistence/index/guice/QueueProvider.java  |  116 -
 .../persistence/index/impl/BatchOperation.java  |   41 +
 .../persistence/index/impl/BatchRequest.java    |   41 -
 .../persistence/index/impl/BufferQueue.java     |   68 -
 .../index/impl/BufferQueueInMemoryImpl.java     |  116 -
 .../index/impl/BufferQueueSQSImpl.java          |  307 --
 .../index/impl/DeIndexOperation.java            |  104 +
 .../persistence/index/impl/DeIndexRequest.java  |  115 -
 .../persistence/index/impl/EntityField.java     |  148 +
 .../index/impl/EntityMappingParser.java         |  247 ++
 .../index/impl/EntityToMapConverter.java        |  108 +
 .../impl/EsApplicationEntityIndexImpl.java      |  259 ++
 .../index/impl/EsEntityIndexBatchImpl.java      |  292 +-
 .../index/impl/EsEntityIndexFactoryImpl.java    |   44 +-
 .../index/impl/EsEntityIndexImpl.java           |  604 +---
 .../index/impl/EsIndexBufferConsumerImpl.java   |  347 +--
 .../index/impl/EsIndexBufferProducerImpl.java   |   65 -
 .../persistence/index/impl/EsIndexCache.java    |  142 -
 .../index/impl/EsIndexCacheImpl.java            |  141 +
 .../persistence/index/impl/EsProvider.java      |  129 +-
 .../persistence/index/impl/EsQueryVistor.java   |  589 ++--
 .../persistence/index/impl/FieldParser.java     |   45 +
 .../index/impl/FlushBufferQueue.java            |   23 +
 .../persistence/index/impl/GeoSortFields.java   |   95 +
 .../persistence/index/impl/IndexAlias.java      |   42 +
 .../index/impl/IndexBufferConsumer.java         |   38 +
 .../persistence/index/impl/IndexCache.java      |   43 +
 .../persistence/index/impl/IndexEdgeImpl.java   |   84 +
 .../persistence/index/impl/IndexIdentifier.java |   46 +
 .../index/impl/IndexIdentifierImpl.java         |   67 +
 .../persistence/index/impl/IndexOperation.java  |  107 +
 .../index/impl/IndexOperationMessage.java       |  121 +
 .../index/impl/IndexRefreshCommandImpl.java     |  205 ++
 .../persistence/index/impl/IndexRequest.java    |  125 -
 .../persistence/index/impl/IndexScopeImpl.java  |   88 -
 .../persistence/index/impl/IndexingUtils.java   |  265 +-
 .../index/impl/NoOpFilterBuilder.java           |   45 +
 .../index/impl/NoOpQueryBuilder.java            |   45 +
 .../persistence/index/impl/SearchEdgeImpl.java  |  120 +
 .../impl/SearchRequestBuilderStrategy.java      |  290 ++
 .../persistence/index/impl/SortBuilder.java     |   44 +
 .../index/migration/EsIndexMigrationPlugin.java |   46 +
 .../index/migration/IndexDataVersions.java      |   39 +
 .../index/migration/IndexMigration.java         |   35 +
 .../index/migration/LegacyIndexIdentifier.java  |   78 +
 .../index/query/CandidateResult.java            |   74 -
 .../index/query/CandidateResults.java           |   90 -
 .../persistence/index/query/EntityResults.java  |  108 -
 .../persistence/index/query/ParsedQuery.java    |  205 ++
 .../index/query/ParsedQueryBuilder.java         |  108 +
 .../usergrid/persistence/index/query/Query.java | 1428 ---------
 .../persistence/index/query/Results.java        |  148 -
 .../persistence/index/query/SortPredicate.java  |  144 +
 .../index/query/tree/QueryVisitor.java          |   55 +-
 .../index/utils/IndexValidationUtils.java       |   24 +-
 .../persistence/index/utils/ListUtils.java      |    1 +
 .../persistence/index/utils/StringUtils.java    |   62 -
 .../persistence/index/usergrid-mappings.json    |   99 +
 .../persistence/index/guice/IndexTestFig.java   |   62 +
 .../index/guice/TestIndexModule.java            |   42 +-
 .../index/impl/BufferQueueSQSImplTest.java      |  169 -
 .../index/impl/CorePerformanceIT.java           |  339 --
 .../index/impl/ElasticSearchRule.java           |   58 +
 .../impl/EntityConnectionIndexImplTest.java     |  306 --
 .../index/impl/EntityIndexMapUtils.java         |   57 +-
 .../persistence/index/impl/EntityIndexTest.java | 1096 +++++--
 .../index/impl/EntityToMapConverterTest.java    |  653 ++++
 .../persistence/index/impl/GeoPagingTest.java   |  163 +
 .../index/impl/IndexLoadTestsIT.java            |  393 +++
 .../persistence/query/tree/GrammarTreeTest.java |  157 +-
 .../src/test/resources/dynamic-test.properties  |    2 +-
 .../src/test/resources/log4j.properties         |   10 +-
 .../src/test/resources/usergrid-UNIT.properties |    7 +
 .../usergrid/persistence/queue/QueueFig.java    |    8 +
 .../persistence/queue/NoAWSCredsRule.java       |   98 -
 .../persistence/queue/QueueManagerTest.java     |    3 +-
 .../queue/guice/TestQueueModule.java            |    3 +-
 stack/java-sdk-old/pom.xml                      |  102 -
 .../scenarios/ConnectionScenarios.scala         |    2 +-
 .../usergrid/mongo/protocol/OpDelete.java       |    4 +-
 .../apache/usergrid/mongo/protocol/OpQuery.java |    6 +-
 .../usergrid/mongo/protocol/OpUpdate.java       |    4 +-
 .../apache/usergrid/mongo/BasicMongoTest.java   |    8 +-
 .../apache/usergrid/mongo/MongoQueryTest.java   |   18 +-
 stack/pom.xml                                   |   29 +-
 stack/rest/pom.xml                              |   17 +-
 .../usergrid/rest/AbstractContextResource.java  |  102 +-
 .../org/apache/usergrid/rest/ApiResponse.java   |   40 +-
 .../org/apache/usergrid/rest/IndexResource.java |   12 +-
 .../apache/usergrid/rest/MigrateResource.java   |  122 +-
 .../org/apache/usergrid/rest/RootResource.java  |   19 +-
 .../rest/applications/ApplicationResource.java  |   38 +-
 .../rest/applications/ServiceResource.java      |   43 +-
 .../notifiers/NotifiersResource.java            |   11 +-
 .../rest/applications/users/UsersResource.java  |    4 +-
 .../exceptions/AbstractExceptionMapper.java     |   11 +-
 .../exceptions/ConflictExceptionMapper.java     |   35 +
 .../exceptions/NotFoundExceptionMapper.java     |   35 +
 .../rest/exceptions/UncaughtException.java      |   36 +
 .../rest/management/ManagementResource.java     |   59 +-
 .../organizations/OrganizationResource.java     |   28 +-
 .../organizations/OrganizationsResource.java    |   23 +-
 .../applications/ApplicationResource.java       |   61 +-
 .../applications/ApplicationsResource.java      |   34 +-
 .../imports/FileIncludesResource.java           |    9 -
 .../applications/imports/ImportsResource.java   |   83 +-
 .../organizations/OrganizationResource.java     |   32 +-
 .../OAuth2AccessTokenSecurityFilter.java        |    2 +-
 .../rest/test/RefreshIndexResource.java         |   25 +-
 .../java/org/apache/usergrid/rest/BasicIT.java  |  302 +-
 .../apache/usergrid/rest/IndexResourceIT.java   |    1 +
 .../apache/usergrid/rest/NotificationsIT.java   |   93 +-
 .../apache/usergrid/rest/SystemResourceIT.java  |   10 +-
 .../rest/applications/ApplicationCreateIT.java  |  135 +
 .../rest/applications/ApplicationDeleteIT.java  |  389 +++
 .../applications/ApplicationDeleteTest.java     |   54 -
 .../applications/ApplicationResourceIT.java     |  100 +-
 .../collection/CollectionsResourceIT.java       |   19 +-
 .../collection/paging/PagingResourceIT.java     |   17 +-
 .../collection/users/OwnershipResourceIT.java   |    4 +-
 .../collection/users/PermissionsResourceIT.java |   15 -
 .../collection/users/RetrieveUsersTest.java     |    4 +-
 .../collection/users/UserResourceIT.java        |   16 +-
 .../events/ApplicationRequestCounterIT.java     |    2 +-
 .../applications/queries/BasicGeoTests.java     |   21 +-
 .../applications/queries/GeoPagingTest.java     |   58 +-
 .../applications/queries/MatrixQueryTests.java  |  298 +-
 .../rest/applications/queries/OrderByTest.java  |    2 +-
 .../queues/AbstractQueueResourceIT.java         |  484 ---
 .../queues/QueueResourceLong1IT.java            |  149 -
 .../queues/QueueResourceLong2IT.java            |   99 -
 .../queues/QueueResourceLong3IT.java            |  201 --
 .../queues/QueueResourceShortIT.java            |  432 ---
 .../rest/filters/ContentTypeResourceIT.java     |   55 +-
 .../usergrid/rest/management/AccessTokenIT.java |  418 +--
 .../usergrid/rest/management/AdminUsersIT.java  |   64 +-
 .../rest/management/ExportResourceIT.java       |  674 ++--
 .../rest/management/ImportResourceIT.java       |  179 +-
 .../rest/management/ManagementResourceIT.java   |  151 +-
 .../rest/management/OrganizationsIT.java        |   82 +-
 .../organizations/AdminEmailEncodingIT.java     |    3 +-
 .../test/resource2point0/AbstractRestIT.java    |    4 +-
 .../rest/test/resource2point0/ClientSetup.java  |   30 +-
 .../rest/test/resource2point0/README.md         |  111 +
 .../rest/test/resource2point0/RestClient.java   |    1 +
 .../endpoints/ApplicationsResource.java         |   34 +-
 .../endpoints/CollectionEndpoint.java           |   13 +
 .../endpoints/NamedResource.java                |  158 +-
 .../endpoints/OrganizationResource.java         |    6 +-
 .../resource2point0/endpoints/RootResource.java |    1 +
 .../endpoints/SetupResource.java                |    6 +
 .../endpoints/mgmt/ApplicationResource.java     |   54 +-
 .../endpoints/mgmt/ApplicationsResource.java    |   58 +
 .../endpoints/mgmt/ManagementResource.java      |    4 +
 .../endpoints/mgmt/ManagementResponse.java      |   72 +
 .../endpoints/mgmt/MeResource.java              |   32 +
 .../mgmt/OrganizationApplicationResponse.java   |   60 +
 .../endpoints/mgmt/OrganizationResource.java    |    5 +-
 .../endpoints/mgmt/PasswordResource.java        |   16 -
 .../endpoints/mgmt/RevokeTokenResource.java     |   32 +
 .../endpoints/mgmt/RevokeTokensResource.java    |   33 +
 .../endpoints/mgmt/TokenResource.java           |   25 +-
 .../endpoints/mgmt/UserResource.java            |    8 +
 .../endpoints/mgmt/UsersResource.java           |   15 -
 stack/rest/src/test/resources/log4j.properties  |   10 +-
 .../resources/testImportCorrect.testCol.1.json  |   18 -
 ...testImportInvalidJson.testApplication.3.json |  153 -
 .../testimport-bad-json-testapp.3.json          |  153 +
 .../src/test/resources/testimport-bad-json.json |   67 +
 .../resources/testimport-correct-testcol.1.json |   18 +
 .../test/resources/testimport-test-app.2.json   |   56 +
 .../resources/usergrid-custom-test.properties   |    2 +
 stack/services/pom.xml                          |   51 +-
 .../usergrid/management/ApplicationInfo.java    |    4 +
 .../usergrid/management/ManagementService.java  |   10 +-
 .../cassandra/ApplicationCreatorImpl.java       |   12 +-
 .../cassandra/ManagementServiceImpl.java        |  235 +-
 .../management/export/ExportServiceImpl.java    |    6 +-
 .../management/importer/FileImportJob.java      |    8 +-
 .../management/importer/FileImportTracker.java  |    6 +-
 .../usergrid/management/importer/ImportJob.java |    4 +-
 .../management/importer/ImportServiceImpl.java  |   82 +-
 .../usergrid/security/AuthPrincipalType.java    |    3 +-
 .../security/providers/AbstractProvider.java    |    1 +
 .../security/providers/FacebookProvider.java    |    6 +-
 .../security/providers/FoursquareProvider.java  |    6 +-
 .../shiro/PrincipalCredentialsToken.java        |   20 +-
 .../apache/usergrid/security/shiro/Realm.java   |    2 +-
 .../services/AbstractCollectionService.java     |   17 +-
 .../services/AbstractConnectionsService.java    |    4 +-
 .../AbstractPathBasedColllectionService.java    |    2 +-
 .../usergrid/services/AbstractService.java      |    2 +-
 .../usergrid/services/ServiceContext.java       |    2 +-
 .../services/ServiceManagerFactory.java         |    4 -
 .../usergrid/services/ServiceParameter.java     |    3 +-
 .../usergrid/services/ServiceRequest.java       |    2 +-
 .../usergrid/services/ServiceResults.java       |   38 +-
 .../applications/ApplicationsService.java       |    2 +-
 .../services/devices/DevicesService.java        |    2 +-
 .../usergrid/services/groups/GroupsService.java |    2 +-
 .../groups/activities/ActivitiesService.java    |    2 +-
 .../users/activities/ActivitiesService.java     |    4 +-
 .../notifications/InactiveDeviceManager.java    |    8 +-
 .../notifications/NotificationsService.java     |    4 +-
 .../apns/FailedConnectionListener.java          |   31 +-
 .../impl/ApplicationQueueManagerImpl.java       |  197 +-
 .../services/notifications/wns/WNSAdapter.java  |   60 +-
 .../usergrid/services/roles/RolesService.java   |   10 +-
 .../usergrid/services/users/UsersService.java   |    2 +-
 .../users/activities/ActivitiesService.java     |    4 +-
 .../org/apache/usergrid/ServiceApplication.java |   18 +-
 .../org/apache/usergrid/ServiceITSetup.java     |    5 +
 .../org/apache/usergrid/ServiceITSetupImpl.java |   43 +-
 .../migration/AppInfoMigrationPluginTest.java   |  231 ++
 .../apache/usergrid/management/EmailFlowIT.java |   18 +-
 .../usergrid/management/OrganizationIT.java     |   16 +-
 .../org/apache/usergrid/management/RoleIT.java  |    4 +-
 .../cassandra/ApplicationCreatorIT.java         |   14 +-
 .../cassandra/ManagementServiceIT.java          |   35 +-
 .../management/export/ExportServiceIT.java      |   20 +-
 .../importer/FileImportTrackerTest.java         |   12 +-
 .../management/importer/ImportCollectionIT.java |   20 +-
 .../importer/ImportConnectionsTest.java         |    9 +-
 .../management/importer/ImportServiceIT.java    |    2 +-
 .../security/tokens/TokenServiceIT.java         |    2 -
 .../usergrid/services/ActivitiesServiceIT.java  |    2 +-
 .../usergrid/services/CollectionServiceIT.java  |    2 +
 .../usergrid/services/ConnectionsServiceIT.java |   10 +-
 .../usergrid/services/GroupServiceIT.java       |    6 +-
 .../usergrid/services/RolesServiceIT.java       |    4 +-
 .../usergrid/services/ServiceFactoryIT.java     |    8 +-
 .../usergrid/services/ServiceInvocationIT.java  |    2 +-
 .../usergrid/services/ServiceRequestIT.java     |    9 +-
 .../usergrid/services/UsersServiceIT.java       |    2 +-
 .../AbstractServiceNotificationIT.java          |    4 +-
 .../notifications/NotifiersServiceIT.java       |   19 +-
 .../apns/NotificationsServiceIT.java            |   66 +-
 .../gcm/NotificationsServiceIT.java             |    4 +-
 .../src/test/resources/log4j.properties         |    6 +-
 .../resources/usergrid-custom-test.properties   |    5 +
 .../usergrid/cassandra/SpringResource.java      |   13 +-
 .../setup/ConcurrentProcessSingleton.java       |   49 +-
 .../org/apache/usergrid/tools/AppAudit.java     |    3 +-
 .../org/apache/usergrid/tools/CredExport.java   |    2 +-
 .../org/apache/usergrid/tools/DupOrgRepair.java |    1 -
 .../java/org/apache/usergrid/tools/Import.java  |   14 +-
 .../usergrid/tools/UniqueIndexCleanup.java      |    6 +-
 876 files changed, 37842 insertions(+), 44603 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ed8ee9a9/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
----------------------------------------------------------------------
diff --cc stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
index 93e7f84,590dabf..7a9e262
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/ApiResponse.java
@@@ -23,18 -23,8 +23,20 @@@ import com.fasterxml.jackson.annotation
  import com.fasterxml.jackson.annotation.JsonPropertyOrder;
  import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
 +import java.util.ArrayList;
 +import java.util.Arrays;
 +import java.util.Collection;
 +import java.util.LinkedHashMap;
 +import java.util.List;
 +import java.util.Map;
 +import java.util.TreeMap;
 +import java.util.UUID;
 +
 +import javax.xml.bind.annotation.XmlAnyElement;
 +import javax.xml.bind.annotation.XmlRootElement;
 +import org.springframework.beans.factory.annotation.Autowired;
+ import org.apache.commons.lang.ClassUtils;
+ import org.apache.commons.lang.StringUtils;
  import org.apache.usergrid.persistence.AggregateCounterSet;
  import org.apache.usergrid.persistence.Entity;
  import org.apache.usergrid.persistence.Results;