You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2016/01/05 23:54:42 UTC

[10/50] incubator-tinkerpop git commit: Initial development to track open graph instances in the tests.

Initial development to track open graph instances in the tests.

Neo4j is currently not passing


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/947d192e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/947d192e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/947d192e

Branch: refs/heads/TINKERPOP-1033
Commit: 947d192e682fb1a3c9470c87bed8b4cebf69a60e
Parents: 0926604
Author: Nghia Tran <ng...@gmail.com>
Authored: Sun Dec 6 17:25:34 2015 -0500
Committer: Nghia Tran <ng...@gmail.com>
Committed: Mon Dec 21 17:01:34 2015 -0500

----------------------------------------------------------------------
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |   3 +
 .../apache/tinkerpop/gremlin/GraphManager.java  | 102 ++++++++++++++++++-
 2 files changed, 104 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/947d192e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
index ebf804b..e859208 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
@@ -133,6 +133,9 @@ public abstract class AbstractGremlinTest {
     public void tearDown() throws Exception {
         if (null != graphProvider) {
             graphProvider.clear(graph, config);
+            if(graphProvider instanceof GraphManager.ManagedGraphProvider)
+                ((GraphManager.ManagedGraphProvider)graphProvider).tryCloseGraphs();
+
             g = null;
             config = null;
             graphProvider = null;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/947d192e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphManager.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphManager.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphManager.java
index 4b3c98c..23f5c8e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphManager.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphManager.java
@@ -18,7 +18,17 @@
  */
 package org.apache.tinkerpop.gremlin;
 
+import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
+import org.apache.tinkerpop.gremlin.structure.Element;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Holds objects specified by the test suites supplying them in a static manner to the test cases.
@@ -36,7 +46,7 @@ public class GraphManager {
     }
 
     public static GraphProvider getGraphProvider() {
-        return graphProvider;
+        return new ManagedGraphProvider(graphProvider);
     }
 
     public static TraversalEngine.Type setTraversalEngineType(final TraversalEngine.Type traversalEngine) {
@@ -48,4 +58,94 @@ public class GraphManager {
     public static TraversalEngine.Type getTraversalEngineType() {
         return traversalEngineType;
     }
+
+    public static class ManagedGraphProvider implements GraphProvider {
+        private final GraphProvider innerGraphProvider;
+        private final List<Graph> openGraphs = new ArrayList<>();
+
+        public ManagedGraphProvider(final GraphProvider innerGraphProvider){
+            this.innerGraphProvider = innerGraphProvider;
+        }
+
+        public void tryCloseGraphs(){
+            for(Graph graph : openGraphs) {
+                try {
+                    graph.close();
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+        }
+
+        @Override
+        public GraphTraversalSource traversal(final Graph graph) {
+            return innerGraphProvider.traversal(graph);
+        }
+
+        @Override
+        public GraphTraversalSource traversal(final Graph graph, final TraversalStrategy... strategies) {
+            return innerGraphProvider.traversal(graph, strategies);
+        }
+
+        @Override
+        public Graph standardTestGraph(final Class<?> test, final String testMethodName, final LoadGraphWith.GraphData loadGraphWith) {
+            final Graph graph = innerGraphProvider.standardTestGraph(test, testMethodName, loadGraphWith);
+            openGraphs.add(graph);
+            return graph;
+        }
+
+        @Override
+        public Graph openTestGraph(final Configuration config) {
+            final Graph graph = innerGraphProvider.openTestGraph(config);
+            openGraphs.add(graph);
+            return graph;
+        }
+
+        @Override
+        public Configuration standardGraphConfiguration(final Class<?> test, final String testMethodName, final LoadGraphWith.GraphData loadGraphWith) {
+            return innerGraphProvider.standardGraphConfiguration(test, testMethodName, loadGraphWith);
+        }
+
+        @Override
+        public void clear(final Configuration configuration) throws Exception {
+            innerGraphProvider.clear(configuration);
+        }
+
+        @Override
+        public void clear(final Graph graph, final Configuration configuration) throws Exception {
+            innerGraphProvider.clear(graph, configuration);
+        }
+
+        @Override
+        public Object convertId(final Object id, final Class<? extends Element> c) {
+            return innerGraphProvider.convertId(id, c);
+        }
+
+        @Override
+        public String convertLabel(final String label) {
+            return innerGraphProvider.convertLabel(label);
+        }
+
+        @Override
+        public Configuration newGraphConfiguration(final String graphName, final Class<?> test, final String testMethodName,
+                                                   final Map<String, Object> configurationOverrides, final LoadGraphWith.GraphData loadGraphWith) {
+            return innerGraphProvider.newGraphConfiguration(graphName, test, testMethodName, configurationOverrides, loadGraphWith);
+        }
+
+        @Override
+        public Configuration newGraphConfiguration(final String graphName, final Class<?> test, final String testMethodName,final LoadGraphWith.GraphData loadGraphWith) {
+            return innerGraphProvider.newGraphConfiguration(graphName, test, testMethodName, loadGraphWith);
+        }
+
+        @Override
+        public void loadGraphData(final Graph graph, final LoadGraphWith loadGraphWith, final Class testClass, final String testName) {
+            innerGraphProvider.loadGraphData(graph, loadGraphWith, testClass, testName);
+        }
+
+        @Override
+        public Set<Class> getImplementations() {
+            return innerGraphProvider.getImplementations();
+        }
+    }
+
 }