You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 00:51:41 UTC

[22/35] usergrid git commit: Make CollectionIterator tool use graph manager.

Make CollectionIterator tool use graph manager.


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

Branch: refs/heads/master
Commit: 7408f3d56a05d57e62964eaa391146603a8099d5
Parents: 620e837
Author: Michael Russo <mr...@apigee.com>
Authored: Tue Aug 30 16:05:51 2016 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Tue Aug 30 16:05:51 2016 -0700

----------------------------------------------------------------------
 .../usergrid/tools/CollectionIterator.java      | 40 +++++++-------------
 1 file changed, 14 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/7408f3d5/stack/tools/src/main/java/org/apache/usergrid/tools/CollectionIterator.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/CollectionIterator.java b/stack/tools/src/main/java/org/apache/usergrid/tools/CollectionIterator.java
index 958f03d..bec844b 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/CollectionIterator.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/CollectionIterator.java
@@ -24,6 +24,7 @@ import java.util.*;
 import com.google.common.base.Optional;
 import com.netflix.astyanax.MutationBatch;
 import org.apache.usergrid.corepersistence.pipeline.read.ResultsPage;
+import org.apache.usergrid.corepersistence.results.EntityQueryExecutor;
 import org.apache.usergrid.corepersistence.results.IdQueryExecutor;
 import org.apache.usergrid.corepersistence.service.CollectionSearch;
 import org.apache.usergrid.corepersistence.service.CollectionService;
@@ -31,13 +32,14 @@ import org.apache.usergrid.corepersistence.util.CpNamingUtils;
 import org.apache.usergrid.persistence.*;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
-import org.apache.usergrid.persistence.graph.Edge;
-import org.apache.usergrid.persistence.graph.MarkedEdge;
+import org.apache.usergrid.persistence.graph.*;
 import org.apache.usergrid.persistence.graph.impl.SimpleEdge;
 import org.apache.usergrid.persistence.graph.impl.SimpleMarkedEdge;
+import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
 import org.apache.usergrid.persistence.graph.serialization.EdgeSerialization;
 import org.apache.usergrid.persistence.index.utils.UUIDUtils;
 import org.apache.usergrid.persistence.model.entity.*;
+import org.apache.usergrid.persistence.model.entity.Entity;
 import org.apache.usergrid.persistence.schema.CollectionInfo;
 import org.apache.usergrid.utils.InflectionUtils;
 import static org.apache.commons.lang.StringUtils.isBlank;
@@ -212,29 +214,18 @@ public class CollectionIterator extends ToolBase {
 
         CollectionInfo collection = getDefaultSchema().getCollection(headEntity.getType(), collectionName);
 
+        GraphManagerFactory gmf = injector.getInstance( GraphManagerFactory.class );
+        GraphManager gm = gmf.createEdgeManager(applicationScope);
 
-        IdQueryExecutor idQueryExecutor = new IdQueryExecutor(query.getCursor()) {
-            @Override
-            protected rx.Observable<ResultsPage<Id>> buildNewResultsPage(
-                final Optional<String> cursor) {
 
-                final CollectionSearch search =
-                    new CollectionSearch(new ApplicationScopeImpl(new SimpleId(app, "application")), new SimpleId(app, "application"), collectionName, collection.getType(), query.getLimit(),
-                        queryString, cursor);
+        final SimpleSearchByEdgeType search =
+            new SimpleSearchByEdgeType( applicationScopeId, simpleEdgeType, Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING,
+                Optional.absent(), false );
 
-                return collectionService.searchCollectionIds(search);
-            }
-        };
-
-        while ( idQueryExecutor.hasNext() ){
-
-            Results results = idQueryExecutor.next();
-
-            List<UUID> ids = results.getIds();
+        gm.loadEdgesFromSource(search).map(markedEdge -> {
 
-            ids.forEach( uuid -> {
-
-                try {
+            UUID uuid = markedEdge.getTargetNode().getUuid();
+            try {
                     EntityRef entityRef = new SimpleEntityRef(entityType, uuid);
                     org.apache.usergrid.persistence.Entity retrieved = em.get(entityRef);
 
@@ -257,8 +248,6 @@ public class CollectionIterator extends ToolBase {
                             try {
                                 //em.removeItemFromCollection(headEntity, collectionName, entityRef );
                                 logger.info("entityRef.asId(): {}", entityRef.asId());
-                                Edge edge = new SimpleEdge(applicationScopeId, simpleEdgeType, entityRef.asId(), timestamp);
-                                MarkedEdge markedEdge = new SimpleMarkedEdge(edge, true);
                                 MutationBatch batch = edgeSerialization.deleteEdge(applicationScope, markedEdge, UUIDUtils.newTimeUUID());
                                 logger.info("BATCH: {}", batch);
                                 batch.execute();
@@ -276,10 +265,9 @@ public class CollectionIterator extends ToolBase {
                 }
 
 
-            });
-
-        }
 
+           return markedEdge;
+        }).toBlocking().last();
 
     }
 }