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>