You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/08/13 22:21:54 UTC
[05/41] tinkerpop git commit: TINKERPOP-1878 sparql() step works over
remoting
TINKERPOP-1878 sparql() step works over remoting
At this point it is only tested to work with Gryo 3.0. Fixed a bug with how dynamic gryo registrations work - they failed if you didn't have a specific serializer specified. Introduced a bit of a hack to make SparqlTraversalSource behave like a GraphTraversalSource and thus more cleanly follow the DSL pattern. Not sure if that's a great approach yet or not, but it seems harmless at this point.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/69c21a19
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/69c21a19
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/69c21a19
Branch: refs/heads/master
Commit: 69c21a199cc4dfcd232f0b28dcaacbebfe711653
Parents: 7dcfd7e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Jan 25 17:00:54 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Aug 13 14:38:20 2018 -0400
----------------------------------------------------------------------
.../apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java | 5 ++++-
sparql-gremlin/pom.xml | 4 ----
.../process/traversal/dsl/sparql/SparqlTraversalSource.java | 3 +++
.../sparql/process/traversal/strategy/SparqlStrategy.java | 5 +++--
4 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69c21a19/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
index 6d55704..fa7347c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
@@ -404,6 +404,9 @@ public enum GryoVersion {
"org.apache.tinkerpop.gremlin.driver.ser.RequestMessageGryoSerializer", 167);
tryAddDynamicType(this, "org.apache.tinkerpop.gremlin.driver.message.ResponseMessage",
"org.apache.tinkerpop.gremlin.driver.ser.ResponseMessageGryoSerializer", 169);
+
+ tryAddDynamicType(this, "org.apache.tinkerpop.gremlin.sparql.process.traversal.strategy.SparqlStrategy",
+ null, 1690);
}};
}
@@ -593,7 +596,7 @@ public enum GryoVersion {
final String serializer, final int registrationId) {
try {
final Class typeClass = Class.forName(type);
- final Optional<SerializerShim<?>> serializerInstance = Optional.of(serializer)
+ final Optional<SerializerShim<?>> serializerInstance = Optional.ofNullable(serializer)
.map(FunctionUtils.wrapFunction(Class::forName))
.map(FunctionUtils.wrapFunction(c -> (SerializerShim<?>) c.getConstructor().newInstance()));
if (serializerInstance.isPresent()) {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69c21a19/sparql-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/sparql-gremlin/pom.xml b/sparql-gremlin/pom.xml
index 0dceb85..0e3da38 100644
--- a/sparql-gremlin/pom.xml
+++ b/sparql-gremlin/pom.xml
@@ -11,10 +11,6 @@
<artifactId>sparql-gremlin</artifactId>
<name>Apache TinkerPop :: SPARQL Gremlin</name>
- <properties>
- <query.dir>src/test/resources/sparql/queries</query.dir>
- </properties>
-
<dependencies>
<dependency>
<groupId>org.apache.jena</groupId>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69c21a19/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
----------------------------------------------------------------------
diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
index b156ed1..3889d95 100644
--- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
+++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectStep;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Transaction;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
@@ -123,8 +124,10 @@ public class SparqlTraversalSource implements TraversalSource {
*/
public <S> SparqlTraversal<S,String> sparql(final String query) {
final SparqlTraversalSource clone = this.clone();
+ clone.bytecode.addStep(GraphTraversal.Symbols.inject);
clone.bytecode.addStep(GraphTraversal.Symbols.constant, query);
final SparqlTraversal.Admin<S, S> traversal = new DefaultSparqlTraversal<>(clone);
+ traversal.addStep(new InjectStep<S>(traversal));
return traversal.addStep(new ConstantStep<S,String>(traversal, query));
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69c21a19/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java
----------------------------------------------------------------------
diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java
index bb0b326..d74ac3e 100644
--- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java
+++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java
@@ -19,6 +19,7 @@
package org.apache.tinkerpop.gremlin.sparql.process.traversal.strategy;
import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.strategy.decoration.RemoteStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantStep;
@@ -44,7 +45,7 @@ public class SparqlStrategy extends AbstractTraversalStrategy<TraversalStrategy.
implements TraversalStrategy.DecorationStrategy {
private static final SparqlStrategy INSTANCE = new SparqlStrategy();
- private static final Set<Class<? extends DecorationStrategy>> POSTS = Collections.singleton(VertexProgramStrategy.class);
+ private static final Set<Class<? extends DecorationStrategy>> POSTS = Collections.singleton(RemoteStrategy.class);
private SparqlStrategy() {}
@@ -63,7 +64,7 @@ public class SparqlStrategy extends AbstractTraversalStrategy<TraversalStrategy.
if (!(traversal.getParent() instanceof EmptyStep))
return;
- if (traversal.getSteps().size() == 1 && traversal.getEndStep() instanceof ConstantStep) {
+ if (traversal.getSteps().size() == 2 && traversal.getEndStep() instanceof ConstantStep) {
final ConstantStep stepWithSparql = (ConstantStep) traversal.getEndStep();
final Object constant = stepWithSparql.getConstant();
if (constant instanceof String) {