This is an automated email from the ASF dual-hosted git repository.

Cole-Greer pushed a commit to branch 3.8-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/3.8-dev by this push:
     new bec044ea00 CTR Add Configuring to GraphStepPlaceholder and 
VertexStepPlaceholder
bec044ea00 is described below

commit bec044ea00ec52759de2e9499437eb4f073f69cb
Author: Cole Greer <[email protected]>
AuthorDate: Tue Apr 28 10:28:10 2026 -0700

    CTR Add Configuring to GraphStepPlaceholder and VertexStepPlaceholder
---
 CHANGELOG.asciidoc                                   |  2 ++
 .../process/traversal/step/map/GraphStep.java        |  3 +--
 .../traversal/step/map/GraphStepContract.java        |  3 ++-
 .../traversal/step/map/GraphStepPlaceholder.java     | 20 ++++++++++++++++++--
 .../process/traversal/step/map/VertexStep.java       |  3 +--
 .../traversal/step/map/VertexStepContract.java       |  3 ++-
 .../traversal/step/map/VertexStepPlaceholder.java    | 20 ++++++++++++++++++--
 7 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 3d9c2024a6..a897e4b052 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -27,6 +27,8 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 
 This release also includes changes from prior 3.7.x releases.
 
+* Add missing `Configuring` interface to `GraphStepPlaceholder` and 
`VertexStepPlaceholder`
+
 [[release-3-8-1]]
 === TinkerPop 3.8.1 (Release Date: April 1, 2026)
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
index b0b7daa0c2..7e64cd391a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStep.java
@@ -24,7 +24,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Contains;
 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.step.Configuring;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
@@ -49,7 +48,7 @@ import java.util.function.Supplier;
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  * @author Pieter Martin
  */
