merge from two-o-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/208ed2b3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/208ed2b3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/208ed2b3 Branch: refs/heads/two-dot-o-dev Commit: 208ed2b3c93771faf51a41903d617f67cc32b14a Parents: f695724 6db7ce9 Author: Shawn Feldman <[email protected]> Authored: Thu Mar 26 10:20:30 2015 -0600 Committer: Shawn Feldman <[email protected]> Committed: Thu Mar 26 10:20:30 2015 -0600 ---------------------------------------------------------------------- .../corepersistence/CpRelationManager.java | 304 ++++++------------- .../results/CollectionRefsVerifier.java | 44 +++ .../CollectionResultsLoaderFactoryImpl.java | 60 ++++ .../results/ConnectionRefsVerifier.java | 61 ++++ .../ConnectionResultsLoaderFactoryImpl.java | 65 ++++ .../results/ElasticSearchQueryExecutor.java | 212 +++++++++++++ .../corepersistence/results/QueryExecutor.java | 37 +++ .../corepersistence/results/RefsVerifier.java | 42 --- .../results/ResultsLoaderFactory.java | 3 +- .../results/ResultsLoaderFactoryImpl.java | 62 ---- .../persistence/MultiQueryIterator.java | 6 +- .../apache/usergrid/persistence/Results.java | 26 +- .../cassandra/QueryProcessorImpl.java | 12 +- .../usergrid/persistence/PathQueryIT.java | 46 ++- stack/core/src/test/resources/log4j.properties | 2 + .../persistence/graph/GraphManagerIT.java | 2 +- .../usergrid/persistence/index/IndexFig.java | 16 +- .../index/impl/BufferQueueInMemoryImpl.java | 10 +- .../index/impl/EsEntityIndexBatchImpl.java | 2 +- .../index/impl/EsIndexBufferConsumerImpl.java | 61 ++-- .../usergrid/persistence/index/query/Query.java | 55 ++-- .../persistence/index/utils/ListUtils.java | 3 +- .../cassandra/ManagementServiceImpl.java | 18 +- .../providers/PingIdentityProvider.java | 5 +- 24 files changed, 730 insertions(+), 424 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/208ed2b3/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java ---------------------------------------------------------------------- diff --cc stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java index 8f8ac5e,90b8e35..f62648d --- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java +++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java @@@ -40,7 -65,7 +40,7 @@@ public class EsEntityIndexBatchImpl imp private final ApplicationScope applicationScope; -- private final IndexIdentifier.IndexAlias alias; ++ private final IndexAlias alias; private final IndexIdentifier indexIdentifier; private final IndexBufferProducer indexBatchBufferProducer; http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/208ed2b3/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java ---------------------------------------------------------------------- diff --cc stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/query/Query.java index 6454b48,6362c0a..fa7def4 --- 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 @@@ -106,31 -117,86 +106,39 @@@ public class Query } + /** + * Creates a deep copy of a query from another query + * @param q + */ public Query( Query q ) { - if ( q != null ) { - type = q.type; - sortPredicates = q.sortPredicates != null - ? new ArrayList<SortPredicate>( q.sortPredicates ) : null; - startResult = q.startResult; - selectAssignments = q.selectAssignments != null - ? new LinkedHashMap<String, String>( q.selectAssignments ) : null; - mergeSelectResults = q.mergeSelectResults; - //level = q.level; - connectionType = q.connectionType; - permissions = q.permissions != null ? new ArrayList<String>( q.permissions ) : null; - reversed = q.reversed; - reversedSet = q.reversedSet; - startTime = q.startTime; - finishTime = q.finishTime; - resolution = q.resolution; - pad = q.pad; - rootOperand = q.rootOperand; - identifiers = q.identifiers != null - ? new ArrayList<Identifier>( q.identifiers ) : null; - counterFilters = q.counterFilters != null - ? new ArrayList<CounterFilterPredicate>( q.counterFilters ) : null; - collection = q.collection; - if ( q == null ) { ++ if (q == null) { + return; } - + type = q.type; + sortPredicates = q.sortPredicates != null - ? new ArrayList<>( q.sortPredicates ) : null; ++ ? new ArrayList<SortPredicate>(q.sortPredicates) : null; + startResult = q.startResult; - cursor = q.cursor; - limit = q.limit; + selectAssignments = q.selectAssignments != null - ? new LinkedHashMap<>( q.selectAssignments ) : null; ++ ? new LinkedHashMap<String, String>(q.selectAssignments) : null; + mergeSelectResults = q.mergeSelectResults; + //level = q.level; + connectionType = q.connectionType; - permissions = q.permissions != null ? new ArrayList<>( q.permissions ) : null; ++ permissions = q.permissions != null ? new ArrayList<String>(q.permissions) : null; + reversed = q.reversed; + reversedSet = q.reversedSet; + startTime = q.startTime; + finishTime = q.finishTime; + resolution = q.resolution; + pad = q.pad; + rootOperand = q.rootOperand; + identifiers = q.identifiers != null - ? new ArrayList<>( q.identifiers ) : null; ++ ? new ArrayList<Identifier>(q.identifiers) : null; + counterFilters = q.counterFilters != null - ? new ArrayList<>( q.counterFilters ) : null; ++ ? new ArrayList<CounterFilterPredicate>(q.counterFilters) : null; + collection = q.collection; - level = q.level; - - } - - - public QueryBuilder createQueryBuilder( final String context ) { - - - QueryBuilder queryBuilder = null; - - - //we have a root operand. Translate our AST into an ES search - if ( getRootOperand() != null ) { - // In the case of geo only queries, this will return null into the query builder. - // Once we start using tiles, we won't need this check any longer, since a geo query - // will return a tile query + post filter - QueryVisitor v = new EsQueryVistor(); - - try { - getRootOperand().visit( v ); - } - catch ( IndexException ex ) { - throw new RuntimeException( "Error building ElasticSearch query", ex ); - } - - - queryBuilder = v.getQueryBuilder(); - } - - - // Add our filter for context to our query for fast execution. - // Fast because it utilizes bitsets internally. See this post for more detail. - // http://www.elasticsearch.org/blog/all-about-elasticsearch-filter-bitsets/ - - // TODO evaluate performance when it's an all query. - // Do we need to put the context term first for performance? - if ( queryBuilder != null ) { - queryBuilder = QueryBuilders.boolQuery().must( queryBuilder ).must( QueryBuilders - .termQuery( IndexingUtils.ENTITY_CONTEXT_FIELDNAME, context ) ); - } + - //nothing was specified ensure we specify the context in the search - else { - queryBuilder = QueryBuilders.termQuery( IndexingUtils.ENTITY_CONTEXT_FIELDNAME, context ); - } ++ level = q.level; + - return queryBuilder; } @@@ -235,7 -317,8 +243,6 @@@ Boolean reversed = ListUtils.firstBoolean( params.get( "reversed" ) ); String connection = ListUtils.first( params.get( "connectionType" ) ); UUID start = ListUtils.firstUuid( params.get( "start" ) ); -- String cursor = ListUtils.first( params.get( "cursor" ) ); - Integer limit = ListUtils.firstInteger( params.get( "limit" ) ); List<String> permissions = params.get( "permission" ); Long startTime = ListUtils.firstLong( params.get( "start_time" ) ); Long finishTime = ListUtils.firstLong( params.get( "end_time" ) );
