Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-1278 292f02439 -> c34fe9fc2
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java index fb1fb73..0ef2bb2 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java @@ -18,6 +18,7 @@ */ package org.apache.tinkerpop.gremlin.process.traversal.lambda; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects; @@ -48,6 +49,10 @@ public abstract class AbstractLambdaTraversal<S, E> implements Traversal.Admin<S return Collections.emptyList(); } + public ByteCode getByteCode() { + return new ByteCode(); + } + @Override public void reset() { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java index 576e8f9..84c5ca8 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java @@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal; +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.lambda.ElementValueTraversal; import org.apache.tinkerpop.gremlin.process.traversal.lambda.FunctionTraverser; import org.apache.tinkerpop.gremlin.process.traversal.lambda.IdentityTraversal; @@ -65,7 +66,7 @@ public final class GroupStep<S, K, V> extends ReducingBarrierStep<S, Map<K, V>> public GroupStep(final Traversal.Admin traversal) { super(traversal); - this.valueTraversal = this.integrateChild(new DefaultGraphTraversal<>().fold().asAdmin()); + this.valueTraversal = this.integrateChild(__.fold().asAdmin()); this.preTraversal = this.integrateChild(generatePreTraversal(this.valueTraversal)); this.setReducingBiOperator(new GroupBiOperator<>(this.valueTraversal)); this.setSeedSupplier(HashMapSupplier.instance()); @@ -323,7 +324,7 @@ public final class GroupStep<S, K, V> extends ReducingBarrierStep<S, Map<K, V>> valueTraversal instanceof TokenTraversal || valueTraversal instanceof IdentityTraversal || valueTraversal.getStartStep() instanceof LambdaMapStep && ((LambdaMapStep) valueTraversal.getStartStep()).getMapFunction() instanceof FunctionTraverser) { - return (Traversal.Admin<S, E>) new DefaultGraphTraversal<>().map(valueTraversal).fold(); + return (Traversal.Admin<S, E>) __.map(valueTraversal).fold(); } else { return valueTraversal; } @@ -332,7 +333,7 @@ public final class GroupStep<S, K, V> extends ReducingBarrierStep<S, Map<K, V>> public static Traversal.Admin<?, ?> generatePreTraversal(final Traversal.Admin<?, ?> valueTraversal) { if (!TraversalHelper.hasStepOfAssignableClass(Barrier.class, valueTraversal)) return valueTraversal; - final Traversal.Admin<?, ?> first = new DefaultGraphTraversal<>().identity().asAdmin(); + final Traversal.Admin<?, ?> first = __.identity().asAdmin(); for (final Step step : valueTraversal.getSteps()) { if (step instanceof Barrier) break; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java index 7ca1123..bc9a91b 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/creation/TranslationStrategy.java @@ -21,11 +21,10 @@ package org.apache.tinkerpop.gremlin.process.traversal.strategy.creation; import org.apache.tinkerpop.gremlin.process.remote.RemoteGraph; import org.apache.tinkerpop.gremlin.process.traversal.Step; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; -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.StepTranslator; import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep; import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy; import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; @@ -34,8 +33,6 @@ import org.apache.tinkerpop.gremlin.util.ScriptEngineCache; import javax.script.Bindings; import javax.script.ScriptContext; import javax.script.ScriptEngine; -import java.lang.reflect.InvocationTargetException; -import java.util.function.Function; /** * @author Marko A. Rodriguez (http://markorodriguez.com) @@ -43,13 +40,11 @@ import java.util.function.Function; public class TranslationStrategy extends AbstractTraversalStrategy<TraversalStrategy.CreationStrategy> implements TraversalStrategy.CreationStrategy { private final TraversalSource traversalSource; - private final Class anonymousTraversalClass; + private final Translator translator; - - public TranslationStrategy(final TraversalSource traversalSource, final Class anonymousTraversalClass) { + public TranslationStrategy(final TraversalSource traversalSource, final Translator translator) { this.traversalSource = traversalSource; - this.anonymousTraversalClass = anonymousTraversalClass; - this.createAnonymousTraversalFunction(); + this.translator = translator; } @Override @@ -57,21 +52,16 @@ public class TranslationStrategy extends AbstractTraversalStrategy<TraversalStra if (!(traversal.getParent() instanceof EmptyStep)) return; try { - // reset __ back to default - this.destroyAnonymousTraversalFunction(); - // if the graph is RemoteGraph, RemoteStrategy will send the traversal if (traversal.getGraph().isPresent() && traversal.getGraph().get() instanceof RemoteGraph) return; // translate the traversal and add its steps to this traversal - final ScriptEngine scriptEngine = ScriptEngineCache.get(traversal.getStrategies().getTranslator().getTargetLanguage()); + final ScriptEngine scriptEngine = ScriptEngineCache.get(this.translator.getTargetLanguage()); final Bindings bindings = scriptEngine.createBindings(); scriptEngine.getContext().getBindings(ScriptContext.ENGINE_SCOPE).forEach(bindings::put); - final TraversalSource clone = this.traversalSource.clone(); - clone.getStrategies().setTranslator(new StepTranslator()); - bindings.put(traversal.getStrategies().getTranslator().getAlias(), clone); - final Traversal.Admin<?, ?> translatedTraversal = (Traversal.Admin<?, ?>) scriptEngine.eval(traversal.getStrategies().getTranslator().getTraversalScript(), bindings); + bindings.put(this.translator.getAlias(), this.traversalSource); + final Traversal.Admin<?, ?> translatedTraversal = (Traversal.Admin<?, ?>) scriptEngine.eval(this.translator.translate(traversal.getByteCode()).toString(), bindings); assert !translatedTraversal.isLocked(); assert !traversal.isLocked(); traversal.setSideEffects(translatedTraversal.getSideEffects()); @@ -87,33 +77,8 @@ public class TranslationStrategy extends AbstractTraversalStrategy<TraversalStra return this.traversalSource; } - private void createAnonymousTraversalFunction() { - if (null != this.anonymousTraversalClass) { - final Function<? extends Traversal.Admin, ? extends Traversal.Admin> function = traversal -> { - try { - TraversalStrategies clone = traversal.getStrategies().clone(); - clone.setTranslator(this.traversalSource.getStrategies().getTranslator().getAnonymousTraversalTranslator()); - traversal.setStrategies(clone); - return traversal; - } catch (final Exception e) { - throw new IllegalStateException(e.getMessage(), e); - } - }; - try { - this.anonymousTraversalClass.getMethod(TraversalSource.SET_ANONYMOUS_TRAVERSAL_FUNCTION, Function.class).invoke(null, function); - } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { - throw new IllegalStateException(e.getMessage(), e); - } - } + public Translator getTranslator() { + return this.translator; } - private void destroyAnonymousTraversalFunction() { - if (null != this.anonymousTraversalClass) { - try { - this.anonymousTraversalClass.getMethod(TraversalSource.SET_ANONYMOUS_TRAVERSAL_FUNCTION, Function.class).invoke(null, (Function) null); - } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { - throw new IllegalStateException(e.getMessage(), e); - } - } - } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java index fe24dee..1aa8c02 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java @@ -18,9 +18,11 @@ */ package org.apache.tinkerpop.gremlin.process.traversal.util; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects; +import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.TraverserGenerator; @@ -59,16 +61,30 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> { protected transient TraverserGenerator generator; protected Set<TraverserRequirement> requirements; protected boolean locked = false; + protected final ByteCode byteCode; // TODO: perhaps make transient until 3.3.0? - public DefaultTraversal() { - this.graph = null; - // necessary for anonymous traversals without a graph start (rethink how this works in the future) - this.setStrategies(TraversalStrategies.GlobalCache.getStrategies(EmptyGraph.class)); + + private DefaultTraversal(final Graph graph, final TraversalStrategies traversalStrategies, final ByteCode byteCode) { + this.graph = graph; + this.strategies = traversalStrategies; + this.byteCode = byteCode; } public DefaultTraversal(final Graph graph) { - this.graph = graph; - this.setStrategies(TraversalStrategies.GlobalCache.getStrategies(this.graph.getClass())); + this(graph, TraversalStrategies.GlobalCache.getStrategies(graph.getClass()), new ByteCode()); + } + + public DefaultTraversal(final TraversalSource traversalSource) { + this(traversalSource.getGraph(), traversalSource.getStrategies(), traversalSource.getByteCode()); + } + + public DefaultTraversal() { + this(EmptyGraph.instance(), TraversalStrategies.GlobalCache.getStrategies(EmptyGraph.class), new ByteCode()); + } + + @Override + public ByteCode getByteCode() { + return this.byteCode; } @Override http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalStrategies.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalStrategies.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalStrategies.java index 830b887..464b4b9 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalStrategies.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalStrategies.java @@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; 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.StepTranslator; import org.apache.tinkerpop.gremlin.structure.util.StringFactory; import java.util.ArrayList; @@ -35,7 +36,6 @@ import java.util.Optional; public class DefaultTraversalStrategies implements TraversalStrategies { protected List<TraversalStrategy<?>> traversalStrategies = new ArrayList<>(); - protected Translator translator = EmptyTranslator.instance(); @Override @SuppressWarnings({"unchecked", "varargs"}) @@ -72,16 +72,6 @@ public class DefaultTraversalStrategies implements TraversalStrategies { } @Override - public void setTranslator(final Translator translator) { - this.translator = translator; - } - - @Override - public Translator getTranslator() { - return this.translator; - } - - @Override public List<TraversalStrategy<?>> toList() { return Collections.unmodifiableList(this.traversalStrategies); } @@ -108,7 +98,6 @@ public class DefaultTraversalStrategies implements TraversalStrategies { final DefaultTraversalStrategies clone = (DefaultTraversalStrategies) super.clone(); clone.traversalStrategies = new ArrayList<>(this.traversalStrategies.size()); clone.traversalStrategies.addAll(this.traversalStrategies); - clone.translator = this.translator.clone(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTranslator.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTranslator.java deleted file mode 100644 index 20ce2e0..0000000 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTranslator.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tinkerpop.gremlin.process.traversal.util; - -import org.apache.tinkerpop.gremlin.process.traversal.Translator; -import org.apache.tinkerpop.gremlin.process.traversal.Traversal; -import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; - -/** - * @author Marko A. Rodriguez (http://markorodriguez.com) - */ -public final class EmptyTranslator implements Translator<Traversal.Admin<?, ?>, TraversalSource> { - - private static final EmptyTranslator INSTANCE = new EmptyTranslator(); - - private EmptyTranslator() { - // instance only - } - - @Override - public String getAlias() { - return ""; - } - - @Override - public Traversal.Admin<?, ?> addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) { - return traversal; - } - - @Override - public Traversal.Admin<?, ?> addSpawnStep(TraversalSource traversalSource, String stepName, Object... arguments) { - return EmptyTraversal.instance(); - } - - @Override - public TraversalSource addSource(TraversalSource traversalSource, String sourceName, Object... arguments) { - return traversalSource; - } - - @Override - public Translator getAnonymousTraversalTranslator() { - return EmptyTranslator.INSTANCE; - } - - @Override - public String getTraversalScript() { - return ""; - } - - @Override - public Translator clone() { - return this; - } - - @Override - public String getSourceLanguage() { - return "none"; - } - - @Override - public String getTargetLanguage() { - return "none"; - } - - public static final EmptyTranslator instance() { - return INSTANCE; - } -} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java index a9ba7ab..e7af57c 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java @@ -18,6 +18,7 @@ */ package org.apache.tinkerpop.gremlin.process.traversal.util; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects; @@ -52,6 +53,10 @@ public final class EmptyTraversal<S, E> implements Traversal.Admin<S, E> { } + public ByteCode getByteCode() { + return new ByteCode(); + } + @Override public Traversal.Admin<S, E> asAdmin() { return this; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversalStrategies.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversalStrategies.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversalStrategies.java index 734fd20..127df4d 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversalStrategies.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversalStrategies.java @@ -44,16 +44,6 @@ public final class EmptyTraversalStrategies implements TraversalStrategies { } @Override - public Translator getTranslator() { - return null; - } - - @Override - public void setTranslator(Translator translator) { - - } - - @Override public void applyStrategies(final Traversal.Admin<?, ?> traversal) { } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java index 4d8fe06..c590d18 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java @@ -58,16 +58,16 @@ public final class ScriptTraversal<S, E> extends DefaultTraversal<S, E> { throw new IllegalArgumentException("The provided key/value bindings array length must be a multiple of two"); } - public ScriptTraversal(final TranslationStrategy translationStrategy, final Object... bindings) { + public ScriptTraversal(final Traversal traversal, TranslationStrategy translationStrategy, final Object... bindings) { super(); - final Translator translator = translationStrategy.getTraversalSource().getStrategies().getTranslator(); - final TraversalSource traversalSource = translationStrategy.getTraversalSource().withoutStrategies(TranslationStrategy.class, RemoteStrategy.class); + final Translator translator = translationStrategy.getTranslator(); + final TraversalSource traversalSource = translationStrategy.getTraversalSource().clone().withoutStrategies(TranslationStrategy.class, RemoteStrategy.class); // this.alias = translator.getAlias(); this.graph = traversalSource.getGraph(); this.factory = new TraversalSourceFactory<>(traversalSource); this.scriptEngine = translator.getTargetLanguage(); - this.script = translator.getTraversalScript(); + this.script = translator.translate(traversal.asAdmin().getByteCode()).toString(); this.bindings = bindings; if (this.bindings.length % 2 != 0) throw new IllegalArgumentException("The provided key/value bindings array length must be a multiple of two"); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java index c0bf933..4fc26f8 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/StringFactory.java @@ -24,14 +24,14 @@ import org.apache.tinkerpop.gremlin.process.computer.GraphComputer; import org.apache.tinkerpop.gremlin.process.computer.MapReduce; import org.apache.tinkerpop.gremlin.process.computer.Memory; import org.apache.tinkerpop.gremlin.process.computer.VertexProgram; +import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy; import org.apache.tinkerpop.gremlin.process.traversal.Step; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies; import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy; -import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalRing; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Graph; @@ -179,7 +179,7 @@ public final class StringFactory { } public static String translatorString(final Translator translator) { - return "translator[" + translator.getAlias() + ":" + translator.getSourceLanguage() + "->" + translator.getTargetLanguage() + "]"; + return "translator[" + translator.getSourceLanguage() + "->" + translator.getTargetLanguage() + "]"; } public static String vertexProgramString(final VertexProgram vertexProgram, final String internalString) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/GroovyTranslatorTest.java ---------------------------------------------------------------------- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/GroovyTranslatorTest.java index 14f75bb..3fa8792 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/GroovyTranslatorTest.java @@ -83,6 +83,6 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { @Test public void shouldHaveValidToString() { - assertEquals("translator[h:gremlin-java->gremlin-groovy]", GroovyTranslator.of("h").toString()); + assertEquals("translator[gremlin-java->gremlin-groovy]", GroovyTranslator.of("h").toString()); } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java ---------------------------------------------------------------------- diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java index e8f6ba0..2fd13ee 100644 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/java/translator/GroovyTranslator.java @@ -20,12 +20,11 @@ package org.apache.tinkerpop.gremlin.java.translator; import org.apache.tinkerpop.gremlin.process.computer.Computer; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.process.traversal.P; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; -import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; -import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.VerificationException; import org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP; import org.apache.tinkerpop.gremlin.process.traversal.util.EmptyTraversal; @@ -42,14 +41,12 @@ import java.util.List; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ -public final class GroovyTranslator implements Translator<Traversal.Admin<?, ?>, TraversalSource> { +public final class GroovyTranslator implements Translator<String> { - private StringBuilder traversalScript; private final String alias; private GroovyTranslator(final String alias) { this.alias = alias; - this.traversalScript = new StringBuilder(this.alias); } public static final GroovyTranslator of(final String alias) { @@ -57,6 +54,30 @@ public final class GroovyTranslator implements Translator<Traversal.Admin<?, ?>, } @Override + public String translate(final ByteCode byteCode) { + final StringBuilder traversalScript = new StringBuilder(this.alias); + for (final ByteCode.Instruction instruction : byteCode.getStepInstructions()) { + final String methodName = instruction.getOperator(); + final Object[] arguments = instruction.getArguments(); + final List<Object> objects = TranslatorHelper.flattenArguments(arguments); + if (objects.isEmpty()) + traversalScript.append(".").append(methodName).append("()"); + else { + traversalScript.append("."); + String temp = methodName + "("; + for (final Object object : objects) { + temp = temp + convertToString(object) + ","; + } + traversalScript.append(temp.substring(0, temp.length() - 1) + ")"); + } + } + final String script = traversalScript.toString(); + if (script.contains("$")) + throw new VerificationException("Lambdas are currently not supported: " + script, EmptyTraversal.instance()); + return script; + } + + @Override public String getSourceLanguage() { return "gremlin-java"; } @@ -76,66 +97,6 @@ public final class GroovyTranslator implements Translator<Traversal.Admin<?, ?>, return this.alias; } - private void updateTraversalScript(final String methodName, Object... arguments) { - final List<Object> objects = TranslatorHelper.flattenArguments(arguments); - if (objects.isEmpty()) - this.traversalScript.append(".").append(methodName).append("()"); - else { - this.traversalScript.append("."); - String temp = methodName + "("; - for (final Object object : objects) { - temp = temp + convertToString(object) + ","; - } - this.traversalScript.append(temp.substring(0, temp.length() - 1) + ")"); - } - } - - @Override - public Traversal.Admin<?, ?> addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) { - this.updateTraversalScript(stepName, arguments); - return traversal; - } - - @Override - public Traversal.Admin<?, ?> addSpawnStep(final TraversalSource traversalSource, String stepName, Object... arguments) { - final TraversalSource clone = traversalSource.clone(); - ((GroovyTranslator)clone.getStrategies().getTranslator()).updateTraversalScript(stepName, arguments); - final Traversal.Admin<?, ?> traversal = new DefaultGraphTraversal<>(clone.getGraph()); - traversal.setStrategies(clone.getStrategies()); - return traversal; - } - - @Override - public TraversalSource addSource(final TraversalSource traversalSource, String sourceName, Object... arguments) { - final TraversalSource clone = traversalSource.clone(); - ((GroovyTranslator)clone.getStrategies().getTranslator()).updateTraversalScript(sourceName, arguments); - return clone; - } - - @Override - public Translator getAnonymousTraversalTranslator() { - return new GroovyTranslator("__"); - } - - @Override - public String getTraversalScript() { - final String traversal = this.traversalScript.toString(); - if (traversal.contains("$")) - throw new VerificationException("Lambdas are currently not supported: " + traversal, EmptyTraversal.instance()); - return traversal; - } - - @Override - public GroovyTranslator clone() { - try { - final GroovyTranslator clone = (GroovyTranslator) super.clone(); - clone.traversalScript = new StringBuilder(this.traversalScript); - return clone; - } catch (final CloneNotSupportedException e) { - throw new IllegalStateException(e.getMessage(), e); - } - } - /////// private static String convertToString(final Object object) { @@ -173,7 +134,7 @@ public final class GroovyTranslator implements Translator<Traversal.Admin<?, ?>, final String lambdaString = ((Lambda) object).getLambdaScript(); return lambdaString.startsWith("{") ? lambdaString : "{" + lambdaString + "}"; } else if (object instanceof Traversal) - return ((Traversal) object).asAdmin().getStrategies().getTranslator().getTraversalScript(); + return new GroovyTranslator("__").translate(((Traversal.Admin) object).getByteCode()).toString(); // TODO: make a static GroovyTranslator(__) object else return null == object ? "null" : object.toString(); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java ---------------------------------------------------------------------- diff --git a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java index 27972d0..7af5f1d 100644 --- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java +++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslator.java @@ -20,15 +20,13 @@ package org.apache.tinkerpop.gremlin.java.translator; import org.apache.tinkerpop.gremlin.process.computer.Computer; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.process.traversal.Operator; import org.apache.tinkerpop.gremlin.process.traversal.P; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; -import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; -import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.creation.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.VerificationException; import org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP; import org.apache.tinkerpop.gremlin.process.traversal.util.EmptyTraversal; @@ -55,7 +53,7 @@ import java.util.stream.Stream; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ -public class PythonTranslator implements Translator<Traversal.Admin<?, ?>, TraversalSource> { +public class PythonTranslator implements Translator<String> { private static final Set<String> STEP_NAMES = Stream.of(GraphTraversal.class.getMethods()).filter(method -> Traversal.class.isAssignableFrom(method.getReturnType())).map(Method::getName).collect(Collectors.toSet()); private static final Set<String> NO_STATIC = Stream.of(T.values(), Operator.values()) @@ -63,13 +61,11 @@ public class PythonTranslator implements Translator<Traversal.Admin<?, ?>, Trave .map(arg -> ((Enum) arg).name()) .collect(Collectors.toCollection(() -> new HashSet<>(Arrays.asList("not")))); - protected StringBuilder traversalScript; protected String alias; protected final boolean importStatics; protected PythonTranslator(final String alias, final boolean importStatics) { this.alias = alias; - this.traversalScript = new StringBuilder(this.alias); this.importStatics = importStatics; } @@ -87,87 +83,50 @@ public class PythonTranslator implements Translator<Traversal.Admin<?, ?>, Trave } @Override - public String getSourceLanguage() { - return "gremlin-java"; - } - - @Override - public String getTargetLanguage() { - return "jython"; - } - - @Override - public Translator getAnonymousTraversalTranslator() { - return new PythonTranslator("__", this.importStatics); - } - - @Override - public String getTraversalScript() { - final String traversal = this.traversalScript.toString(); - if (traversal.contains("$")) - throw new VerificationException("Lambdas are currently not supported: " + traversal, EmptyTraversal.instance()); - return traversal; - } - - private void updateTraversalScript(final String methodName, final Object... arguments) { - // flatten the arguments into a single array - final List<Object> objects = TranslatorHelper.flattenArguments(arguments); - final int size = objects.size(); - if (0 == size) - this.traversalScript.append(".").append(SymbolHelper.toPython(methodName)).append("()"); - else if (methodName.equals("range") && 2 == size) - this.traversalScript.append("[").append(objects.get(0)).append(":").append(objects.get(1)).append("]"); - else if (methodName.equals("limit") && 1 == size) - this.traversalScript.append("[0:").append(objects.get(0)).append("]"); - else if (methodName.equals("values") && 1 == size && traversalScript.length() > 3 && !STEP_NAMES.contains(objects.get(0).toString())) - this.traversalScript.append(".").append(objects.get(0)); - else { - this.traversalScript.append("."); - String temp = SymbolHelper.toPython(methodName) + "("; - for (final Object object : objects) { - temp = temp + convertToString(object) + ","; + public String translate(final ByteCode byteCode) { + final StringBuilder traversalScript = new StringBuilder(this.alias); + for (final ByteCode.Instruction instruction : byteCode.getStepInstructions()) { + final String methodName = instruction.getOperator(); + final Object[] arguments = instruction.getArguments(); + final List<Object> objects = TranslatorHelper.flattenArguments(arguments); + final int size = objects.size(); + if (0 == size) + traversalScript.append(".").append(SymbolHelper.toPython(methodName)).append("()"); + else if (methodName.equals("range") && 2 == size) + traversalScript.append("[").append(objects.get(0)).append(":").append(objects.get(1)).append("]"); + else if (methodName.equals("limit") && 1 == size) + traversalScript.append("[0:").append(objects.get(0)).append("]"); + else if (methodName.equals("values") && 1 == size && traversalScript.length() > 3 && !STEP_NAMES.contains(objects.get(0).toString())) + traversalScript.append(".").append(objects.get(0)); + else { + traversalScript.append("."); + String temp = SymbolHelper.toPython(methodName) + "("; + for (final Object object : objects) { + temp = temp + convertToString(object) + ","; + } + traversalScript.append(temp.substring(0, temp.length() - 1)).append(")"); } - this.traversalScript.append(temp.substring(0, temp.length() - 1)).append(")"); - } - // clip off __. - if (this.importStatics && this.traversalScript.substring(0, 3).startsWith("__.") - && !NO_STATIC.stream().filter(name -> this.traversalScript.substring(3).startsWith(SymbolHelper.toPython(name))).findAny().isPresent()) { - this.traversalScript.delete(0, 3); + // clip off __. + if (this.importStatics && traversalScript.substring(0, 3).startsWith("__.") + && !NO_STATIC.stream().filter(name -> traversalScript.substring(3).startsWith(SymbolHelper.toPython(name))).findAny().isPresent()) { + traversalScript.delete(0, 3); + } } + final String script = traversalScript.toString(); + if (script.contains("$")) + throw new VerificationException("Lambdas are currently not supported: " + script, EmptyTraversal.instance()); + return script; } @Override - public Traversal.Admin<?, ?> addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) { - this.updateTraversalScript(stepName, arguments); - return traversal; - } - - @Override - public Traversal.Admin<?, ?> addSpawnStep(final TraversalSource traversalSource, String stepName, Object... arguments) { - final TraversalSource clone = traversalSource.clone(); - ((PythonTranslator) clone.getStrategies().getTranslator()).updateTraversalScript(stepName, arguments); - final Traversal.Admin<?, ?> traversal = new DefaultGraphTraversal<>(clone.getGraph()); - traversal.setStrategies(clone.getStrategies()); - return traversal; - } - - @Override - public TraversalSource addSource(final TraversalSource traversalSource, String sourceName, Object... arguments) { - final TraversalSource clone = traversalSource.clone(); - ((PythonTranslator) clone.getStrategies().getTranslator()).updateTraversalScript(sourceName, arguments); - return clone; + public String getSourceLanguage() { + return "gremlin-java"; } @Override - public PythonTranslator clone() { - try { - final PythonTranslator clone = (PythonTranslator) super.clone(); - clone.traversalScript = new StringBuilder(this.traversalScript); - return clone; - } catch (final CloneNotSupportedException e) { - throw new IllegalStateException(e.getMessage(), e); - } + public String getTargetLanguage() { + return "jython"; } @Override @@ -203,7 +162,7 @@ public class PythonTranslator implements Translator<Traversal.Admin<?, ?>, Trave else if (object instanceof Element) return convertToString(((Element) object).id()); // hack else if (object instanceof Traversal) - return ((Traversal) object).asAdmin().getStrategies().getTranslator().getTraversalScript(); + return new PythonTranslator("__", this.importStatics).translate(((Traversal.Admin) object).getByteCode()); else if (object instanceof Computer) { return ""; } else if (object instanceof Lambda) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java index 7f469f5..bbcafda 100644 --- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java +++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/PythonTranslatorProvider.java @@ -74,9 +74,7 @@ public abstract class PythonTranslatorProvider extends AbstractGraphProvider { ProgramTest.Traversals.class.getCanonicalName(), TraversalInterruptionTest.class.getCanonicalName(), TraversalInterruptionComputerTest.class.getCanonicalName(), - ElementIdStrategyProcessTest.class.getCanonicalName(), - EventStrategyProcessTest.class.getCanonicalName(), - PartitionStrategyProcessTest.class.getCanonicalName())); + ElementIdStrategyProcessTest.class.getCanonicalName())); private static final Set<Class> IMPLEMENTATION = new HashSet<Class>() {{ add(TinkerEdge.class); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java index 8486e05..05b5c24 100644 --- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java +++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslator.java @@ -20,6 +20,7 @@ package org.apache.tinkerpop.gremlin.java.translator.groovy; import org.apache.tinkerpop.gremlin.java.translator.PythonTranslator; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.structure.util.StringFactory; @@ -46,18 +47,13 @@ public class PythonGroovyTranslator extends PythonTranslator { return new PythonGroovyTranslator(alias, importStatics); } - @Override + /*@Override public Traversal.Admin<?, ?> addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) { final Traversal.Admin<?, ?> temp = super.addStep(traversal, stepName, arguments); if (!this.importStatics) assert this.traversalScript.toString().startsWith(this.alias + "."); return temp; - } - - @Override - public Translator getAnonymousTraversalTranslator() { - return new PythonGroovyTranslator("__", this.importStatics); - } + }*/ @Override public String getTargetLanguage() { @@ -65,8 +61,8 @@ public class PythonGroovyTranslator extends PythonTranslator { } @Override - public String getTraversalScript() { - final String traversal = super.getTraversalScript(); + public String translate(final ByteCode byteCode) { + final String traversal = super.translate(byteCode); if (!this.alias.equals("__")) { try { final ScriptEngine jythonEngine = ScriptEngineCache.get("jython"); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslatorTest.java ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslatorTest.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslatorTest.java index e6ee06e..c6ede47 100644 --- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslatorTest.java +++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/groovy/PythonGroovyTranslatorTest.java @@ -89,8 +89,8 @@ public class PythonGroovyTranslatorTest { @Test public void shouldHaveValidToString() { - Assert.assertEquals("translator[h:gremlin-java->jython]", PythonTranslator.of("h").toString()); - assertEquals("translator[h:gremlin-java->gremlin-groovy]", PythonGroovyTranslator.of("h").toString()); + Assert.assertEquals("translator[gremlin-java->jython]", PythonTranslator.of("h").toString()); + assertEquals("translator[gremlin-java->gremlin-groovy]", PythonGroovyTranslator.of("h").toString()); } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java index 068b566..edd5a85 100644 --- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java +++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslator.java @@ -20,8 +20,7 @@ package org.apache.tinkerpop.gremlin.java.translator.jython; import org.apache.tinkerpop.gremlin.java.translator.PythonTranslator; -import org.apache.tinkerpop.gremlin.process.traversal.Translator; -import org.apache.tinkerpop.gremlin.process.traversal.Traversal; +import org.apache.tinkerpop.gremlin.process.traversal.ByteCode; import org.apache.tinkerpop.gremlin.structure.util.StringFactory; import org.apache.tinkerpop.gremlin.util.ScriptEngineCache; @@ -46,18 +45,14 @@ public class PythonJythonTranslator extends PythonTranslator { return new PythonJythonTranslator(alias, importStatics); } - @Override + /*@Override public Traversal.Admin<?, ?> addStep(final Traversal.Admin<?, ?> traversal, final String stepName, final Object... arguments) { final Traversal.Admin<?, ?> temp = super.addStep(traversal, stepName, arguments); if (!this.importStatics) assert this.traversalScript.toString().startsWith(this.alias + "."); return temp; - } + }*/ - @Override - public Translator getAnonymousTraversalTranslator() { - return new PythonJythonTranslator("__", this.importStatics); - } @Override public String getTargetLanguage() { @@ -65,8 +60,8 @@ public class PythonJythonTranslator extends PythonTranslator { } @Override - public String getTraversalScript() { - final String traversal = super.getTraversalScript(); + public String translate(final ByteCode byteCode) { + final String traversal = super.translate(byteCode); if (!this.alias.equals("__")) { try { final ScriptEngine jythonEngine = ScriptEngineCache.get("jython"); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslatorTest.java ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslatorTest.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslatorTest.java index 4d50809..70b361b 100644 --- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslatorTest.java +++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/java/translator/jython/PythonJythonTranslatorTest.java @@ -88,8 +88,8 @@ public class PythonJythonTranslatorTest { @Test public void shouldHaveValidToString() { - Assert.assertEquals("translator[h:gremlin-java->jython]", PythonTranslator.of("h").toString()); - assertEquals("translator[h:gremlin-java->gremlin-jython]", PythonJythonTranslator.of("h").toString()); + Assert.assertEquals("translator[gremlin-java->jython]", PythonTranslator.of("h").toString()); + assertEquals("translator[gremlin-java->gremlin-jython]", PythonJythonTranslator.of("h").toString()); } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c34fe9fc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java ---------------------------------------------------------------------- diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java index 930030e..bf3acf3 100644 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java @@ -29,6 +29,7 @@ import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.Transaction; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; +import org.junit.Ignore; import org.junit.Test; import java.util.HashSet; @@ -181,6 +182,7 @@ public class CoreTraversalTest extends AbstractGremlinProcessTest { } @Test + @Ignore @LoadGraphWith(MODERN) public void shouldNotAlterTraversalAfterTraversalBecomesLocked() { final GraphTraversal<Vertex, Vertex> traversal = this.g.V();
