You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/03/19 17:54:07 UTC

incubator-usergrid git commit: Removed collections from query, it shouldn't care about this module.

Repository: incubator-usergrid
Updated Branches:
  refs/heads/USERGRID-486 12c2a1a06 -> 72ec19d56


Removed collections from query, it shouldn't care about this module.


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

Branch: refs/heads/USERGRID-486
Commit: 72ec19d563c4e2a9f9e3842038162aeb8f038222
Parents: 12c2a1a
Author: Todd Nine <tn...@apigee.com>
Authored: Thu Mar 19 10:54:05 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Thu Mar 19 10:54:05 2015 -0600

----------------------------------------------------------------------
 stack/corepersistence/collection/pom.xml        |  14 +-
 .../impl/EntityVersionCleanupTask.java          |  13 +-
 .../mvcc/stage/write/WriteCommit.java           |   2 +-
 .../mvcc/stage/write/WriteUniqueVerify.java     |   8 +-
 .../MvccEntitySerializationStrategyImpl.java    |   3 +-
 .../MvccEntitySerializationStrategyV3Impl.java  |   3 +-
 .../UniqueValueSerializationStrategyImpl.java   |   8 -
 .../migration/MvccEntityDataMigrationImpl.java  |   2 +-
 .../collection/util/EntityUtils.java            |  72 -----
 .../mvcc/stage/AbstractEntityStageTest.java     |   2 +-
 .../mvcc/stage/AbstractMvccEntityStageTest.java |   2 +-
 .../mvcc/stage/TestEntityGenerator.java         |   2 +-
 ...MvccEntitySerializationStrategyImplTest.java |   4 +-
 ...ccEntitySerializationStrategyV1ImplTest.java |   4 +-
 ...ccEntitySerializationStrategyV2ImplTest.java |   2 +-
 .../impl/SerializationComparison.java           |   4 +-
 .../collection/util/InvalidEntityGenerator.java |   1 +
 stack/corepersistence/model/pom.xml             |   1 -
 .../persistence/model/util/EntityUtils.java     |  72 +++++
 stack/corepersistence/queryindex/pom.xml        |   6 -
 .../persistence/index/query/EntityResults.java  | 108 -------
 .../persistence/index/query/Results.java        | 148 ---------
 .../persistence/index/utils/ListUtils.java      |   6 +-
 .../index/guice/TestIndexModule.java            |   3 +-
 .../impl/EntityConnectionIndexImplTest.java     | 306 -------------------
 .../persistence/index/impl/EntityIndexTest.java |  32 +-
 26 files changed, 119 insertions(+), 709 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/pom.xml
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/pom.xml b/stack/corepersistence/collection/pom.xml
index 3a89a8e..a4e7219 100644
--- a/stack/corepersistence/collection/pom.xml
+++ b/stack/corepersistence/collection/pom.xml
@@ -24,10 +24,10 @@
         <artifactId>chop-maven-plugin</artifactId>
         <version>${chop.version}</version>
 
-        
+
         NOTE: you should be putting most of these variables into your settings.xml
         as an automatically activated profile.
-        
+
 
         <configuration>
           <accessKey>${aws.s3.key}</accessKey>
@@ -48,11 +48,11 @@
           <runnerKeyPairName>${runner.keypair.name}</runnerKeyPairName>
           <runnerCount>6</runnerCount>
           <securityGroupExceptions>
-            
+
             Add your own IP address as an exception to allow access
             but please do this in the settings.xml file .. essentially
             all parameters should be in the settings.xml file.
-            
+
             <param>${myip.address}/32:24981</param>
             <param>${myip.address}/32:22</param>
           </securityGroupExceptions>
@@ -81,13 +81,7 @@
 
 
 
-    <!-- lang utils for setting uuids etc -->
 
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <version>${commons.lang.version}</version>
-    </dependency>
 
     <!-- tests -->
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityVersionCleanupTask.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityVersionCleanupTask.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityVersionCleanupTask.java
index 55d135b..b245528 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityVersionCleanupTask.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityVersionCleanupTask.java
@@ -25,15 +25,10 @@ import java.util.UUID;
 
 import com.google.inject.Inject;
 import com.google.inject.assistedinject.Assisted;
-import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
+
 import org.apache.usergrid.persistence.collection.serialization.UniqueValue;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
-import org.apache.usergrid.persistence.collection.serialization.impl.UniqueValueImpl;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
-import org.apache.usergrid.persistence.core.guice.ProxyImpl;
-import org.apache.usergrid.persistence.model.entity.Entity;
-import org.apache.usergrid.persistence.model.field.Field;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,15 +37,11 @@ import org.apache.usergrid.persistence.collection.MvccLogEntry;
 import org.apache.usergrid.persistence.collection.event.EntityVersionDeleted;
 import org.apache.usergrid.persistence.collection.mvcc.MvccLogEntrySerializationStrategy;
 import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
