This is an automated email from the ASF dual-hosted git repository. Cole-Greer pushed a commit to branch master-node-26 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 71759891218bbe15a9220e0a9284a0a8534760af Merge: 9eca2f5b31 6d0e2c259d Author: Cole Greer <[email protected]> AuthorDate: Fri May 15 12:32:28 2026 -0700 Merge branch '3.8-dev' .github/workflows/build-test.yml | 38 +++++----------------------- CHANGELOG.asciidoc | 1 + docs/src/reference/gremlin-variants.asciidoc | 30 ++++++++++++---------- 3 files changed, 24 insertions(+), 45 deletions(-) diff --cc .github/workflows/build-test.yml index 72f80cd461,dc959a4cf0..7fd28b8bcc --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@@ -250,6 -238,10 +222,10 @@@ jobs timeout-minutes: 15 needs: cache-gremlin-server-docker-image runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: - node-version: [ '20', '22', '24', '26' ] ++ node-version: [ '22', '24', '26' ] steps: - uses: actions/checkout@v6 - name: Set up JDK 11 @@@ -272,7 -264,7 +248,7 @@@ run: | EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV" mvn clean install -pl $EXCLUDE -q -DskipTests -Dci - mvn verify -pl :gremlin-javascript -Dnode.test.version=24 -Dhost.uid=$(id -u) -Dhost.gid=$(id -g) - mvn verify -pl :gremlin-javascript,:gremlint,:gremlin-mcp -Dnode.test.version=${{ matrix.node-version }} ++ mvn verify -pl :gremlin-js,:gremlin-javascript,:gremlint,:gremlin-mcp -Dhost.uid=$(id -u) -Dhost.gid=$(id -g) -Dnode.test.version=${{ matrix.node-version }} python: name: python-${{ matrix.python-version }} timeout-minutes: 20 diff --cc docs/src/reference/gremlin-variants.asciidoc index 5e3f23a599,1850d3cef9..30172706d8 --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@@ -1182,29 -1225,6 +1182,29 @@@ g2Client.submit("g.V()" The above code demonstrates how the `alias` method can be used such that the script need only contain a reference to "g" and "g1" and "g2" are automatically rebound into "g" on the server-side. +==== RequestInterceptor + +Gremlin-Java allows for modification of the underlying HTTP request through the use of `RequestInterceptors`. This is +intended to be an advanced feature which means that you will need to understand how the implementation works in order +to safely utilize it. Gremlin-Java is written in a way that you should be able to interact with a TinkerPop-enabled +server without having to use interceptors. This is intended for cases where the server has special capabilities. + +A `RequestInterceptor` is simply a `UnaryOperator`. A list of these are maintained and will be run sequentially for +each request. When building a `Cluster` instance, the methods `addInterceptorAfter()`, `addInterceptorBefore()`, +`addInterceptor()`, and `removeInterceptor()` can be used to add or remove interceptors. It's important to remember +that order matters so if one interceptor depends on another's output then ensure they are added in the correct order. +Note that `Auth` is also implemented using interceptors, and `Auth` is always run last after your list of interceptors +has already ran. By default, the `PayloadSerializingInterceptor` with the name `serializer` is added to your list of - interceptors. This interceptor is used for serializing the body of the request. The first interceptor is provided with ++interceptors. This interceptor is used for serializing the body of the request. The first interceptor is provided with +a `org.apache.tinkerpop.gremlin.driver.HttpRequest` that contains a `RequestMessage` in the body. As a reminder +`RequestMessage` is immutable and only certain keys can be added to them. If you want to customize the body by adding +other fields, you will need to make a different copy of the `RequestMessage` or completely change the body to contain a +different data type. The very last interceptor should have a `org.apache.tinkerpop.gremlin.driver.HttpRequest` that +contains a byte[] in the body. + +For an example of a simple `RequestInterceptor` that only modifies the header of the request take a look at +link:https://github.com/apache/tinkerpop/blob/x.y.z/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/auth/Basic.java[basic authentication]. + [[gremlin-java-dsl]] === Domain Specific Languages @@@ -1515,17 -1560,18 +1515,19 @@@ The following table outlines recommende [cols="1,1,1",options="header"] |=== - |Version |Min Node.js |npm Version - |3.4.0 |≥6 |N/A - |3.5.0 |≥10 |6.14.16 - |3.5.7 |≥16 |8.19.4 - |3.6.0 |≥10 |8.1.2 - |3.6.5 |≥16 |8.19.4 - |3.6.7 |≥18 |9.6.7 - |3.7.0 |≥18 |9.6.7 - |3.7.4 |≥20 |10.8.2 - |3.8.0 |≥20 |10.8.2 - |4.0.0-beta.2 |≥22 |10.8.2 + |Version |Recommended Node.js Version |npm Version + |3.4.0 |6 |N/A + |3.5.0 |10 |6.14.16 + |3.5.7 |16 |8.19.4 + |3.6.0 |10 |8.1.2 + |3.6.5 |16 |8.19.4 + |3.6.7 |18 |9.6.7 + |3.7.0 |18 |9.6.7 + |3.7.4 |20, 22, 24 |10.8.2 + |3.7.7 |20, 22, 24, 26 |10.8.2 + |3.8.0 |20, 22, 24 |10.8.2 + |3.8.2 |20, 22, 24, 26 |10.8.2 ++|4.0.0 |22, 24, 26 |10.9.7 |=== [[gremlin-javascript-connecting]]
