This is an automated email from the ASF dual-hosted git repository. colegreer pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit b67511190d26c79ebf26a12a44524fb310c74a31 Merge: 9606a87d5f b869bd405a Author: Cole-Greer <[email protected]> AuthorDate: Mon Sep 29 17:38:12 2025 -0700 Merge branch '3.8-dev' .../gremlin/jsr223/GremlinLangScriptEngine.java | 17 ++- .../tinkerpop/gremlin/process/traversal/P.java | 17 ++- .../traversal/dsl/graph/GraphTraversal.java | 36 +++-- .../step/map/AbstractAddEdgeStepPlaceholder.java | 8 +- .../map/AbstractAddElementStepPlaceholder.java | 148 +++++++++++---------- .../step/map/AbstractAddVertexStepPlaceholder.java | 20 +-- .../traversal/step/map/AddEdgeStartStep.java | 5 + .../step/map/AddEdgeStartStepPlaceholder.java | 9 +- .../process/traversal/step/map/AddEdgeStep.java | 5 + .../traversal/step/map/AddEdgeStepPlaceholder.java | 9 +- .../traversal/step/map/AddElementStepContract.java | 2 + .../traversal/step/map/AddVertexStartStep.java | 5 + .../step/map/AddVertexStartStepPlaceholder.java | 10 +- .../process/traversal/step/map/AddVertexStep.java | 5 + .../step/map/AddVertexStepPlaceholder.java | 9 +- .../step/sideEffect/AddPropertyStepContract.java | 10 +- .../sideEffect/AddPropertyStepPlaceholder.java | 60 ++++----- .../jsr223/GremlinLangScriptEngineTest.java | 6 - .../traversal/step/TraversalParentTest.java | 48 +++---- .../ReservedKeysVerificationStrategyTest.java | 1 - .../tinkerpop/gremlin/features/StepDefinition.java | 6 +- .../TinkerGraphGremlinLangScriptEngineTest.java | 2 - 22 files changed, 243 insertions(+), 195 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java index ef16b5d342,bed433ed61..e452203d55 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java @@@ -189,9 -186,7 +186,8 @@@ import org.apache.tinkerpop.gremlin.pro import org.apache.tinkerpop.gremlin.process.traversal.step.map.TrimLocalStep; import org.apache.tinkerpop.gremlin.process.traversal.step.map.UnfoldStep; import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep; - import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AddPropertyStep; import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateGlobalStep; +import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateLocalStep; import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.FailStep; import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountSideEffectStep; import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupSideEffectStep; @@@ -1431,8 -1415,8 +1427,8 @@@ public interface GraphTraversal<S, E> e * @since 3.1.0-incubating */ public default GraphTraversal<S, Vertex> addV() { - this.asAdmin().getBytecode().addStep(Symbols.addV); + this.asAdmin().getGremlinLang().addStep(Symbols.addV); - return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), (String) null)); + return this.asAdmin().addStep(new AddVertexStepPlaceholder<>(this.asAdmin(), (String) null)); } /** @@@ -1652,15 -1636,14 +1648,15 @@@ } /** - * Provide {@code to()}-modulation to respective steps. + * When used as a modifier to {@link #addE(String)} this method specifies the traversal to use for selecting the + * outgoing vertex of the newly added {@link Edge}. * - * @param toStepLabel the step label to modulate to. - * @return the traversal with the modified {@link FromToModulating} step. - * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#to-step" target="_blank">Reference Documentation - To Step</a> + * @param fromVertex the traversal for selecting the outgoing vertex - * @return the traversal with the modified {@link AddEdgeStep} ++ * @return the traversal with the modified {@link AddEdgeStepContract} + * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step" target="_blank">Reference Documentation - From Step</a> * @since 3.1.0-incubating */ - public default GraphTraversal<S, E> to(final String toStepLabel) { + public default GraphTraversal<S, E> from(final Traversal<?, Object> fromVertex) { final Step<?,?> prev = this.asAdmin().getEndStep(); if (!(prev instanceof FromToModulating)) throw new IllegalArgumentException(String.format( @@@ -1693,20 -1676,14 +1689,20 @@@ /** * When used as a modifier to {@link #addE(String)} this method specifies the traversal to use for selecting the - * incoming vertex of the newly added {@link Edge}. + * outgoing vertex of the newly added {@link Edge}. * - * @param toVertex the traversal for selecting the incoming vertex + * @param fromVertexOrId the vertex for selecting the outgoing vertex - * @return the traversal with the modified {@link AddEdgeStep} + * @return the traversal with the modified {@link AddEdgeStepContract} * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#addedge-step" target="_blank">Reference Documentation - From Step</a> - * @since 3.1.0-incubating + * @since 3.3.0 */ - public default GraphTraversal<S, E> to(final Traversal<?, Object> toVertex) { + public default GraphTraversal<S, E> from(final Object fromVertexOrId) { + if (fromVertexOrId instanceof String) { + return this.from((String) fromVertexOrId); + } else if (fromVertexOrId instanceof Traversal) { + this.from((Traversal<?, Object>)fromVertexOrId); + return this; + } final Step<?,?> prev = this.asAdmin().getEndStep(); if (!(prev instanceof FromToModulating)) throw new IllegalArgumentException(String.format( diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java index 22dd49659e,2ef44c1e7c..05aa2413bc --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java @@@ -18,16 -18,8 +18,14 @@@ */ package org.apache.tinkerpop.gremlin.jsr223; +import org.apache.commons.configuration2.Configuration; +import org.apache.commons.configuration2.MapConfiguration; 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.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; +import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy; - import org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy; - import org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxyTest; import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; import org.junit.Test; @@@ -35,18 -27,9 +33,14 @@@ import javax.script.Bindings import javax.script.ScriptException; import javax.script.SimpleBindings; +import java.util.HashMap; +import java.util.HashSet; - import java.util.LinkedHashMap; - import java.util.Map; - import java.util.Optional; +import java.util.Set; + import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsInstanceOf.instanceOf; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; - import static org.junit.Assert.assertTrue; public class GremlinLangScriptEngineTest {