-import org.apache.usergrid.persistence.collection.serialization.UniqueValue;
-import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
 import org.apache.usergrid.persistence.collection.serialization.impl.LogEntryIterator;
 import org.apache.usergrid.persistence.core.rx.ObservableIterator;
 import org.apache.usergrid.persistence.core.task.Task;
 import org.apache.usergrid.persistence.model.entity.Id;
 
-import com.google.inject.Inject;
-import com.google.inject.assistedinject.Assisted;
 import com.netflix.astyanax.Keyspace;
 import com.netflix.astyanax.MutationBatch;
 import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteCommit.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteCommit.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteCommit.java
index 8889b2f..65ba0b4 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteCommit.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteCommit.java
@@ -36,7 +36,7 @@ import org.apache.usergrid.persistence.collection.mvcc.stage.CollectionIoEvent;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValue;
 import org.apache.usergrid.persistence.collection.serialization.impl.UniqueValueImpl;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.guice.ProxyImpl;
 import org.apache.usergrid.persistence.core.util.ValidationUtils;
 import org.apache.usergrid.persistence.model.entity.Entity;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
index 5bdf3b9..548127c 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
@@ -19,22 +19,18 @@ package org.apache.usergrid.persistence.collection.mvcc.stage.write;
 
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import com.netflix.astyanax.model.ConsistencyLevel;
-import com.netflix.hystrix.Hystrix;
 import com.netflix.hystrix.HystrixCommand;
 import com.netflix.hystrix.HystrixCommandGroupKey;
 import com.netflix.hystrix.HystrixThreadPoolProperties;
-import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle;
 
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.astyanax.CassandraConfig;
-import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
index 5bc9f56..e1445e3 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 import java.util.UUID;
 
 import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
@@ -41,7 +40,7 @@ import org.apache.usergrid.persistence.collection.exception.CollectionRuntimeExc
 import org.apache.usergrid.persistence.collection.exception.DataCorruptionException;
 import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
 import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.astyanax.ColumnNameIterator;
 import org.apache.usergrid.persistence.core.astyanax.ColumnParser;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
index ace076b..a5046f6 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
@@ -24,7 +24,7 @@ import org.apache.usergrid.persistence.collection.exception.EntityTooLargeExcept
 import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
 import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
 import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.astyanax.ColumnParser;
 import org.apache.usergrid.persistence.core.astyanax.FieldBuffer;
@@ -55,7 +55,6 @@ import com.netflix.astyanax.model.Row;
 import com.netflix.astyanax.model.Rows;
 import com.netflix.astyanax.serializers.AbstractSerializer;
 import com.netflix.astyanax.serializers.BooleanSerializer;
-import com.netflix.astyanax.util.TimeUUIDUtils;
 
 import rx.Observable;
 import rx.Scheduler;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
index 108f2e8..c95650c 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/UniqueValueSerializationStrategyImpl.java
@@ -33,14 +33,10 @@ import org.slf4j.LoggerFactory;
 import org.apache.cassandra.db.marshal.BytesType;
 
 import org.apache.usergrid.persistence.collection.CollectionScope;
-import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.exception.DataCorruptionException;
-import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
 import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValue;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValueSet;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
 import org.apache.usergrid.persistence.core.astyanax.ColumnNameIterator;
 import org.apache.usergrid.persistence.core.astyanax.ColumnParser;
 import org.apache.usergrid.persistence.core.astyanax.ColumnTypes;
@@ -48,13 +44,10 @@ import org.apache.usergrid.persistence.core.astyanax.IdRowCompositeSerializer;
 import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamily;
 import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamilyDefinition;
 import org.apache.usergrid.persistence.core.astyanax.ScopedRowKey;
-import org.apache.usergrid.persistence.core.migration.schema.Migration;
 import org.apache.usergrid.persistence.core.util.ValidationUtils;
-import org.apache.usergrid.persistence.model.entity.Entity;
 import org.apache.usergrid.persistence.model.entity.Id;
 import org.apache.usergrid.persistence.model.field.Field;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.inject.Inject;
 import com.netflix.astyanax.ColumnListMutation;
@@ -64,7 +57,6 @@ import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
 import com.netflix.astyanax.model.Column;
 import com.netflix.astyanax.model.Row;
 import com.netflix.astyanax.query.RowQuery;
-import com.netflix.astyanax.serializers.AbstractSerializer;
 import com.netflix.astyanax.util.RangeBuilder;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/migration/MvccEntityDataMigrationImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/migration/MvccEntityDataMigrationImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/migration/MvccEntityDataMigrationImpl.java
index bd4eafc..f87b5fd 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/migration/MvccEntityDataMigrationImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/migration/MvccEntityDataMigrationImpl.java
@@ -38,7 +38,7 @@ import org.apache.usergrid.persistence.collection.serialization.UniqueValue;
 import org.apache.usergrid.persistence.collection.serialization.UniqueValueSerializationStrategy;
 import org.apache.usergrid.persistence.collection.serialization.impl.MvccEntitySerializationStrategyV3Impl;
 import org.apache.usergrid.persistence.collection.serialization.impl.UniqueValueImpl;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.migration.data.DataMigrationException;
 import org.apache.usergrid.persistence.core.migration.data.DataMigration;
 import org.apache.usergrid.persistence.core.migration.data.MigrationDataProvider;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/util/EntityUtils.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/util/EntityUtils.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/util/EntityUtils.java
