You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2016/06/14 17:14:50 UTC
[11/44] usergrid git commit: Test for doubly nested field,
plus some formatting changes.
Test for doubly nested field, plus some formatting changes.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/0b416203
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/0b416203
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/0b416203
Branch: refs/heads/usergrid-1268-akka-211
Commit: 0b4162035ee7d54199bd2250c2b3ac31354516b1
Parents: 3eec8e5
Author: Dave Johnson <sn...@apache.org>
Authored: Thu May 19 08:57:42 2016 -0400
Committer: Dave Johnson <sn...@apache.org>
Committed: Thu May 19 08:57:42 2016 -0400
----------------------------------------------------------------------
.../read/search/CandidateEntityFilter.java | 16 +++++++-----
.../apache/usergrid/persistence/IndexIT.java | 27 +++++++++++++++-----
2 files changed, 30 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/0b416203/stack/core/src/main/java/org/apache/usergrid/corepersistence/pipeline/read/search/CandidateEntityFilter.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/pipeline/read/search/CandidateEntityFilter.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/pipeline/read/search/CandidateEntityFilter.java
index 261259b..e02e6c7 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/pipeline/read/search/CandidateEntityFilter.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/pipeline/read/search/CandidateEntityFilter.java
@@ -52,9 +52,9 @@ import rx.Observable;
/**
- * Loads entities from an incoming CandidateResult emissions into entities, then streams them on
- * performs internal buffering for efficiency. Note that all entities may not be emitted if our load crosses page boundaries. It is up to the
- * collector to determine when to stop streaming entities.
+ * Loads entities from an incoming CandidateResult emissions into entities, then streams them on performs internal
+ * buffering for efficiency. Note that all entities may not be emitted if our load crosses page boundaries.
+ * It is up to the collector to determine when to stop streaming entities.
*/
public class CandidateEntityFilter extends AbstractFilter<FilterResult<Candidate>, FilterResult<Entity>> {
@@ -93,11 +93,12 @@ public class CandidateEntityFilter extends AbstractFilter<FilterResult<Candidate
entityCollectionManagerFactory.createCollectionManager( applicationScope );
- final EntityIndex applicationIndex =
- entityIndexFactory.createEntityIndex(indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope) );
+ final EntityIndex applicationIndex = entityIndexFactory
+ .createEntityIndex(indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope) );
//buffer them to get a page size we can make 1 network hop
- final Observable<FilterResult<Entity>> searchIdSetObservable = candidateResultsObservable.buffer( pipelineContext.getLimit() )
+ final Observable<FilterResult<Entity>> searchIdSetObservable =
+ candidateResultsObservable.buffer( pipelineContext.getLimit() )
//load them
.flatMap( candidateResults -> {
@@ -198,7 +199,8 @@ public class CandidateEntityFilter extends AbstractFilter<FilterResult<Candidate
/**
- * Our collector to collect entities. Not quite a true collector, but works within our operational flow as this state is mutable and difficult to represent functionally
+ * Our collector to collect entities. Not quite a true collector, but works within our operational
+ * flow as this state is mutable and difficult to represent functionally
*/
private static final class EntityVerifier {
http://git-wip-us.apache.org/repos/asf/usergrid/blob/0b416203/stack/core/src/test/java/org/apache/usergrid/persistence/IndexIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/IndexIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/IndexIT.java
index 3b9f95a..aaf4c33 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/IndexIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/IndexIT.java
@@ -477,6 +477,10 @@ public class IndexIT extends AbstractCoreIT {
put("xfactor", 5.1);
put("rando", "bar");
put("mondo", "2000");
+ put("frosting", "chocolate");
+ put("misc", new HashMap() {{
+ put("range", "open");
+ }});
}});
}};
em.create("names", entity1);
@@ -488,12 +492,17 @@ public class IndexIT extends AbstractCoreIT {
put("xfactor", 5.1);
put("rando", "bar");
put("mondo", "2001");
+ put("frosting", "orange");
+ put("misc", new HashMap() {{
+ put("range", "open");
+ }});
}});
}};
em.create("names", entity2);
app.refreshIndex();
+ // simple single-field select mapping
{
Query query = Query.fromQL("select status where status = 'pickled'");
Results r = em.searchCollection( em.getApplicationRef(), "names", query );
@@ -502,6 +511,7 @@ public class IndexIT extends AbstractCoreIT {
assertTrue(first.getDynamicProperties().size() == 2);
}
+ // simple single-field plus nested field select mapping
{
Query query = Query.fromQL( "select status, data.rando where data.rando = 'bar'" );
Results r = em.searchCollection( em.getApplicationRef(), "names", query );
@@ -518,23 +528,28 @@ public class IndexIT extends AbstractCoreIT {
assertTrue( first.getDynamicProperties().size() == 3 );
}
+ // multiple nested fields with one doubly-nesed field
{
- // query for only one bogus field name should return empty entities
- Query query = Query.fromQL( "select data.rando,data.mondo where status = 'pickled'" );
+ Query query = Query.fromQL( "select data.rando, data.mondo, data.misc.range where status = 'pickled'" );
Results r = em.searchCollection( em.getApplicationRef(), "names", query );
assertTrue( r.getEntities() != null && r.getEntities().size() == 2 );
Entity first = r.getEntities().get( 0 );
- assertNotNull( first.getProperty("data") );
- assertEquals( ((Map<String, Object>)first.getProperty("data")).get("rando"), "bar" );
- assertEquals( ((Map<String, Object>)first.getProperty("data")).get("mondo"), "2001" );
+ Map<String, Object> data = ((Map<String, Object>)first.getProperty("data"));
+ assertNotNull( data );
+ assertEquals( data.get("rando"), "bar" );
+ assertEquals( data.get("mondo"), "2001" );
+ assertNull( data.get("frosting") );
+
+ Map<String, Object> misc = (Map<String, Object>)data.get("misc");
+ assertEquals( misc.get("range"), "open" );
assertTrue( first.getDynamicProperties().size() == 2 );
}
+ // query for one bogus field name should return empty entities
{
- // query for only one bogus field name should return empty entities
Query query = Query.fromQL( "select data.bogusfieldname where status = 'pickled'" );
Results r = em.searchCollection( em.getApplicationRef(), "names", query );
assertTrue( r.getEntities() != null && r.getEntities().size() == 2 );