Repository: incubator-usergrid
Updated Branches:
  refs/heads/USERGRID-593 c565ee17f -> 6098d9b60 (forced update)


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
 
b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
index ce45ebf..b34bd93 100644
--- 
a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
+++ 
b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationContext;
 import org.springframework.util.Assert;
 
+import org.apache.usergrid.corepersistence.ManagerCache;
 import org.apache.usergrid.persistence.IndexBucketLocator.IndexType;
 import static 
org.apache.usergrid.persistence.cassandra.ApplicationCF.ENTITY_ID_SETS;
 
@@ -69,6 +70,8 @@ import org.apache.usergrid.persistence.SimpleRoleRef;
 import org.apache.usergrid.persistence.TypedEntity;
 import 
org.apache.usergrid.persistence.cassandra.CounterUtils.AggregateCounterSelection;
 import org.apache.usergrid.persistence.cassandra.util.TraceParticipant;
+import 
org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
+import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
 import org.apache.usergrid.persistence.entities.Application;
 import org.apache.usergrid.persistence.entities.Event;
 import org.apache.usergrid.persistence.entities.Group;
@@ -78,6 +81,7 @@ import 
org.apache.usergrid.persistence.exceptions.DuplicateUniquePropertyExistsE
 import org.apache.usergrid.persistence.exceptions.EntityNotFoundException;
 import 
org.apache.usergrid.persistence.exceptions.RequiredPropertyNotFoundException;
 import 
org.apache.usergrid.persistence.exceptions.UnexpectedEntityTypeException;
+import org.apache.usergrid.persistence.graph.GraphManagerFactory;
 import org.apache.usergrid.persistence.index.query.CounterResolution;
 import org.apache.usergrid.persistence.index.query.Identifier;
 import org.apache.usergrid.persistence.index.query.Query;