-public class GraphStep<S, E extends Element> extends AbstractStep<S, E> 
implements Configuring, GraphStepContract<S, E> {
+public class GraphStep<S, E extends Element> extends AbstractStep<S, E> 
implements GraphStepContract<S, E> {
 
     protected Parameters parameters = new Parameters();
     protected final Class<E> returnClass;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepContract.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepContract.java
index 901045dd66..a7f25303bf 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepContract.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepContract.java
@@ -19,6 +19,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
+import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GraphComputing;
 import org.apache.tinkerpop.gremlin.structure.Element;
@@ -27,7 +28,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-public interface GraphStepContract<S, E extends Element> extends Step<S, E>, 
GraphComputing, AutoCloseable {
+public interface GraphStepContract<S, E extends Element> extends Step<S, E>, 
GraphComputing, Configuring, AutoCloseable {
 
     /**
      * Concrete implementations of this contract that can be referenced as 
TinkerPop implementations.
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepPlaceholder.java
index f8d25e0213..9f909e6be5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GraphStepPlaceholder.java
@@ -23,6 +23,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValueHolder;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.Parameters;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
@@ -37,6 +38,7 @@ import java.util.Set;
 
 public class GraphStepPlaceholder<S, E extends Element> extends 
AbstractStep<S, E> implements GValueHolder<S, E>, GraphStepContract<S, E> {
 
+    protected Parameters withConfiguration = new Parameters();
     protected final Class<E> returnClass;
     protected GValue<?>[] ids;
     private final boolean isStart;
@@ -121,12 +123,13 @@ public class GraphStepPlaceholder<S, E extends Element> 
extends AbstractStep<S,
         return isStart == that.isStart &&
                 onGraphComputer == that.onGraphComputer &&
                 Objects.equals(returnClass, that.returnClass) &&
-                Objects.deepEquals(ids, that.ids);
+                Objects.deepEquals(ids, that.ids) &&
+                Objects.equals(withConfiguration, that.withConfiguration);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(super.hashCode(), returnClass, 
Arrays.hashCode(ids), isStart, onGraphComputer);
+        return Objects.hash(super.hashCode(), returnClass, 
Arrays.hashCode(ids), isStart, onGraphComputer, withConfiguration);
     }
 
     @Override
@@ -138,6 +141,8 @@ public class GraphStepPlaceholder<S, E extends Element> 
extends AbstractStep<S,
         }
 
         TraversalHelper.copyLabels(this, step, false);
+        this.withConfiguration.getRaw().forEach((key, values) ->
+                values.forEach(value -> step.configure(key, value)));
         return step;
     }
 
@@ -175,10 +180,21 @@ public class GraphStepPlaceholder<S, E extends Element> 
extends AbstractStep<S,
     public GraphStepPlaceholder<S, E> clone() {
         GraphStepPlaceholder<S, E> clone = (GraphStepPlaceholder<S, E>) 
super.clone();
         clone.onGraphComputer = this.onGraphComputer;
+        clone.withConfiguration = this.withConfiguration.clone();
         clone.ids = new GValue<?>[this.ids.length];
         for (int i = 0; i < this.ids.length; i++) {
             clone.ids[i] = this.ids[i].clone();
         }
         return clone;
     }
+
+    @Override
+    public void configure(final Object... keyValues) {
+        this.withConfiguration.set(null, keyValues);
+    }
+
+    @Override
+    public Parameters getParameters() {
+        return this.withConfiguration;
+    }
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
index c79df62382..270cc28ff3 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
@@ -20,7 +20,6 @@ package 
org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Parameters;
 import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -44,7 +43,7 @@ import java.util.stream.Collectors;
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class VertexStep<E extends Element> extends FlatMapStep<Vertex, E> 
implements Configuring, VertexStepContract<E> {
+public class VertexStep<E extends Element> extends FlatMapStep<Vertex, E> 
implements VertexStepContract<E> {
 
     protected Parameters parameters = new Parameters();
     private final String[] edgeLabels;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepContract.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepContract.java
index 1fc1d2eb48..19bf6df81e 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepContract.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepContract.java
@@ -19,6 +19,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
+import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -29,7 +30,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
-public interface VertexStepContract<E extends Element> extends Step<Vertex, 
E>, AutoCloseable {
+public interface VertexStepContract<E extends Element> extends Step<Vertex, 
E>, Configuring, AutoCloseable {
 
     /**
      * Concrete implementations of this contract that can be referenced as 
TinkerPop implementations.
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepPlaceholder.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepPlaceholder.java
index 9e4afff771..49a09a3f4e 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepPlaceholder.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStepPlaceholder.java
@@ -23,6 +23,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValueHolder;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.Parameters;
 import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -48,6 +49,7 @@ import java.util.stream.Collectors;
  */
 public class VertexStepPlaceholder<E extends Element> extends 
FlatMapStep<Vertex, E> implements GValueHolder<Vertex, E>, 
VertexStepContract<E> {
 
+    protected Parameters withConfiguration = new Parameters();
     private GValue<String>[] edgeLabels;
     private Direction direction;
     private final Class<E> returnClass;
@@ -124,18 +126,20 @@ public class VertexStepPlaceholder<E extends Element> 
extends FlatMapStep<Vertex
         VertexStepPlaceholder<?> that = (VertexStepPlaceholder<?>) o;
         return Objects.equals(sortEdgeLabels(edgeLabels), 
sortEdgeLabels(that.edgeLabels)) &&
                 direction == that.direction &&
-                Objects.equals(returnClass, that.returnClass);
+                Objects.equals(returnClass, that.returnClass) &&
+                Objects.equals(withConfiguration, that.withConfiguration);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(super.hashCode(), sortEdgeLabels(edgeLabels), 
direction, returnClass);
+        return Objects.hash(super.hashCode(), sortEdgeLabels(edgeLabels), 
direction, returnClass, withConfiguration);
     }
 
     @Override
     public VertexStepPlaceholder<E> clone() {
         VertexStepPlaceholder<E> clone = (VertexStepPlaceholder<E>) 
super.clone();
         clone.direction = this.direction;
+        clone.withConfiguration = this.withConfiguration.clone();
         clone.edgeLabels = new GValue[this.edgeLabels.length];
         for (int i = 0; i < this.edgeLabels.length; i++) {
             clone.edgeLabels[i] = this.edgeLabels[i].clone();
@@ -154,6 +158,8 @@ public class VertexStepPlaceholder<E extends Element> 
extends FlatMapStep<Vertex
                 .map(String.class::cast)
                 .toArray(String[]::new));
         TraversalHelper.copyLabels(this, step, false);
+        this.withConfiguration.getRaw().forEach((key, values) ->
+                values.forEach(value -> step.configure(key, value)));
         return step;
     }
 
@@ -181,6 +187,16 @@ public class VertexStepPlaceholder<E extends Element> 
extends FlatMapStep<Vertex
         closeIterator();
     }
 
+    @Override
+    public void configure(final Object... keyValues) {
+        this.withConfiguration.set(null, keyValues);
+    }
+
+    @Override
+    public Parameters getParameters() {
+        return this.withConfiguration;
+    }
+
     /**
      * Helper method for hashCode() and equals() as edgeLabel's order should 
not influence equality.
      * in("x", "y") and in("y", "x") must be considered equal.

Reply via email to