deleted file mode 100644
index 20edb66..0000000
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/util/EntityUtils.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.apache.usergrid.persistence.collection.util;
-
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Collection;
-import java.util.UUID;
-import org.apache.usergrid.persistence.model.field.Field;
-
-import org.apache.commons.lang3.reflect.FieldUtils;
-
-import org.apache.usergrid.persistence.model.entity.Entity;
-import org.apache.usergrid.persistence.model.entity.Id;
-
-
-/**
- * @author tnine
- */
-public class EntityUtils {
-
-
-    private static final java.lang.reflect.Field VERSION = FieldUtils.getField( Entity.class, "version", true );
-
-    private static final java.lang.reflect.Field ID = FieldUtils.getField( Entity.class, "id", true );
-
-
-    /**
-     * Set the version into the entity
-     */
-    public static void setVersion( Entity entity, UUID version ) {
-
-        try {
-            FieldUtils.writeField( VERSION, entity, version, true );
-        }
-        catch ( IllegalAccessException e ) {
-            throw new RuntimeException( "Unable to set the field " + VERSION + " into the entity", e );
-        }
-    }
-
-
-    /**
-     * Set the id into the entity
-     */
-    public static void setId( Entity entity, Id id ) {
-        try {
-            FieldUtils.writeField( ID, entity, id, true );
-        }
-        catch ( IllegalAccessException e ) {
-            throw new RuntimeException( "Unable to set the field " + ID + " into the entity", e );
-        }
-    }
-
-
-    /**
-     * Get all unique fields on an entity
-     * @param entity
-     * @return
-     */
-    public static List<Field> getUniqueFields( Entity entity ) {
-        final Collection<Field> entityFields = entity.getFields();
-
-        //preallocate to max possible for more efficient runtime
-        final List<Field> possibleFields = new ArrayList<>( entityFields.size() );
-
-        for ( Field field : entity.getFields() ) {
-            if ( field.isUnique() ) {
-                possibleFields.add( field );
-            }
-        }
-        return possibleFields;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractEntityStageTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractEntityStageTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractEntityStageTest.java
index c79fcdb..2546790 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractEntityStageTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractEntityStageTest.java
@@ -25,7 +25,7 @@ import org.junit.experimental.theories.Theory;
 import org.junit.runner.RunWith;
 
 import org.apache.usergrid.persistence.collection.CollectionScope;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.collection.util.InvalidEntityGenerator;
 import org.apache.usergrid.persistence.collection.util.InvalidIdGenerator;
 import org.apache.usergrid.persistence.model.entity.Entity;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractMvccEntityStageTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractMvccEntityStageTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractMvccEntityStageTest.java
index 6c6ea0f..dff0a83 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractMvccEntityStageTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/AbstractMvccEntityStageTest.java
@@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.usergrid.persistence.collection.CollectionScope;
 import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.collection.util.InvalidEntityGenerator;
 import org.apache.usergrid.persistence.collection.util.InvalidIdGenerator;
 import org.apache.usergrid.persistence.collection.util.InvalidMvccEntityGenerator;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/TestEntityGenerator.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/TestEntityGenerator.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/TestEntityGenerator.java
index 4713f5a..7a415f0 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/TestEntityGenerator.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/TestEntityGenerator.java
@@ -21,7 +21,7 @@ package org.apache.usergrid.persistence.collection.mvcc.stage;
 import java.util.UUID;
 
 import org.apache.usergrid.persistence.collection.MvccEntity;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.model.entity.Entity;
 import org.apache.usergrid.persistence.model.entity.Id;
 import org.apache.usergrid.persistence.model.entity.SimpleId;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
index 3c89b31..07a4b1b 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
@@ -35,7 +35,7 @@ import org.apache.usergrid.persistence.collection.CollectionScope;
 import org.apache.usergrid.persistence.collection.MvccEntity;
 import org.apache.usergrid.persistence.collection.impl.CollectionScopeImpl;
 import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.guice.MigrationManagerRule;
 import org.apache.usergrid.persistence.model.entity.Entity;
@@ -55,8 +55,6 @@ import com.google.common.base.Optional;
 import com.google.inject.Inject;
 import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
 
-import junit.framework.Assert;
-
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertFalse;
 import static junit.framework.TestCase.assertNotNull;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV1ImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV1ImplTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV1ImplTest.java
index b0dba5d..ff8d743 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV1ImplTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV1ImplTest.java
@@ -31,7 +31,7 @@ import org.apache.usergrid.persistence.collection.guice.TestCollectionModule;
 import org.apache.usergrid.persistence.collection.impl.CollectionScopeImpl;
 import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
 import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.test.ITRunner;
 import org.apache.usergrid.persistence.core.test.UseModules;
 import org.apache.usergrid.persistence.model.entity.Entity;
@@ -49,8 +49,6 @@ import com.google.common.base.Optional;
 import com.google.inject.Inject;
 import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
 
-import net.jcip.annotations.NotThreadSafe;
-
 
 @RunWith( ITRunner.class )
 @UseModules( TestCollectionModule.class )

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV2ImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV2ImplTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV2ImplTest.java
index b91c453..c64940a 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV2ImplTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV2ImplTest.java
@@ -31,7 +31,7 @@ import org.apache.usergrid.persistence.collection.guice.TestCollectionModule;
 import org.apache.usergrid.persistence.collection.impl.CollectionScopeImpl;
 import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
 import org.apache.usergrid.persistence.collection.serialization.MvccEntitySerializationStrategy;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.core.test.ITRunner;
 import org.apache.usergrid.persistence.core.test.UseModules;
 import org.apache.usergrid.persistence.model.entity.Entity;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/SerializationComparison.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/SerializationComparison.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/SerializationComparison.java
index 4f19f28..6383e75 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/SerializationComparison.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/SerializationComparison.java
@@ -28,7 +28,7 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.model.entity.Entity;
 import org.apache.usergrid.persistence.model.entity.SimpleId;
 import org.apache.usergrid.persistence.model.field.BooleanField;
@@ -43,7 +43,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.smile.SmileFactory;
 
 /**
- * TODO We need to get both of these serialization methods working, and benchmark them for 
+ * TODO We need to get both of these serialization methods working, and benchmark them for
  * comparison Neither works out of the box for us without custom work.
  *
  * @author tnine

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/util/InvalidEntityGenerator.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/util/InvalidEntityGenerator.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/util/InvalidEntityGenerator.java
index 5b82ac8..9bba866 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/util/InvalidEntityGenerator.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/util/InvalidEntityGenerator.java
@@ -32,6 +32,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.usergrid.persistence.model.entity.Entity;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/model/pom.xml
----------------------------------------------------------------------
diff --git a/stack/corepersistence/model/pom.xml b/stack/corepersistence/model/pom.xml
index fb7419b..fe88256 100644
--- a/stack/corepersistence/model/pom.xml
+++ b/stack/corepersistence/model/pom.xml
@@ -39,7 +39,6 @@
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
             <version>${commons.lang.version}</version>
-            <scope>test</scope>
         </dependency>
 
       <!-- the core, which includes Streaming API, shared low-level abstractions (but NOT data-binding) -->

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/util/EntityUtils.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/util/EntityUtils.java b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/util/EntityUtils.java
new file mode 100644
index 0000000..929a563
--- /dev/null
+++ b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/util/EntityUtils.java
@@ -0,0 +1,72 @@
+package org.apache.usergrid.persistence.model.util;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collection;
+import java.util.UUID;
+import org.apache.usergrid.persistence.model.field.Field;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+
+import org.apache.usergrid.persistence.model.entity.Entity;
+import org.apache.usergrid.persistence.model.entity.Id;
+
+
+/**
+ * @author tnine
+ */
+public class EntityUtils {
+
+
+    private static final java.lang.reflect.Field VERSION = FieldUtils.getField( Entity.class, "version", true );
+
+    private static final java.lang.reflect.Field ID = FieldUtils.getField( Entity.class, "id", true );
+
+
+    /**
+     * Set the version into the entity
+     */
+    public static void setVersion( Entity entity, UUID version ) {
+
+        try {
+            FieldUtils.writeField( VERSION, entity, version, true );
+        }
+        catch ( IllegalAccessException e ) {
+            throw new RuntimeException( "Unable to set the field " + VERSION + " into the entity", e );
+        }
+    }
+
+
+    /**
+     * Set the id into the entity
+     */
+    public static void setId( Entity entity, Id id ) {
+        try {
+            FieldUtils.writeField( ID, entity, id, true );
+        }
+        catch ( IllegalAccessException e ) {
+            throw new RuntimeException( "Unable to set the field " + ID + " into the entity", e );
+        }
+    }
+
+
+    /**
+     * Get all unique fields on an entity
+     * @param entity
+     * @return
+     */
+    public static List<Field> getUniqueFields( Entity entity ) {
+        final Collection<Field> entityFields = entity.getFields();
+
+        //preallocate to max possible for more efficient runtime
+        final List<Field> possibleFields = new ArrayList<>( entityFields.size() );
+
+        for ( Field field : entity.getFields() ) {
+            if ( field.isUnique() ) {
+                possibleFields.add( field );
+            }
+        }
+        return possibleFields;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/pom.xml
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/pom.xml b/stack/corepersistence/queryindex/pom.xml
index 5f01ee7..2dc40ce 100644
--- a/stack/corepersistence/queryindex/pom.xml
+++ b/stack/corepersistence/queryindex/pom.xml
@@ -92,12 +92,6 @@
 
         <!-- major dependencies -->
 
-        <dependency>
-            <groupId>${project.parent.groupId}</groupId>
-            <artifactId>collection</artifactId>
-            <version>${project.version}</version>
-            <type>jar</type>
-        </dependency>
 
 
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/EntityResults.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/EntityResults.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/EntityResults.java
deleted file mode 100644
index 59f20dd..0000000
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/EntityResults.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * 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.persistence.index.query;
-
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.UUID;
-
-import org.apache.usergrid.persistence.collection.EntityCollectionManager;
-import org.apache.usergrid.persistence.index.utils.UUIDUtils;
-import org.apache.usergrid.persistence.model.entity.Entity;
-
-
-/**
- * Loads results from candidate results.  This needs to be refactored to the calling module, 
- * and should not exist in the query index
- */
-public class EntityResults implements Iterable<Entity>, Iterator<Entity> {
-
-
-    private final CandidateResults results;
-    private final EntityCollectionManager ecm;
-    private final UUID maxVersion;
-    private final Iterator<CandidateResult> itr;
-    private Entity next = null;
-
-
-    public EntityResults( final CandidateResults results, final EntityCollectionManager ecm, final UUID maxVersion ) {
-        this.results = results;
-        this.ecm = ecm;
-        this.maxVersion = maxVersion;
-        this.itr = results.iterator();
-    }
-
-
-    @Override
-    public Iterator<Entity> iterator() {
-        return this;
-    }
-
-
-    @Override
-    public boolean hasNext() {
-       if(next == null){
-           doAdvance();
-       }
-
-       return next != null;
-    }
-
-
-    /**
-     * Advance to our next candidate so that it is available
-     */
-    private void doAdvance(){
-        while(itr.hasNext() && next == null){
-            CandidateResult candidate = itr.next();
-
-            // our candidate is > our max, we can't use it
-            if( UUIDUtils.compare( candidate.getVersion(), maxVersion ) > 0){
-                continue;
-            }
-
-            // our candidate was too new, ignore it
-            next = ecm.load( candidate.getId() ).toBlocking().single();
-        }
-    }
-
-
-    @Override
-    public Entity next() {
-        if(!hasNext()){
-            throw new NoSuchElementException("No more elements in the iterator");
-        }
-
-
-        Entity result =  next;
-
-        next = null;
-
-        return result;
-    }
-
-
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException( "Remove is not supported" );
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Results.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Results.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Results.java
deleted file mode 100644
index 89745d0..0000000
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Results.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  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.  For additional information regarding
- * copyright in this work, please see the NOTICE file in the top level
- * directory of this distribution.
- */
-package org.apache.usergrid.persistence.index.query;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.usergrid.persistence.collection.EntityCollectionManager;
-import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
-import org.apache.usergrid.persistence.model.entity.Entity;
-import org.apache.usergrid.persistence.model.entity.Id;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-
-
-@XmlRootElement
-public class Results implements Iterable<Entity> {
-
-    private static final Logger log = LoggerFactory.getLogger(Results.class);
-
-    private String cursor = null;
-
-    private final Query query;
-    private final List<Id> ids = new ArrayList<Id>();
-
-    private Entity entity = null;
-    private List<Entity> entities = null;
-
-    private final List<CandidateResult> candidates;
-
-    final EntityCollectionManagerFactory ecmf;
-
-
-    public Results( Query query, List<CandidateResult> candidates, 
-            EntityCollectionManagerFactory ecmf ) {
-
-        this.query = query;
-        this.candidates = candidates;
-        this.ecmf = ecmf;
-        for ( CandidateResult candidate : candidates ) {
-            ids.add( candidate.getId() );
-        }
-    }
-
-
-    public boolean hasCursor() {
-        return cursor != null;
-    }
-
-
-    public String getCursor() {
-        return cursor;
-    }
-
-
-    public void setCursor(String cursor) {
-        this.cursor = cursor;
-    }
-
-
-    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-    public Query getQuery() {
-        return query;
-    }
-
-
-    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-    public List<Id> getIds() {
-        return Collections.unmodifiableList(ids);
-    }
-
-
-    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-    public List<Entity> getEntities() {
-        return getEntities(false);
-    }
-
-    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-    public List<Entity> getEntities(Boolean takeAllVersions) {
-
-        if ( entities == null ) {
-
-            entities = new ArrayList<Entity>();
-
-            EntityCollectionManager ecm = null;
-
-            for ( CandidateResult candidate : candidates ) {
-
-                Entity entity = ecm.load( candidate.getId() ).toBlocking().last();
-                if ( !takeAllVersions && candidate.getVersion().compareTo(entity.getVersion()) == -1) {
-                    log.debug("   Stale hit {} version {}", entity.getId(), entity.getVersion() );
-                    continue;
-                }
-
-                entities.add(entity);
-            }
-        }
-
-        return Collections.unmodifiableList( entities );
-    }
-
-
-    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-    public Entity getEntity() {
-        if ( size() > 0 ) {
-            return getEntities().get(0);
-        }
-        return null;
-    }
-
-
-    public int size() {
-        return ids.size();
-    }
-
-
-    public boolean isEmpty() {
-        return ids.isEmpty();
-    }
-
-
-    @Override
-    public Iterator<Entity> iterator() {
-        return getEntities().iterator();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/utils/ListUtils.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/utils/ListUtils.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/utils/ListUtils.java
index 6c7b480..d588476 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/utils/ListUtils.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/utils/ListUtils.java
@@ -22,13 +22,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.math.NumberUtils;
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
-import org.apache.usergrid.persistence.model.entity.Id;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.commons.lang.math.NumberUtils;
+
 
 public class ListUtils extends org.apache.commons.collections.ListUtils {
     private static final Logger LOG = LoggerFactory.getLogger( ListUtils.class );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
index 23dfe06..4cf46d6 100644
--- a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
+++ b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/guice/TestIndexModule.java
@@ -21,9 +21,8 @@ package org.apache.usergrid.persistence.index.guice;
 
 import org.safehaus.guicyfig.GuicyFigModule;
 
-import org.apache.usergrid.persistence.collection.guice.CollectionModule;
-import org.apache.usergrid.persistence.core.guice.TestModule;
 import org.apache.usergrid.persistence.core.guice.CommonModule;
+import org.apache.usergrid.persistence.core.guice.TestModule;
 
 
 public class TestIndexModule extends TestModule {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityConnectionIndexImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityConnectionIndexImplTest.java b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityConnectionIndexImplTest.java
deleted file mode 100644
index a399809..0000000
--- a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityConnectionIndexImplTest.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  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.  For additional information regarding
- * copyright in this work, please see the NOTICE file in the top level
- * directory of this distribution.
- */
-package org.apache.usergrid.persistence.index.impl;
-
-
-import java.io.IOException;
-import java.util.HashMap;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
-import org.apache.usergrid.persistence.core.scope.ApplicationScope;
-import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
-import org.apache.usergrid.persistence.core.test.UseModules;
-import org.apache.usergrid.persistence.index.EntityIndex;
-import org.apache.usergrid.persistence.index.EntityIndexBatch;
-import org.apache.usergrid.persistence.index.EntityIndexFactory;
-import org.apache.usergrid.persistence.index.IndexScope;
-import org.apache.usergrid.persistence.index.SearchTypes;
-import org.apache.usergrid.persistence.index.exceptions.QueryParseException;
-import org.apache.usergrid.persistence.index.guice.TestIndexModule;
-import org.apache.usergrid.persistence.index.query.CandidateResult;
-import org.apache.usergrid.persistence.index.query.CandidateResults;
-import org.apache.usergrid.persistence.index.query.Query;
-import org.apache.usergrid.persistence.model.entity.Entity;
-import org.apache.usergrid.persistence.model.entity.Id;
-import org.apache.usergrid.persistence.model.entity.SimpleId;
-import org.apache.usergrid.persistence.model.util.UUIDGenerator;
-
-import com.google.inject.Inject;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-
-@RunWith( EsRunner.class )
-@UseModules( { TestIndexModule.class } )
-public class EntityConnectionIndexImplTest extends BaseIT {
-
-    private static final Logger log = LoggerFactory.getLogger( EntityConnectionIndexImplTest.class );
-
-    //    @ClassRule
-    //    public static ElasticSearchResource es = new ElasticSearchResource();
-
-
-    @Inject
-    public EntityIndexFactory ecif;
-
-
-    @Test
-    public void testBasicOperation() throws IOException, InterruptedException {
-
-        Id appId = new SimpleId( "application" );
-        ApplicationScope applicationScope = new ApplicationScopeImpl( appId );
-
-        // create a muffin
-        Entity muffin = new Entity( new SimpleId( UUIDGenerator.newTimeUUID(), "muffin" ) );
-
-        muffin = EntityIndexMapUtils.fromMap( muffin, new HashMap<String, Object>() {{
-            put( "size", "Large" );
-            put( "flavor", "Blueberry" );
-            put( "stars", 5 );
-        }} );
-        EntityUtils.setVersion( muffin, UUIDGenerator.newTimeUUID() );
-
-        Entity egg = new Entity( new SimpleId( UUIDGenerator.newTimeUUID(), "egg" ) );
-
-        egg = EntityIndexMapUtils.fromMap( egg, new HashMap<String, Object>() {{
-            put( "size", "Large" );
-            put( "type", "scramble" );
-            put( "stars", 5 );
-        }} );
-        EntityUtils.setVersion( egg, UUIDGenerator.newTimeUUID() );
-
-        Entity oj = new Entity( new SimpleId( UUIDGenerator.newTimeUUID(), "juice" ) );
-
-        oj = EntityIndexMapUtils.fromMap( oj, new HashMap<String, Object>() {{
-            put( "size", "Large" );
-            put( "type", "pulpy" );
-            put( "stars", 3 );
-        }} );
-        EntityUtils.setVersion( oj, UUIDGenerator.newTimeUUID() );
-
-
-        // create a person who likes muffins
-        Id personId = new SimpleId( UUIDGenerator.newTimeUUID(), "person" );
-
-
-        assertNotNull( personId );
-        assertNotNull( personId.getType() );
-        assertNotNull( personId.getUuid() );
-
-        // index connection of "person Dave likes Large Blueberry muffin"
-
-        IndexScope searchScope = new IndexScopeImpl( personId, "likes" );
-
-        //create another scope we index in, want to be sure these scopes are filtered
-        IndexScope otherIndexScope =
-                new IndexScopeImpl( new SimpleId( UUIDGenerator.newTimeUUID(), "animal" ), "likes" );
-
-        EntityIndex personLikesIndex = ecif.createEntityIndex( applicationScope );
-        personLikesIndex.initializeIndex();
-
-        EntityIndexBatch batch = personLikesIndex.createBatch();
-
-        //add to both scopes
-
-        //add a muffin
-        batch.index( searchScope, muffin );
-        batch.index( otherIndexScope, muffin );
-
-        //add the eggs
-        batch.index( searchScope, egg );
-        batch.index( otherIndexScope, egg );
-
-        //add the oj
-        batch.index( searchScope, oj );
-        batch.index( otherIndexScope, oj );
-
-        batch.execute().get();
-        personLikesIndex.refresh();
-
-
-        Thread.sleep( 2000 );
-
-        // now, let's search for muffins
-        CandidateResults likes = personLikesIndex
-                .search( searchScope, SearchTypes.fromTypes( muffin.getId().getType() ), Query.fromQL( "select *" ) );
-        assertEquals( 1, likes.size() );
-        assertEquals( muffin.getId(), likes.get( 0 ).getId() );
-
-        // now, let's search for egg
-        likes = personLikesIndex
-                .search( searchScope, SearchTypes.fromTypes( egg.getId().getType() ), Query.fromQL( "select *" ) );
-        assertEquals( 1, likes.size() );
-        assertEquals( egg.getId(), likes.get( 0 ).getId() );
-
-        // search for OJ
-        likes = personLikesIndex
-                .search( searchScope, SearchTypes.fromTypes( oj.getId().getType() ), Query.fromQL( "select *" ) );
-        assertEquals( 1, likes.size() );
-        assertEquals( oj.getId(), likes.get( 0 ).getId() );
-
-
-        //now lets search for all explicitly
-        likes = personLikesIndex.search( searchScope,
-                SearchTypes.fromTypes( muffin.getId().getType(), egg.getId().getType(), oj.getId().getType() ),
-                Query.fromQL( "select *" ) );
-        assertEquals( 3, likes.size() );
-        assertContains( egg.getId(), likes );
-        assertContains( muffin.getId(), likes );
-        assertContains( oj.getId(), likes );
-
-        //now lets search for all explicitly
-        likes = personLikesIndex.search( searchScope, SearchTypes.allTypes(), Query.fromQL( "select *" ) );
-        assertEquals( 3, likes.size() );
-        assertContains( egg.getId(), likes );
-        assertContains( muffin.getId(), likes );
-        assertContains( oj.getId(), likes );
-
-
-        //now search all entity types with a query that returns a subset
-        likes = personLikesIndex.search( searchScope,
-                SearchTypes.fromTypes( muffin.getId().getType(), egg.getId().getType(), oj.getId().getType() ),
-                Query.fromQL( "select * where stars = 5" ) );
-        assertEquals( 2, likes.size() );
-        assertContains( egg.getId(), likes );
-        assertContains( muffin.getId(), likes );
-
-
-        //now search with no types, we should get only the results that match
-        likes = personLikesIndex
-                .search( searchScope, SearchTypes.allTypes(), Query.fromQL( "select * where stars = 5" ) );
-        assertEquals( 2, likes.size() );
-        assertContains( egg.getId(), likes );
-        assertContains( muffin.getId(), likes );
-    }
-
-
-    @Test
-    public void testDelete() throws IOException, InterruptedException {
-
-        Id appId = new SimpleId( "application" );
-        ApplicationScope applicationScope = new ApplicationScopeImpl( appId );
-
-        // create a muffin
-        Entity muffin = new Entity( new SimpleId( UUIDGenerator.newTimeUUID(), "muffin" ) );
-
-        muffin = EntityIndexMapUtils.fromMap( muffin, new HashMap<String, Object>() {{
-            put( "size", "Large" );
-            put( "flavor", "Blueberry" );
-            put( "stars", 5 );
-        }} );
-        EntityUtils.setVersion( muffin, UUIDGenerator.newTimeUUID() );
-
-        Entity egg = new Entity( new SimpleId( UUIDGenerator.newTimeUUID(), "egg" ) );
-
-        egg = EntityIndexMapUtils.fromMap( egg, new HashMap<String, Object>() {{
-            put( "size", "Large" );
-            put( "type", "scramble" );
-            put( "stars", 5 );
-        }} );
-        EntityUtils.setVersion( egg, UUIDGenerator.newTimeUUID() );
-
-        Entity oj = new Entity( new SimpleId( UUIDGenerator.newTimeUUID(), "juice" ) );
-
-        oj = EntityIndexMapUtils.fromMap( oj, new HashMap<String, Object>() {{
-            put( "size", "Large" );
-            put( "type", "pulpy" );
-            put( "stars", 3 );
-        }} );
-        EntityUtils.setVersion( oj, UUIDGenerator.newTimeUUID() );
-
-
-        // create a person who likes muffins
-        Id personId = new SimpleId( UUIDGenerator.newTimeUUID(), "person" );
-
-
-        assertNotNull( personId );
-        assertNotNull( personId.getType() );
-        assertNotNull( personId.getUuid() );
-
-        // index connection of "person Dave likes Large Blueberry muffin"
-
-        IndexScope searchScope = new IndexScopeImpl( personId, "likes" );
-
-        //create another scope we index in, want to be sure these scopes are filtered
-        IndexScope otherIndexScope =
-                new IndexScopeImpl( new SimpleId( UUIDGenerator.newTimeUUID(), "animal" ), "likes" );
-
-        EntityIndex personLikesIndex = ecif.createEntityIndex( applicationScope );
-        personLikesIndex.initializeIndex();
-
-        EntityIndexBatch batch = personLikesIndex.createBatch();
-
-        //add to both scopes
-
-        //add a muffin
-        batch.index( searchScope, muffin );
-        batch.index( otherIndexScope, muffin );
-
-        //add the eggs
-        batch.index( searchScope, egg );
-        batch.index( otherIndexScope, egg );
-
-        //add the oj
-        batch.index( searchScope, oj );
-        batch.index( otherIndexScope, oj );
-
-        batch.execute().get();
-        personLikesIndex.refresh();
-
-
-        // now, let's search for muffins
-        CandidateResults likes = personLikesIndex.search( searchScope,
-                SearchTypes.fromTypes( muffin.getId().getType(), egg.getId().getType(), oj.getId().getType() ),
-                Query.fromQL( "select *" ) );
-        assertEquals( 3, likes.size() );
-        assertContains( egg.getId(), likes );
-        assertContains( muffin.getId(), likes );
-        assertContains( oj.getId(), likes );
-
-
-        //now delete them
-        batch.deindex( searchScope, egg );
-        batch.deindex( searchScope, muffin );
-        batch.deindex( searchScope, oj );
-        batch.execute().get();
-        personLikesIndex.refresh();
-
-        likes = personLikesIndex.search( searchScope,
-                SearchTypes.fromTypes( muffin.getId().getType(), egg.getId().getType(), oj.getId().getType() ),
-                Query.fromQL( "select *" ) );
-        assertEquals( 0, likes.size() );
-    }
-
-
-    private void assertContains( final Id id, final CandidateResults results ) {
-        for ( CandidateResult result : results ) {
-            if ( result.getId().equals( id ) ) {
-                return;
-            }
-        }
-
-        fail( String.format( "Could not find id %s in candidate results", id ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/72ec19d5/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexTest.java b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexTest.java
index ca9bf79..39a16b1 100644
--- a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexTest.java
+++ b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexTest.java
@@ -20,16 +20,15 @@ package org.apache.usergrid.persistence.index.impl;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.usergrid.persistence.core.guice.MigrationManagerRule;
-import org.apache.usergrid.persistence.index.*;
-import org.apache.usergrid.persistence.model.field.ArrayField;
-import org.apache.usergrid.persistence.model.field.EntityObjectField;
-import org.apache.usergrid.persistence.model.field.UUIDField;
-import org.apache.usergrid.persistence.model.field.value.EntityObject;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
@@ -39,11 +38,17 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.commons.lang3.time.StopWatch;
 
-import org.apache.usergrid.persistence.collection.util.EntityUtils;
+import org.apache.usergrid.persistence.core.guice.MigrationManagerRule;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
 import org.apache.usergrid.persistence.core.test.UseModules;
 import org.apache.usergrid.persistence.core.util.Health;
+import org.apache.usergrid.persistence.index.AliasedEntityIndex;
+import org.apache.usergrid.persistence.index.EntityIndex;
+import org.apache.usergrid.persistence.index.EntityIndexBatch;
+import org.apache.usergrid.persistence.index.EntityIndexFactory;
+import org.apache.usergrid.persistence.index.IndexScope;
+import org.apache.usergrid.persistence.index.SearchTypes;
 import org.apache.usergrid.persistence.index.guice.TestIndexModule;
 import org.apache.usergrid.persistence.index.query.CandidateResults;
 import org.apache.usergrid.persistence.index.query.Query;
@@ -51,7 +56,12 @@ import org.apache.usergrid.persistence.index.utils.UUIDUtils;
 import org.apache.usergrid.persistence.model.entity.Entity;
 import org.apache.usergrid.persistence.model.entity.Id;
 import org.apache.usergrid.persistence.model.entity.SimpleId;
+import org.apache.usergrid.persistence.model.field.ArrayField;
+import org.apache.usergrid.persistence.model.field.EntityObjectField;
 import org.apache.usergrid.persistence.model.field.StringField;
+import org.apache.usergrid.persistence.model.field.UUIDField;
+import org.apache.usergrid.persistence.model.field.value.EntityObject;
+import org.apache.usergrid.persistence.model.util.EntityUtils;
 import org.apache.usergrid.persistence.model.util.UUIDGenerator;
 
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -59,7 +69,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Maps;
 import com.google.inject.Inject;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 
 @RunWith(EsRunner.class)