@@ -193,6 +197,7 @@ public class EntityManagerImpl implements EntityManager {
 
     @Resource
     private EntityManagerFactoryImpl emf;
+
     @Resource
     private QueueManagerFactoryImpl qmf;
     @Resource
@@ -212,10 +217,6 @@ public class EntityManagerImpl implements EntityManager {
     }
 
 
-    @Override
-    public void init(EntityManagerFactory emf, UUID applicationId) {
-        init( (EntityManagerFactoryImpl)emf, null, null, applicationId, false);
-    }
 
 
     public EntityManager init(
@@ -523,7 +524,7 @@ public class EntityManagerImpl implements EntityManager {
          */
 
         Set<UUID> ownerEntityIds = getUUIDsForUniqueProperty(
-            new SimpleEntityRef(Application.ENTITY_TYPE, applicationId), 
entityType, propertyName, propertyValue );
+            new SimpleEntityRef( Application.ENTITY_TYPE, applicationId ), 
entityType, propertyName, propertyValue );
 
         //if there are no entities for this property, we know it's unique.  If 
there are,
         // we have to make sure the one we were passed is in the set.  
otherwise it belongs
@@ -651,7 +652,7 @@ public class EntityManagerImpl implements EntityManager {
 
     @Override
     public Map<String, EntityRef> getAlias( String aliasType, List<String> 
aliases ) throws Exception {
-        return getAlias( new SimpleEntityRef(Application.ENTITY_TYPE, 
applicationId), aliasType, aliases );
+        return getAlias( new SimpleEntityRef( Application.ENTITY_TYPE, 
applicationId ), aliasType, aliases );
     }
 
 
@@ -1249,9 +1250,9 @@ public class EntityManagerImpl implements EntityManager {
 
         HColumn<ByteBuffer, ByteBuffer> result =
                 cass.getColumn( cass.getApplicationKeyspace( applicationId ), 
dictionaryCf,
-                        key( entity.getUuid(), dictionaryName ),
-                        entityHasDictionary ? bytebuffer( elementName ) : 
DynamicComposite.toByteBuffer( elementName ),
-                        be, be );
+                    key( entity.getUuid(), dictionaryName ),
+                    entityHasDictionary ? bytebuffer( elementName ) : 
DynamicComposite.toByteBuffer( elementName ), be,
+                    be );
         if ( result != null ) {
             if ( entityHasDictionary && coTypeIsBasic ) {
                 value = object( dictionaryCoType, result.getValue() );
@@ -1295,7 +1296,7 @@ public class EntityManagerImpl implements EntityManager {
 
         ColumnSlice<ByteBuffer, ByteBuffer> results =
                 cass.getColumns( cass.getApplicationKeyspace( applicationId ), 
dictionaryCf,
-                        key( entity.getUuid(), dictionaryName ), columnNames, 
be, be );
+                    key( entity.getUuid(), dictionaryName ), columnNames, be, 
be );
         if ( results != null ) {
             values = new HashMap<String, Object>();
             for ( HColumn<ByteBuffer, ByteBuffer> result : 
results.getColumns() ) {
@@ -1352,7 +1353,7 @@ public class EntityManagerImpl implements EntityManager {
 
         List<HColumn<ByteBuffer, ByteBuffer>> results =
                 cass.getAllColumns( cass.getApplicationKeyspace( applicationId 
), dictionaryCf,
-                        key( entity.getUuid(), dictionaryName ), be, be );
+                    key( entity.getUuid(), dictionaryName ), be, be );
         for ( HColumn<ByteBuffer, ByteBuffer> result : results ) {
             Object name = null;
             if ( entityHasDictionary ) {
@@ -2296,7 +2297,7 @@ public class EntityManagerImpl implements EntityManager {
         Mutator<ByteBuffer> batch = CountingMutator.createFlushingMutator( 
cass.getApplicationKeyspace( applicationId ),
                 be );
         addInsertToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES, 
getRolePermissionsKey( roleName ), permission,
-                ByteBuffer.allocate( 0 ), timestamp );
+            ByteBuffer.allocate( 0 ), timestamp );
         batchExecute( batch, CassandraService.RETRY_COUNT );
     }
 
@@ -2377,7 +2378,7 @@ public class EntityManagerImpl implements EntityManager {
         Mutator<ByteBuffer> batch = CountingMutator.createFlushingMutator( 
cass.getApplicationKeyspace( applicationId ),
                 be );
         addInsertToMutator( batch, ApplicationCF.ENTITY_DICTIONARIES, 
getRolePermissionsKey( groupId, roleName ),
-                permission, ByteBuffer.allocate( 0 ), timestamp );
+            permission, ByteBuffer.allocate( 0 ), timestamp );
         batchExecute( batch, CassandraService.RETRY_COUNT );
     }
 
@@ -2390,7 +2391,7 @@ public class EntityManagerImpl implements EntityManager {
         Mutator<ByteBuffer> batch = CountingMutator.createFlushingMutator( 
cass.getApplicationKeyspace( applicationId ),
                 be );
         CassandraPersistenceUtils.addDeleteToMutator( batch, 
ApplicationCF.ENTITY_DICTIONARIES,
-                getRolePermissionsKey( groupId, roleName ), permission, 
timestamp );
+            getRolePermissionsKey( groupId, roleName ), permission, timestamp 
);
         batchExecute( batch, CassandraService.RETRY_COUNT );
     }
 
@@ -2422,7 +2423,7 @@ public class EntityManagerImpl implements EntityManager {
     @Override
     public Map<String, Role> getUserRolesWithTitles( UUID userId ) throws 
Exception {
         return getRolesWithTitles(
-                ( Set<String> ) cast( getDictionaryAsSet( userRef( userId ), 
DICTIONARY_ROLENAMES ) ) );
+            ( Set<String> ) cast( getDictionaryAsSet( userRef( userId ), 
DICTIONARY_ROLENAMES ) ) );
     }
 
 
@@ -2534,7 +2535,7 @@ public class EntityManagerImpl implements EntityManager {
             Mutator<ByteBuffer> m = CountingMutator.createFlushingMutator( 
cass.getApplicationKeyspace( applicationId ),
                     be );
             counterUtils.batchIncrementAggregateCounters( m, applicationId, 
userId, groupId, null, category, counters,
-                    timestamp );
+                timestamp );
 
             batchExecute( m, CassandraService.RETRY_COUNT );
         }
@@ -2724,7 +2725,7 @@ public class EntityManagerImpl implements EntityManager {
     public Results getConnectingEntities( EntityRef entityRef, String 
connectionType,
             String connectedEntityType, Level resultsLevel ) throws Exception {
 
-        return getConnectingEntities( entityRef, connectionType, 
connectedEntityType, resultsLevel, 0);
+        return getConnectingEntities( entityRef, connectionType, 
connectedEntityType, resultsLevel, 0 );
     }
 
 
@@ -2901,6 +2902,16 @@ public class EntityManagerImpl implements EntityManager {
 
 
     @Override
+    public void init( final CassandraService cassandraService, final 
CounterUtils counterUtils,
+                      final MetricsFactory metricsFactory, final 
GraphManagerFactory graphManagerFactory,
+                      final EntityCollectionManagerFactory 
entityCollectionManagerFactory,
+                      final ManagerCache managerCache, final UUID 
applicationId ) {
+        throw new UnsupportedOperationException( "Removed anyway" );
+
+    }
+
+
+    @Override
     public EntityRef getGroupRoleRef( UUID ownerId, String roleName) throws 
Exception {
         return new SimpleEntityRef( Role.ENTITY_TYPE, 
SimpleRoleRef.getIdForGroupIdAndRoleName( ownerId, roleName ));
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java 
b/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
index 99cfcf5..647424c 100644
--- a/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
+++ b/stack/core/src/test/java/org/apache/usergrid/CoreApplication.java
@@ -164,6 +164,9 @@ public class CoreApplication implements Application, 
TestRule {
 
         LOG.info( "Created new application {} in organization {}", appName, 
orgName );
 
+//        //wait for the index before proceeding
+//        em.refreshIndex();
+
     }
 
     protected void before( Description description ) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntitySet.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntitySet.java
 
b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntitySet.java
index 35b6a12..ffdfc2a 100644
--- 
a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntitySet.java
+++ 
b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/EntitySet.java
@@ -18,6 +18,8 @@
  */
 package org.apache.usergrid.persistence.collection;
 
+import java.util.Collection;
+
 import org.apache.usergrid.persistence.model.entity.Id;
 
 
@@ -31,17 +33,23 @@ public interface EntitySet {
      * @param entityId
      * @return
      */
-    public MvccEntity getEntity(Id entityId);
+    MvccEntity getEntity( Id entityId );
+
+    /**
+     * Get all entities in the set
+     * @return
+     */
+    Collection<MvccEntity> getEntities();
 
     /**
      * Get the number of entities in this set
      * @return
      */
-    public int size();
+    int size();
 
     /**
      * Return true if the set is empty
      * @return
      */
-    public boolean isEmpty();
+    boolean isEmpty();
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/EntitySetImpl.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/EntitySetImpl.java
 
b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/EntitySetImpl.java
index 921093b..126f9f3 100644
--- 
a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/EntitySetImpl.java
+++ 
b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/EntitySetImpl.java
@@ -18,6 +18,7 @@ package 
org.apache.usergrid.persistence.collection.serialization.impl;/*
  */
 
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -32,8 +33,7 @@ public class EntitySetImpl implements EntitySet {
     private final Map<Id, MvccEntity> entities;
 
 
-    public EntitySetImpl(
-                          final int expectedSize ) {
+    public EntitySetImpl(final int expectedSize ) {
         this.entities = new HashMap<>( expectedSize );
     }
 
@@ -48,6 +48,12 @@ public class EntitySetImpl implements EntitySet {
         return entities.get( entityId );
     }
 
+    public Collection<MvccEntity> getEntities(){
+        return entities.values();
+    }
+
+
+
 
     @Override
     public int size() {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/OrderedMerge.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/OrderedMerge.java
 
b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/OrderedMerge.java
index cdad0d1..613585e 100644
--- 
a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/OrderedMerge.java
+++ 
b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/rx/OrderedMerge.java
@@ -94,20 +94,20 @@ public final class OrderedMerge<T> implements 
Observable.OnSubscribe<T> {
 
             innerObservers[i] = inner;
         }
-
-        /**
-         * Once we're set up, begin the subscription to sub observables
-         */
-        for ( int i = 0; i < observables.length; i++ ) {
-            //subscribe after setting them up
-            //add our subscription to the composite for future cancellation
-            Subscription subscription = observables[i].subscribe( 
innerObservers[i] );
-
-            csub.add( subscription );
-
-            //add the internal composite subscription
-            outerOperation.add( csub );
-        }
+// TODO, if this merge makes it into 2.0-dev remove this and use 2.0 -dev
+//        /**
+//         * Once we're set up, begin the subscription to sub observables
+//         */
+//        for ( int i = 0; i < observables.length; i++ ) {
+//            //subscribe after setting them up
+//            //add our subscription to the composite for future cancellation
+//            Subscription subscription = observables[i].subscribe( 
innerObservers[i] );
+//
+//            csub.add( subscription );
+//
+//            //add the internal composite subscription
+//            outerOperation.add( csub );
+//        }
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/Edge.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/Edge.java
 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/Edge.java
index 5613ae9..b2d2ced 100644
--- 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/Edge.java
+++ 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/Edge.java
@@ -22,8 +22,11 @@ package org.apache.usergrid.persistence.graph;
 
 import java.io.Serializable;
 
+import org.apache.usergrid.persistence.graph.impl.SimpleEdge;
 import org.apache.usergrid.persistence.model.entity.Id;
 
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
 
 /**
  * Defines a directed edge from the source node to the target node.  Edges are 
considered immutable.
@@ -31,6 +34,7 @@ import org.apache.usergrid.persistence.model.entity.Id;
  *
  * @author tnine
  */
+@JsonDeserialize(as = SimpleEdge.class)
 public interface Edge extends Serializable {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/SearchByEdgeType.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/SearchByEdgeType.java
 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/SearchByEdgeType.java
index 749130b..5e47ae0 100644
--- 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/SearchByEdgeType.java
+++ 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/SearchByEdgeType.java
@@ -70,7 +70,7 @@ public interface SearchByEdgeType {
      * Options for ordering.  By default, we want to perform descending for 
common use cases and read speed.  This is our our data
      * is optimized in cassandra
      */
-    public enum Order {
+    enum Order {
         DESCENDING,
         ASCENDING
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/SimpleSearchByEdgeType.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/SimpleSearchByEdgeType.java
 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/SimpleSearchByEdgeType.java
index 6bc8b1b..1687162 100644
--- 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/SimpleSearchByEdgeType.java
+++ 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/SimpleSearchByEdgeType.java
@@ -51,21 +51,39 @@ public class SimpleSearchByEdgeType implements 
SearchByEdgeType{
      * @param order The order order.  Descending is most efficient
      * @param last The value to start seeking from.  Must be >= this value
      * @param order
+     *
+     * //TODO, make last an optional
      */
-    public SimpleSearchByEdgeType( final Id node, final String type, final 
long maxTimestamp, final Order order, final Edge last
-                                   ) {
+    public SimpleSearchByEdgeType( final Id node, final String type, final 
long maxTimestamp, final Order order, final Edge last ) {
+        this(node, type, maxTimestamp, order, Optional.fromNullable(last));
+    }
+
+
+    /**
+     * Create the search modules
+     * @param node The node to search from
+     * @param type The edge type
+     * @param maxTimestamp The maximum timestamp to return
+     * @param order The order order.  Descending is most efficient
+     * @param last The value to start seeking from.  Must be >= this value
+     * @param order
+     *
+     * //TODO, make last an optional
+     */
+    public SimpleSearchByEdgeType( final Id node, final String type, final 
long maxTimestamp, final Order order, final Optional<Edge> last ) {
 
         Preconditions.checkNotNull( order, "order is required");
-        ValidationUtils.verifyIdentity(node);
+        ValidationUtils.verifyIdentity( node );
         ValidationUtils.verifyString( type, "type" );
         GraphValidation.validateTimestamp( maxTimestamp, "maxTimestamp" );
+        Preconditions.checkNotNull( last, "last is required" );
 
 
         this.node = node;
         this.type = type;
         this.maxTimestamp = maxTimestamp;
         this.order = order;
-        this.last = Optional.fromNullable(last);
+        this.last = last;
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/stage/NodeDeleteListenerImpl.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/stage/NodeDeleteListenerImpl.java
 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/stage/NodeDeleteListenerImpl.java
index f167f0c..03f1df8 100644
--- 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/stage/NodeDeleteListenerImpl.java
+++ 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/impl/stage/NodeDeleteListenerImpl.java
@@ -32,6 +32,7 @@ import org.apache.usergrid.persistence.core.guice.ProxyImpl;
 import org.apache.usergrid.persistence.core.hystrix.HystrixCassandra;
 import org.apache.usergrid.persistence.core.rx.ObservableIterator;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.graph.Edge;
 import org.apache.usergrid.persistence.graph.GraphFig;
 import org.apache.usergrid.persistence.graph.MarkedEdge;
 import org.apache.usergrid.persistence.graph.SearchByEdgeType;
@@ -160,7 +161,7 @@ public class NodeDeleteListenerImpl implements 
NodeDeleteListener {
                             @Override
                             protected Iterator<MarkedEdge> getIterator() {
                                 return storageSerialization.getEdgesToTarget( 
scope,
-                                        new SimpleSearchByEdgeType( node, 
edgeType, maxVersion, SearchByEdgeType.Order.DESCENDING, null ) );
+                                        new SimpleSearchByEdgeType( node, 
edgeType, maxVersion, SearchByEdgeType.Order.DESCENDING,  
Optional.<Edge>absent() ) );
                             }
                         } );
                     }
@@ -177,7 +178,7 @@ public class NodeDeleteListenerImpl implements 
NodeDeleteListener {
                             @Override
                             protected Iterator<MarkedEdge> getIterator() {
                                 return 
storageSerialization.getEdgesFromSource( scope,
-                                        new SimpleSearchByEdgeType( node, 
edgeType, maxVersion, SearchByEdgeType.Order.DESCENDING, null ) );
+                                        new SimpleSearchByEdgeType( node, 
edgeType, maxVersion, SearchByEdgeType.Order.DESCENDING,  
Optional.<Edge>absent() ) );
                             }
                         } );
                     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/DirectedEdgeMeta.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/DirectedEdgeMeta.java
 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/DirectedEdgeMeta.java
index 6bb467f..6bf6178 100644
--- 
a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/DirectedEdgeMeta.java
+++ 
b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/DirectedEdgeMeta.java
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.UUID;
 
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.graph.Edge;
 import org.apache.usergrid.persistence.graph.MarkedEdge;
 import org.apache.usergrid.persistence.graph.SearchByEdgeType;
 import org.apache.usergrid.persistence.graph.SearchByIdType;
@@ -39,6 +40,7 @@ import 
org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
 import org.apache.usergrid.persistence.graph.impl.SimpleSearchByIdType;
 import org.apache.usergrid.persistence.model.entity.Id;
 
+import com.google.common.base.Optional;
 import com.netflix.astyanax.MutationBatch;
 
 
@@ -272,7 +274,8 @@ public abstract class DirectedEdgeMeta {
                 final Id sourceId = nodes[0].id;
                 final String edgeType = types[0];
 
-                final SearchByEdgeType search = new SimpleSearchByEdgeType( 
sourceId, edgeType, maxValue, order, null);
+                final SearchByEdgeType search = new SimpleSearchByEdgeType( 
sourceId, edgeType, maxValue, order,
+                    Optional.<Edge>absent());
 
                 return serialization.getEdgesFromSource( edgeColumnFamilies, 
scope, search, shards );
             }
@@ -392,7 +395,7 @@ public abstract class DirectedEdgeMeta {
                 final Id targetId = nodes[0].id;
                 final String edgeType = types[0];
 
-                final SearchByEdgeType search = new SimpleSearchByEdgeType( 
targetId, edgeType, maxValue, order, null);
+                final SearchByEdgeType search = new SimpleSearchByEdgeType( 
targetId, edgeType, maxValue, order,  Optional.<Edge>absent());
 
                 return serialization.getEdgesToTarget( edgeColumnFamilies, 
scope, search, shards );
             }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerLoadTest.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerLoadTest.java
 
b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerLoadTest.java
index d3bf24e..c91fe89 100644
--- 
a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerLoadTest.java
+++ 
b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerLoadTest.java
@@ -48,6 +48,7 @@ import 
org.apache.usergrid.persistence.graph.guice.TestGraphModule;
 import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
 import org.apache.usergrid.persistence.model.entity.Id;
 
+import com.google.common.base.Optional;
 import com.google.inject.Inject;
 
 import rx.Observable;
@@ -112,7 +113,8 @@ public class GraphManagerLoadTest {
 
             @Override
             public Observable<Edge> doSearch( final GraphManager manager ) {
-                 return manager.loadEdgesFromSource( new 
SimpleSearchByEdgeType( sourceId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING, null) );
+                 return manager.loadEdgesFromSource( new 
SimpleSearchByEdgeType( sourceId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING,  Optional
+                                      .<Edge>absent()) );
             }
         };
 
@@ -139,7 +141,7 @@ public class GraphManagerLoadTest {
 
             @Override
             public Observable<Edge> doSearch( final GraphManager manager ) {
-                return manager.loadEdgesToTarget( new SimpleSearchByEdgeType( 
targetId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING, null ) );
+                return manager.loadEdgesToTarget( new SimpleSearchByEdgeType( 
targetId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING,  Optional.<Edge>absent() ) );
             }
         };
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerShardConsistencyIT.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerShardConsistencyIT.java
 
b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerShardConsistencyIT.java
index 095f855..d702556 100644
--- 
a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerShardConsistencyIT.java
+++ 
b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerShardConsistencyIT.java
@@ -60,6 +60,7 @@ import org.apache.usergrid.persistence.model.entity.Id;
 import com.codahale.metrics.Meter;
 import com.codahale.metrics.MetricRegistry;
 import com.codahale.metrics.Slf4jReporter;
+import com.google.common.base.Optional;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -166,7 +167,7 @@ public class GraphManagerShardConsistencyIT {
             public Observable<Edge> doSearch( final GraphManager manager ) {
                 return manager.loadEdgesFromSource(
                         new SimpleSearchByEdgeType( sourceId, edgeType, 
Long.MAX_VALUE,
-                                SearchByEdgeType.Order.DESCENDING, null ) );
+                                SearchByEdgeType.Order.DESCENDING,  
Optional.<Edge>absent() ) );
             }
         };
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerStressTest.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerStressTest.java
 
b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerStressTest.java
index cc131d1..0d76931 100644
--- 
a/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerStressTest.java
+++ 
b/stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/GraphManagerStressTest.java
@@ -42,6 +42,7 @@ import 
org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
 import org.apache.usergrid.persistence.model.entity.Id;
 import org.apache.usergrid.persistence.model.util.UUIDGenerator;
 
+import com.google.common.base.Optional;
 import com.google.inject.Inject;
 
 import rx.Observable;
@@ -119,7 +120,8 @@ public class GraphManagerStressTest {
                             for ( Id sourceId : sourceIds ) {
 
                                 final Iterable<Edge> edges = 
manager.loadEdgesFromSource(
-                                        new SimpleSearchByEdgeType( sourceId, 
"test", timestamp, SearchByEdgeType.Order.DESCENDING, null ) )
+                                        new SimpleSearchByEdgeType( sourceId, 
"test", timestamp, SearchByEdgeType.Order.DESCENDING,  Optional
+                                                                               
     .<Edge>absent() ) )
                                                                     
.toBlocking().toIterable();
 
                                 for ( Edge edge : edges ) {
@@ -193,7 +195,7 @@ public class GraphManagerStressTest {
 
             @Override
             public Observable<Edge> doSearch( final GraphManager manager ) {
-                return manager.loadEdgesFromSource( new 
SimpleSearchByEdgeType( sourceId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING, null ) );
+                return manager.loadEdgesFromSource( new 
SimpleSearchByEdgeType( sourceId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING,  Optional.<Edge>absent() ) );
             }
         };
 
@@ -221,7 +223,7 @@ public class GraphManagerStressTest {
             @Override
             public Observable<Edge> doSearch( final GraphManager manager ) {
 
-                return manager.loadEdgesToTarget( new SimpleSearchByEdgeType( 
targetId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING, null ) );
+                return manager.loadEdgesToTarget( new SimpleSearchByEdgeType( 
targetId, "test", System.currentTimeMillis(), 
SearchByEdgeType.Order.DESCENDING,  Optional.<Edge>absent() ) );
             }
         };
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/Id.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/Id.java
 
b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/Id.java
index a371340..39014ab 100644
--- 
a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/Id.java
+++ 
b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/Id.java
@@ -22,11 +22,14 @@ package org.apache.usergrid.persistence.model.entity;
 import java.io.Serializable;
 import java.util.UUID;
 
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
 
 /**
  * Interface for creating identifiers for an entity. The implementation should 
implement
  * the equals and hasCode methods
  * @author tnine */
+@JsonDeserialize(as = SimpleId.class)
 public interface Id extends Comparable<Id>, Serializable {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/pom.xml
----------------------------------------------------------------------
diff --git a/stack/corepersistence/pom.xml b/stack/corepersistence/pom.xml
index 9656e2d..171baca 100644
--- a/stack/corepersistence/pom.xml
+++ b/stack/corepersistence/pom.xml
@@ -59,7 +59,7 @@ limitations under the License.
         <commons.collections.version>3.2.1</commons.collections.version>
         <commons.io.version>2.4</commons.io.version>
         <commons.lang.version>3.1</commons.lang.version>
-        <elasticsearch.version>1.3.2</elasticsearch.version>
+        <elasticsearch.version>1.4.4</elasticsearch.version>
         <fasterxml-uuid.version>3.1.3</fasterxml-uuid.version>
         <guava.version>18.0</guava.version>
         <guice.version>4.0-beta5</guice.version>
@@ -71,7 +71,7 @@ limitations under the License.
         <junit.version>4.11</junit.version>
         <kryo-serializers.version>0.26</kryo-serializers.version>
         <log4j.version>1.2.17</log4j.version>
-        <rx.version>0.19.6</rx.version>
+        <rx.version>0.20.7</rx.version>
         <slf4j.version>1.7.2</slf4j.version>
         <surefire.version>2.16</surefire.version>
         <aws.version>1.9.0</aws.version>

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java
 
b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java
index 9a7a867..e77589d 100644
--- 
a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java
+++ 
b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java
@@ -843,6 +843,14 @@ public class Query {
     }
 
 
+    /**
+     * Return true if there is no query language to execute
+     * @return
+     */
+    public boolean isGraphQuery(){
+        return rootOperand == null && ql == null;
+    }
+
     @JsonIgnore
     public Operand getRootOperand() {
         if ( rootOperand == null ) { // attempt deserialization

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/ConnectionScenarios.scala
----------------------------------------------------------------------
diff --git 
a/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/ConnectionScenarios.scala
 
b/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/ConnectionScenarios.scala
index aa724d6..07e11fe 100755
--- 
a/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/ConnectionScenarios.scala
+++ 
b/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/ConnectionScenarios.scala
@@ -40,7 +40,7 @@ import io.gatling.http.Predef._
 
    val postConnection = exec(
      http("Connect user with device")
-       .post("/${collectionName}/${entityId}/${connectionType}/${entityId}")
+       .post("/${connectionName}/${entityId}/${connectionType}/${entityId}")
        .headers(Headers.jsonAuthorized)
        .check(status.is(200))
    )

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/6098d9b6/stack/pom.xml
----------------------------------------------------------------------
diff --git a/stack/pom.xml b/stack/pom.xml
index c458acb..9490cd7 100644
--- a/stack/pom.xml
+++ b/stack/pom.xml
@@ -125,7 +125,6 @@
       <usergrid.it.threads>8</usergrid.it.threads>
 
       <metrics.version>3.0.0</metrics.version>
-      <rx.version>0.19.6</rx.version>
         
<surefire.plugin.artifactName>surefire-junit47</surefire.plugin.artifactName>
       <surefire.plugin.version>2.18.1</surefire.plugin.version>
       <powermock.version>1.6.1</powermock.version>

Reply via email to