(tinkerpop) branch 3.7-dev updated (73fe63bb51 -> 2f54a5413f)

2024-10-03 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 73fe63bb51 Reverted antlr upgrade - doens't support builds on JDK8 
after 4.9
 add 2f54a5413f Added way to check if the specified label was user defined 
CTR

No new revisions were added by this update.

Summary of changes:
 CHANGELOG.asciidoc |  1 +
 .../gremlin/process/traversal/step/map/AddVertexStartStep.java |  8 
 .../gremlin/process/traversal/step/map/AddVertexStep.java  | 10 ++
 3 files changed, 19 insertions(+)



(tinkerpop) branch master updated: Added way to check if the specified label was user defined CTR

2024-10-03 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/master by this push:
 new 2f54a5413f Added way to check if the specified label was user defined 
CTR
 new dd41ffbe6b Merge branch '3.7-dev'
2f54a5413f is described below

commit 2f54a5413f066ba30ead88f4980d0ff9c9e0135c
Author: Stephen Mallette 
AuthorDate: Thu Oct 3 11:36:05 2024 -0400

Added way to check if the specified label was user defined CTR
---
 CHANGELOG.asciidoc |  1 +
 .../gremlin/process/traversal/step/map/AddVertexStartStep.java |  8 
 .../gremlin/process/traversal/step/map/AddVertexStep.java  | 10 ++
 3 files changed, 19 insertions(+)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 2d7efd06b1..60359aa8e8 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -38,6 +38,7 @@ This release also includes changes from <>.
 * Added getter method to `ConcatStep`, `ConjoinStep`, `SplitGlobalStep` and 
`SplitLocalStep` for their private fields.
 * Fixed older driver GraphBinary compatibility problems where using 
`ReferenceElementStrategy`, properties on elements returned as `null` instead 
of empty `List`.
 * Gremlin Server docker containers shutdown gracefully when receiving a 
SIGTERM.
+* Added 'userProvidedLabel' property to detect if the default label was 
supplied explicitly or not.
 * Added DefaultIdManager.STRING for proper string id creation/handling.
 * Allowed specification of an `Operator` as a reducer in `withSideEffect` when 
parsing with the grammar.
 * Fixed bug in Bytecode build logic where duplicate strategies were added 
instead of replacing the existing ones.
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
index 3ca6efff08..fd52f445e8 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
@@ -50,15 +50,22 @@ public class AddVertexStartStep extends 
AbstractStep
 private Parameters parameters = new Parameters();
 private boolean first = true;
 private CallbackRegistry callbackRegistry;
+private boolean userProvidedLabel;
 
 public AddVertexStartStep(final Traversal.Admin traversal, final String 
label) {
 super(traversal);
 this.parameters.set(this, T.label, null == label ? 
Vertex.DEFAULT_LABEL : label);
+userProvidedLabel = label != null;
 }
 
 public AddVertexStartStep(final Traversal.Admin traversal, final 
Traversal vertexLabelTraversal) {
 super(traversal);
 this.parameters.set(this, T.label, null == vertexLabelTraversal ? 
Vertex.DEFAULT_LABEL : vertexLabelTraversal);
+userProvidedLabel = vertexLabelTraversal != null;
+}
+
+public boolean hasUserProvidedLabel() {
+return userProvidedLabel;
 }
 
 @Override
@@ -142,6 +149,7 @@ public class AddVertexStartStep extends 
AbstractStep
 public AddVertexStartStep clone() {
 final AddVertexStartStep clone = (AddVertexStartStep) super.clone();
 clone.parameters = this.parameters.clone();
+clone.userProvidedLabel = this.userProvidedLabel;
 return clone;
 }
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
index 80597ca86c..0dfb55c2a1 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
@@ -45,15 +45,22 @@ public class AddVertexStep extends ScalarMapStep
 
 private Parameters parameters = new Parameters();
 private CallbackRegistry callbackRegistry;
+private boolean userProvidedLabel;
 
 public AddVertexStep(final Traversal.Admin traversal, final String label) {
 super(traversal);
 this.parameters.set(this, T.label, null == label ? 
Vertex.DEFAULT_LABEL : label);
+userProvidedLabel = label != null;
 }
 
 public AddVertexStep(final Traversal.Admin traversal, final 
Traversal.Admin vertexLabelTraversal) {
 super(traversal);
 this.parameters.set(this, T.label, null == vertexLabelTraversal ? 
Vertex.DEFAULT_LABEL : vertexLabelTraversal);
+userProvidedLabel = vertexLabelTraversal != null;
+}
+
+public boolean hasUserProvidedLabel() {
+return userProvidedLabel;
 }
 
 @Overrid

(tinkerpop) branch 3.7-dev updated (6c8f7ffca7 -> 73fe63bb51)

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 6c8f7ffca7 Bumped to ANTLR 4.13.2
 add 73fe63bb51 Reverted antlr upgrade - doens't support builds on JDK8 
after 4.9

No new revisions were added by this update.

Summary of changes:
 CHANGELOG.asciidoc | 1 -
 pom.xml| 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)



(tinkerpop) 02/02: Merge branch '3.7-dev'

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit b7c9ddda16a3d059b2a677f578f131a7124187b6
Merge: 38b7a6b872 73fe63bb51
Author: Stephen Mallette 
AuthorDate: Mon Sep 30 13:18:12 2024 -0400

Merge branch '3.7-dev'

 CHANGELOG.asciidoc | 1 -
 pom.xml| 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --cc pom.xml
index dcb147d8f0,4e3071dc77..57d6a5a92e
--- a/pom.xml
+++ b/pom.xml
@@@ -150,9 -151,9 +150,9 @@@ limitations under the License
  https://github.com/apache/tinkerpop
  
  
- 4.13.2
+ 4.9.1
  2.3.1
 -3.2.2
 +4.4
  2.9.0
  2.6
  2.8.0



(tinkerpop) branch master updated (38b7a6b872 -> b7c9ddda16)

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 38b7a6b872 Merge branch '3.7-dev'
 new 73fe63bb51 Reverted antlr upgrade - doens't support builds on JDK8 
after 4.9
 new b7c9ddda16 Merge branch '3.7-dev'

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc | 1 -
 pom.xml| 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)



(tinkerpop) 01/02: Reverted antlr upgrade - doens't support builds on JDK8 after 4.9

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 73fe63bb518853174787b10ee077ed2e7c3f0bfc
Author: Stephen Mallette 
AuthorDate: Mon Sep 30 13:17:01 2024 -0400

Reverted antlr upgrade - doens't support builds on JDK8 after 4.9
---
 CHANGELOG.asciidoc | 1 -
 pom.xml| 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 393a42e601..2d7efd06b1 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -38,7 +38,6 @@ This release also includes changes from <>.
 * Added getter method to `ConcatStep`, `ConjoinStep`, `SplitGlobalStep` and 
`SplitLocalStep` for their private fields.
 * Fixed older driver GraphBinary compatibility problems where using 
`ReferenceElementStrategy`, properties on elements returned as `null` instead 
of empty `List`.
 * Gremlin Server docker containers shutdown gracefully when receiving a 
SIGTERM.
-* Bumped to ANTLR 4.13.2.
 * Added DefaultIdManager.STRING for proper string id creation/handling.
 * Allowed specification of an `Operator` as a reducer in `withSideEffect` when 
parsing with the grammar.
 * Fixed bug in Bytecode build logic where duplicate strategies were added 
instead of replacing the existing ones.
diff --git a/pom.xml b/pom.xml
index 62c1557605..4e3071dc77 100644
--- a/pom.xml
+++ b/pom.xml
@@ -151,7 +151,7 @@ limitations under the License.
 https://github.com/apache/tinkerpop
 
 
-4.13.2
+4.9.1
 2.3.1
 3.2.2
 2.9.0



(tinkerpop) branch 3.7-dev updated (9d9eb90e97 -> 6c8f7ffca7)

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 9d9eb90e97 CTR fix tag/feature names for gherkin feature files
 add 6c8f7ffca7 Bumped to ANTLR 4.13.2

No new revisions were added by this update.

Summary of changes:
 CHANGELOG.asciidoc | 11 ++-
 pom.xml|  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)



(tinkerpop) 01/02: Bumped to ANTLR 4.13.2

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 6c8f7ffca761c434c048393202a09249317f9316
Author: Stephen Mallette 
AuthorDate: Mon Sep 30 12:07:20 2024 -0400

Bumped to ANTLR 4.13.2
---
 CHANGELOG.asciidoc | 11 ++-
 pom.xml|  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index edc3e10996..393a42e601 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,18 +26,19 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 This release also includes changes from <>.
 
 * Refactored mutation events registration by moving reusable code from 
relevant steps to `EventUtil`
-* Open `NoOpBarrierStep` for extensibility (removed `final` keyword).
+* Opened `NoOpBarrierStep` for extensibility (removed `final` keyword).
 * Deprecated public constructor for `SeedStrategy` in favor of builder pattern 
to be consistent with other strategies.
-* Allow specifying a customized Spark app name.
+* Allowed specification of a customized Spark app name.
 * Added getter method to `CoinStep` for its probability field.
 * Attempted to detect JDK version for Gremlin Console to avoid problems with 
Java 17 if `neo4j-gremlin` is used.
 * Fixed so that `TrimGlobalStep` and `TrimLocalStep` have the same character 
control handling as `Ltrim` and `Rtrim`
-* Fix a bug in `MaxLocalStep`, `MinLocalStep`, `MeanLocalStep` and 
`SumLocalStep` that it throws `NoSuchElementException` when encounters an empty 
iterator as input.
-* Fix cases where Map keys of incomparable types could panic in `gremlin-go`.
+* Fixed a bug in `MaxLocalStep`, `MinLocalStep`, `MeanLocalStep` and 
`SumLocalStep` that it throws `NoSuchElementException` when encounters an empty 
iterator as input.
+* Fixed cases where Map keys of incomparable types could panic in `gremlin-go`.
 * Fixed an issue where missing necessary parameters for logging, resulting in 
'%!x(MISSING)' output in `gremlin-go`.
 * Added getter method to `ConcatStep`, `ConjoinStep`, `SplitGlobalStep` and 
`SplitLocalStep` for their private fields.
-* When using `ReferenceElementStrategy` with `GraphBinaryV1`, properties on 
elements will be returned as `null` instead of empty list, to stay compatible 
with older drivers.
+* Fixed older driver GraphBinary compatibility problems where using 
`ReferenceElementStrategy`, properties on elements returned as `null` instead 
of empty `List`.
 * Gremlin Server docker containers shutdown gracefully when receiving a 
SIGTERM.
+* Bumped to ANTLR 4.13.2.
 * Added DefaultIdManager.STRING for proper string id creation/handling.
 * Allowed specification of an `Operator` as a reducer in `withSideEffect` when 
parsing with the grammar.
 * Fixed bug in Bytecode build logic where duplicate strategies were added 
instead of replacing the existing ones.
diff --git a/pom.xml b/pom.xml
index 4e3071dc77..62c1557605 100644
--- a/pom.xml
+++ b/pom.xml
@@ -151,7 +151,7 @@ limitations under the License.
 https://github.com/apache/tinkerpop
 
 
-4.9.1
+4.13.2
 2.3.1
 3.2.2
 2.9.0



(tinkerpop) branch master updated (b4d62b2020 -> 38b7a6b872)

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from b4d62b2020 Merge branch '3.7-dev'
 new 6c8f7ffca7 Bumped to ANTLR 4.13.2
 new 38b7a6b872 Merge branch '3.7-dev'

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc | 11 ++-
 pom.xml|  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)



(tinkerpop) 02/02: Merge branch '3.7-dev'

2024-09-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 38b7a6b872dd8eb7405a4eb1574c804268149968
Merge: b4d62b2020 6c8f7ffca7
Author: Stephen Mallette 
AuthorDate: Mon Sep 30 12:07:49 2024 -0400

Merge branch '3.7-dev'

 CHANGELOG.asciidoc | 11 ++-
 pom.xml|  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --cc pom.xml
index 57d6a5a92e,62c1557605..dcb147d8f0
--- a/pom.xml
+++ b/pom.xml
@@@ -150,9 -151,9 +150,9 @@@ limitations under the License
  https://github.com/apache/tinkerpop
  
  
- 4.9.1
+ 4.13.2
  2.3.1
 -3.2.2
 +4.4
  2.9.0
  2.6
  2.8.0



(tinkerpop) branch 3.7-dev updated: Fixed changelog formatting CTR

2024-09-04 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/3.7-dev by this push:
 new a67d87db33 Fixed changelog formatting CTR
a67d87db33 is described below

commit a67d87db33feede422364da82f7700d132b92595
Author: Stephen Mallette 
AuthorDate: Wed Sep 4 07:04:25 2024 -0400

Fixed changelog formatting CTR
---
 CHANGELOG.asciidoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index f20ba908f8..76810fa315 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -37,7 +37,7 @@ This release also includes changes from <>.
 * Fixed an issue where missing necessary parameters for logging, resulting in 
'%!x(MISSING)' output in `gremlin-go`.
 * Added getter method to `ConcatStep`, `ConjoinStep`, `SplitGlobalStep` and 
`SplitLocalStep` for their private fields.
 * Gremlin Server docker containers shutdown gracefully when receiving a 
SIGTERM.
-* TINKERPOP-3080 Support to specify Operator as a reducer in withSideEffect 
when parsing with the grammar
+* Allowed specification of an `Operator` as a reducer in `withSideEffect` when 
parsing with the grammar.
 
 [[release-3-7-2]]
 === TinkerPop 3.7.2 (April 8, 2024)



(tinkerpop) branch gvalue updated: wip - refactoring, tests, comments

2024-08-28 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue by this push:
 new 682cb4b050 wip - refactoring, tests, comments
682cb4b050 is described below

commit 682cb4b0500a25bedac233fa33303daedb15b74c
Author: Stephen Mallette 
AuthorDate: Wed Aug 28 11:29:18 2024 -0400

wip - refactoring, tests, comments
---
 .../tinkerpop/gremlin/jsr223/JavaTranslator.java   |   5 +
 .../language/grammar/TraversalMethodVisitor.java   |   2 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   8 +-
 .../gremlin/process/traversal/step/GValue.java |  73 +---
 .../process/traversal/step/filter/CoinStep.java|   4 -
 .../process/traversal/step/map/GraphStep.java  |   4 +-
 .../process/traversal/step/map/VertexStep.java |   2 +-
 .../traversal/step/sideEffect/InjectStep.java  |   2 +-
 .../optimization/InlineFilterStrategy.java |   2 +-
 .../tinkerpop/gremlin/util/CollectionUtil.java |  23 +++-
 .../gremlin/process/traversal/step/GValueTest.java | 131 +
 .../tinkerpop/gremlin/util/CollectionUtilTest.java | 110 +
 12 files changed, 306 insertions(+), 60 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 96a4450309..8ac0b507f3 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -338,6 +338,11 @@ public final class JavaTranslator> methodCache) {
 if (methodCache.isEmpty()) {
 for (final Method method : delegate.getClass().getMethods()) {
+
+// skip GValue arguments as they make selecting the right 
method ambiguous for the translator. in any
+// event a GValue shouldn't get here since bytecode can't 
carry it. also, bytecode is gone in 4.0.0
+// so this will be deleted anyway. mostly adding this 
exception so the tests can continue to pass until
+// that removal completes.
 final boolean freeOfGValue = 
Arrays.stream(method.getParameters()).
 noneMatch(p -> p.getType() == GValue.class || 
p.getType().getComponentType() == GValue.class);
 if (freeOfGValue) {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index ce010e326e..4d28a0b8e9 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -765,7 +765,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 // if any are GValue then they all need to be GValue to call 
hasLabel
 if (literalOrVar instanceof GValue || 
Arrays.stream(literalOrVars).anyMatch(lov -> lov instanceof GValue)) {
 literalOrVar = GValue.of(literalOrVar);
-literalOrVars = 
Arrays.stream(literalOrVars).map(GValue::of).toArray();
+literalOrVars = GValue.ensureGValues(literalOrVars);
 }
 
 // since we normalized above to gvalue or literal we can just test 
the first arg for gvalue-ness
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
index 622a3c3e3a..a878bbb839 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
@@ -82,13 +82,7 @@ public class P implements Predicate, Serializable, 
Cloneable {
 } else {
 // this might be a bunch of GValue that need to be resolved. zomg
 if (this.value instanceof List) {
-return this.biPredicate.test(testValue, (V) ((List) 
this.value).stream().map(o -> {
-if (o instanceof GValue) {
-return ((GValue) o).get();
-} else {
-return o;
-}
-}).collect(Collectors.toList()));
+return this.biPredicate.test(testValue, (V) ((List) 
this.value).stream().map(GValue::valueOf).collect(Collectors.toList()));
 } else {
 return this.biPredicate.test(testValue, this.value);
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/G

(tinkerpop) branch gvalue-3.7 updated: prevented JavaTranslator from using GValue

2024-08-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-3.7 by this push:
 new 95c3d66f45 prevented JavaTranslator from using GValue
95c3d66f45 is described below

commit 95c3d66f455ecabe5a1fe15c1beb574c6f451892
Author: Stephen Mallette 
AuthorDate: Tue Aug 27 16:15:21 2024 -0400

prevented JavaTranslator from using GValue
---
 .../org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java| 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 1641d823bc..96a4450309 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -27,6 +27,7 @@ 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.GraphTraversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.lambda.CardinalityValueTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
@@ -38,6 +39,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Parameter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -336,8 +338,12 @@ public final class JavaTranslator> methodCache) {
 if (methodCache.isEmpty()) {
 for (final Method method : delegate.getClass().getMethods()) {
-final List list = 
methodCache.computeIfAbsent(method.getName(), k -> new ArrayList<>());
-list.add(new ReflectedMethod(method));
+final boolean freeOfGValue = 
Arrays.stream(method.getParameters()).
+noneMatch(p -> p.getType() == GValue.class || 
p.getType().getComponentType() == GValue.class);
+if (freeOfGValue) {
+final List list = 
methodCache.computeIfAbsent(method.getName(), k -> new ArrayList<>());
+list.add(new ReflectedMethod(method));
+}
 }
 GLOBAL_METHOD_CACHE.put(delegate.getClass(), methodCache);
 }



(tinkerpop) 02/03: wip - removed admin interface methods - doesn't work nice

2024-08-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit d27f15bee0dcf3de1b398f0426f81c7cc5db782f
Author: Stephen Mallette 
AuthorDate: Tue Aug 27 12:38:32 2024 -0400

wip - removed admin interface methods - doesn't work nice
---
 .../traversal/dsl/graph/GraphTraversal.java| 867 +
 .../traversal/dsl/graph/GraphTraversalSource.java  | 105 +--
 .../gremlin/process/traversal/dsl/graph/__.java| 114 +++
 .../gremlin/process/traversal/step/GValue.java |  42 +
 .../process/traversal/step/map/GraphStep.java  |  10 +-
 .../process/traversal/step/map/VertexStep.java |  16 +-
 .../traversal/step/sideEffect/InjectStep.java  |   8 +-
 .../process/traversal/step/util/AbstractStep.java  |  44 --
 .../optimization/InlineFilterStrategy.java |   2 +-
 .../tinkerpop/gremlin/util/CollectionUtil.java |  21 +
 .../traversal/translator/DotNetTranslatorTest.java |   2 +-
 11 files changed, 598 insertions(+), 633 deletions(-)

diff --git 
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
index eaa9692cae..fca7bd4196 100644
--- 
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
@@ -205,8 +205,10 @@ import org.apache.tinkerpop.gremlin.structure.PropertyType;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.util.CollectionUtil;
 import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier;
 
+import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -243,463 +245,6 @@ public interface GraphTraversal extends 
Traversal {
  */
 public interface Admin extends Traversal.Admin, 
GraphTraversal {
 
-/**
- * Filter the E object given a biased coin toss. For 
internal use for  parameterization features.
- *
- * @param probability the probability that the object will pass 
through the filter
- * @return the traversal with an appended {@link CoinStep}.
- * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#coin-step"; 
target="_blank">Reference Documentation - Coin Step
- * @since 3.7.3
- */
-public default GraphTraversal coin(final GValue 
probability) {
-this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.coin, 
probability);
-return this.asAdmin().addStep(new CoinStep<>(this.asAdmin(), 
probability));
-}
-
-/**
- * Map any object to a fixed E value. For internal use 
for  parameterization features.
- *
- * @return the traversal with an appended {@link ConstantStep}.
- * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#constant-step";
 target="_blank">Reference Documentation - Constant Step
- * @since 3.7.3
- */
-public default  GraphTraversal constant(final GValue e) 
{
-
this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.constant, e);
-return this.asAdmin().addStep(new ConstantStep(this.asAdmin(), e));
-}
-
-/**
- * Map the {@link Vertex} to its adjacent vertices given a direction 
and edge labels. The arguments for the
- * labels must be either a {@code String} or a {@link GValue}. 
For internal use for  parameterization.
- *
- * @param direction  the direction to traverse from the current vertex
- * @param edgeLabels the edge labels to traverse
- * @return the traversal with an appended {@link VertexStep}.
- * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#vertex-steps";
 target="_blank">Reference Documentation - Vertex Step
- * @since 3.7.3
- */
-public default GraphTraversal to(final Direction direction, 
final Object... edgeLabels) {
-this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.to, 
direction, edgeLabels);
-return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), 
Vertex.class, direction, edgeLabels));
-}
-
-/**
- * Map the {@link Vertex} to its outgoing adjacent vertices given the 
edge labels. The arguments for the
- * labels must be either a {@code String} or a {@link GValue}. 
For internal use for  parameterization.
- *
- * @param edgeLabels the edge labels to traver

(tinkerpop) 03/03: wip - moved all the params out of admin interfaces - not working

2024-08-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ed1ad59c652fdcbef7b9dc754182c22a0c277a59
Author: Stephen Mallette 
AuthorDate: Tue Aug 27 16:06:14 2024 -0400

wip - moved all the params out of admin interfaces - not working
---
 .../tinkerpop/gremlin/jsr223/JavaTranslator.java   |  10 +-
 .../grammar/TraversalSourceSpawnMethodVisitor.java |   8 +-
 .../traversal/dsl/graph/GraphTraversal.java| 118 +
 .../traversal/dsl/graph/GraphTraversalSource.java  |  30 ++
 .../gremlin/process/traversal/dsl/graph/__.java|  63 +++
 .../traversal/step/sideEffect/InjectStep.java  |   2 +-
 .../traversal/step/map/ConjoinStepTest.java|   2 +-
 7 files changed, 225 insertions(+), 8 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 1641d823bc..96a4450309 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -27,6 +27,7 @@ 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.GraphTraversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.lambda.CardinalityValueTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
@@ -38,6 +39,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Parameter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -336,8 +338,12 @@ public final class JavaTranslator> methodCache) {
 if (methodCache.isEmpty()) {
 for (final Method method : delegate.getClass().getMethods()) {
-final List list = 
methodCache.computeIfAbsent(method.getName(), k -> new ArrayList<>());
-list.add(new ReflectedMethod(method));
+final boolean freeOfGValue = 
Arrays.stream(method.getParameters()).
+noneMatch(p -> p.getType() == GValue.class || 
p.getType().getComponentType() == GValue.class);
+if (freeOfGValue) {
+final List list = 
methodCache.computeIfAbsent(method.getName(), k -> new ArrayList<>());
+list.add(new ReflectedMethod(method));
+}
 }
 GLOBAL_METHOD_CACHE.put(delegate.getClass(), methodCache);
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSpawnMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSpawnMethodVisitor.java
index 2758ea429c..02fb654451 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSpawnMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSpawnMethodVisitor.java
@@ -123,7 +123,7 @@ public class TraversalSourceSpawnMethodVisitor extends 
DefaultGremlinBaseVisitor
 public GraphTraversal visitTraversalSourceSpawnMethod_mergeV_Map(final 
GremlinParser.TraversalSourceSpawnMethod_mergeV_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
 if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
-return this.traversalSource.asAdmin().mergeV((GValue) 
literalOrVar);
+return this.traversalSource.mergeV((GValue) literalOrVar);
 else
 return this.traversalSource.mergeV((Map) literalOrVar);
 }
@@ -151,7 +151,7 @@ public class TraversalSourceSpawnMethodVisitor extends 
DefaultGremlinBaseVisitor
 public GraphTraversal visitTraversalSourceSpawnMethod_mergeE_Map(final 
GremlinParser.TraversalSourceSpawnMethod_mergeE_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
 if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
-return this.traversalSource.asAdmin().mergeE((GValue) 
literalOrVar);
+return this.traversalSource.mergeE((GValue) literalOrVar);
 else
 return this.traversalSource.mergeE((Map) literalOrVar);

(tinkerpop) 01/03: wip - added consistent getter naming

2024-08-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 441edc186ada8414d70020b0f261849cb9720cb9
Author: Stephen Mallette 
AuthorDate: Tue Aug 27 07:57:48 2024 -0400

wip - added consistent getter naming
---
 .../tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java | 6 +-
 .../tinkerpop/gremlin/process/traversal/step/map/CombineStep.java | 4 
 .../tinkerpop/gremlin/process/traversal/step/map/ConjoinStep.java | 6 +-
 .../gremlin/process/traversal/step/map/ConstantStep.java  | 5 -
 .../gremlin/process/traversal/step/map/DifferenceStep.java| 6 +-
 .../gremlin/process/traversal/step/map/DisjunctStep.java  | 6 +-
 .../gremlin/process/traversal/step/map/IntersectStep.java | 8 ++--
 .../tinkerpop/gremlin/process/traversal/step/map/MergeStep.java   | 6 +-
 .../tinkerpop/gremlin/process/traversal/step/map/ProductStep.java | 6 +-
 .../gremlin/process/traversal/step/sideEffect/InjectStep.java | 4 ++--
 .../gremlin/sparql/process/traversal/strategy/SparqlStrategy.java | 3 +--
 11 files changed, 47 insertions(+), 13 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
index f9cfda6399..33b3c80944 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
@@ -58,7 +58,11 @@ public final class CoinStep extends FilterStep 
implements Seedable {
 random.setSeed(seed);
 }
 
-public GValue getProbability() {
+public double getProbability() {
+return probability.get();
+}
+
+public GValue getProbabilityGValue() {
 return probability;
 }
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CombineStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CombineStep.java
index 587b7a7c72..67c120c03a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CombineStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CombineStep.java
@@ -69,6 +69,10 @@ public final class CombineStep extends 
ScalarMapStep> implement
 return (null == valueTraversal) ? Collections.emptyList() : 
Collections.singletonList(valueTraversal);
 }
 
+public Object getParameter() {
+return parameterItems.get();
+}
+
 public GValue getParameterItems() {
 return parameterItems;
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConjoinStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConjoinStep.java
index 94457df007..e6bb27a2e7 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConjoinStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConjoinStep.java
@@ -71,7 +71,11 @@ public final class ConjoinStep extends ScalarMapStep implements Li
 }
 }
 
-public GValue getDelimiter() {
+public String getDelimiter() {
+return this.delimiter.get();
+}
+
+public GValue getDelimiterGValue() {
 return this.delimiter;
 }
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConstantStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConstantStep.java
index 2145f7e966..3646b599b2 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConstantStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ConstantStep.java
@@ -41,7 +41,10 @@ public class ConstantStep extends ScalarMapStep {
 this.constant = null == constant ? GValue.of(null) : constant;
 }
 
-public GValue getConstant() {
+public E getConstant() {
+return this.constant.get();
+}
+public GValue getConstantGValue() {
 return this.constant;
 }
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DifferenceStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DifferenceStep.java
index 87f44f8639..27922b984e 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DifferenceStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DifferenceStep.java
@@ -53,7 +53,11 @@ public final cl

(tinkerpop) branch gvalue updated (3a2034a033 -> ed1ad59c65)

2024-08-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 3a2034a033 wip - added param to has(string, string, object)
 new 441edc186a wip - added consistent getter naming
 new d27f15bee0 wip - removed admin interface methods - doesn't work nice
 new ed1ad59c65 wip - moved all the params out of admin interfaces - not 
working

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../tinkerpop/gremlin/jsr223/JavaTranslator.java   |   10 +-
 .../grammar/TraversalSourceSpawnMethodVisitor.java |8 +-
 .../traversal/dsl/graph/GraphTraversal.java| 1027 ++--
 .../traversal/dsl/graph/GraphTraversalSource.java  |  135 ++-
 .../gremlin/process/traversal/dsl/graph/__.java|  177 
 .../gremlin/process/traversal/step/GValue.java |   42 +
 .../process/traversal/step/filter/CoinStep.java|6 +-
 .../process/traversal/step/map/CombineStep.java|4 +
 .../process/traversal/step/map/ConjoinStep.java|6 +-
 .../process/traversal/step/map/ConstantStep.java   |5 +-
 .../process/traversal/step/map/DifferenceStep.java |6 +-
 .../process/traversal/step/map/DisjunctStep.java   |6 +-
 .../process/traversal/step/map/GraphStep.java  |   10 +-
 .../process/traversal/step/map/IntersectStep.java  |8 +-
 .../process/traversal/step/map/MergeStep.java  |6 +-
 .../process/traversal/step/map/ProductStep.java|6 +-
 .../process/traversal/step/map/VertexStep.java |   16 +-
 .../traversal/step/sideEffect/InjectStep.java  |   14 +-
 .../process/traversal/step/util/AbstractStep.java  |   44 -
 .../optimization/InlineFilterStrategy.java |2 +-
 .../tinkerpop/gremlin/util/CollectionUtil.java |   21 +
 .../traversal/step/map/ConjoinStepTest.java|2 +-
 .../traversal/translator/DotNetTranslatorTest.java |2 +-
 .../process/traversal/strategy/SparqlStrategy.java |3 +-
 24 files changed, 891 insertions(+), 675 deletions(-)



(tinkerpop) branch gvalue-3.7 updated: wip - removed admin interface methods - doesn't work nice

2024-08-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-3.7 by this push:
 new c6abf2a789 wip - removed admin interface methods - doesn't work nice
c6abf2a789 is described below

commit c6abf2a789359e782147ffecdbd5a6b83b1c49aa
Author: Stephen Mallette 
AuthorDate: Tue Aug 27 12:38:32 2024 -0400

wip - removed admin interface methods - doesn't work nice
---
 .../traversal/dsl/graph/GraphTraversal.java| 750 +++--
 .../traversal/dsl/graph/GraphTraversalSource.java  |  72 +-
 .../gremlin/process/traversal/dsl/graph/__.java| 113 
 .../gremlin/process/traversal/step/GValue.java |  42 ++
 .../process/traversal/step/map/GraphStep.java  |  10 +-
 .../process/traversal/step/map/VertexStep.java |  16 +-
 .../traversal/step/sideEffect/InjectStep.java  |  10 +-
 .../process/traversal/step/util/AbstractStep.java  |  44 --
 .../optimization/InlineFilterStrategy.java |   2 +-
 .../tinkerpop/gremlin/util/CollectionUtil.java |  21 +
 .../traversal/translator/DotNetTranslatorTest.java |   2 +-
 11 files changed, 598 insertions(+), 484 deletions(-)

diff --git 
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
index 9e38327b86..b64f379d76 100644
--- 
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
@@ -203,8 +203,10 @@ import org.apache.tinkerpop.gremlin.structure.PropertyType;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.util.CollectionUtil;
 import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier;
 
+import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -241,346 +243,6 @@ public interface GraphTraversal extends 
Traversal {
  */
 public interface Admin extends Traversal.Admin, 
GraphTraversal {
 
-/**
- * Filter the E object given a biased coin toss. For 
internal use for  parameterization features.
- *
- * @param probability the probability that the object will pass 
through the filter
- * @return the traversal with an appended {@link CoinStep}.
- * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#coin-step"; 
target="_blank">Reference Documentation - Coin Step
- * @since 3.7.3
- */
-public default GraphTraversal coin(final GValue 
probability) {
-this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.coin, 
probability);
-return this.asAdmin().addStep(new CoinStep<>(this.asAdmin(), 
probability));
-}
-
-/**
- * Map any object to a fixed E value. For internal use 
for  parameterization features.
- *
- * @return the traversal with an appended {@link ConstantStep}.
- * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#constant-step";
 target="_blank">Reference Documentation - Constant Step
- * @since 3.7.3
- */
-public default  GraphTraversal constant(final GValue e) 
{
-
this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.constant, e);
-return this.asAdmin().addStep(new ConstantStep(this.asAdmin(), e));
-}
-
-/**
- * Map the {@link Vertex} to its adjacent vertices given a direction 
and edge labels. The arguments for the
- * labels must be either a {@code String} or a {@link GValue}. 
For internal use for  parameterization.
- *
- * @param direction  the direction to traverse from the current vertex
- * @param edgeLabels the edge labels to traverse
- * @return the traversal with an appended {@link VertexStep}.
- * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#vertex-steps";
 target="_blank">Reference Documentation - Vertex Step
- * @since 3.7.3
- */
-public default GraphTraversal to(final Direction direction, 
final Object... edgeLabels) {
-this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.to, 
direction, edgeLabels);
-return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), 
Vertex.class, direction, edgeLabels));
-}
-
-/**
- * Map the {@link Vertex} to its outgoing adjacent vertices given the 
edge labels. The argu

(tinkerpop) branch gvalue-3.7 updated: backport some renaming and other cleanup

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-3.7 by this push:
 new d1fb04cf8e backport some renaming and other cleanup
d1fb04cf8e is described below

commit d1fb04cf8e2b71ba518830122d2edc85dc312345
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 20:00:38 2024 -0400

backport some renaming and other cleanup
---
 .../traversal/lambda/ConstantTraversal.java|  2 +-
 .../process/traversal/step/filter/CoinStep.java|  6 +-
 .../process/traversal/step/map/GraphStep.java  | 84 +-
 .../traversal/step/sideEffect/InjectStep.java  |  6 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java | 16 +++--
 5 files changed, 71 insertions(+), 43 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/ConstantTraversal.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/ConstantTraversal.java
index 3bac69ce48..35e0dcedc6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/ConstantTraversal.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/ConstantTraversal.java
@@ -45,7 +45,7 @@ public final class ConstantTraversal extends 
AbstractLambdaTraversal
 return this.end.get();
 }
 
-public GValue getEnd() {
+public GValue getEndGValue() {
 return end;
 }
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
index e220952200..e997511a92 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/CoinStep.java
@@ -71,11 +71,11 @@ public final class CoinStep extends FilterStep 
implements Seedable {
 long newBulk = 0l;
 if (traverser.bulk() < 100) {
 for (int i = 0; i < traverser.bulk(); i++) {
-if (this.probability.get() >= random.nextDouble())
+if (this.getProbability() >= random.nextDouble())
 newBulk++;
 }
 } else {
-newBulk = Math.round(this.probability.get() * traverser.bulk());
+newBulk = Math.round(this.getProbability() * traverser.bulk());
 }
 if (0 == newBulk) return false;
 traverser.setBulk(newBulk);
@@ -89,7 +89,7 @@ public final class CoinStep extends FilterStep 
implements Seedable {
 
 @Override
 public int hashCode() {
-return super.hashCode() ^ Double.hashCode(this.probability.get());
+return super.hashCode() ^ Double.hashCode(this.getProbability());
 }
 
 @Override
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 ee151aed12..f22683fd14 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
@@ -43,7 +43,9 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.function.Supplier;
 
 /**
@@ -54,7 +56,8 @@ public class GraphStep extends 
AbstractStep implemen
 
 protected Parameters parameters = new Parameters();
 protected final Class returnClass;
-protected Object[] ids;
+protected GValue[] ids;
+protected boolean legacyLogicForPassingNoIds = false;
 protected transient Supplier> iteratorSupplier;
 protected boolean isStart;
 protected boolean done = false;
@@ -65,29 +68,45 @@ public class GraphStep extends 
AbstractStep implemen
 public GraphStep(final Traversal.Admin traversal, final Class 
returnClass, final boolean isStart, final Object... ids) {
 super(traversal);
 this.returnClass = returnClass;
-this.ids = (ids != null && ids.length == 1 && ids[0] instanceof 
Collection) ? ((Collection) ids[0]).toArray(new Object[((Collection) 
ids[0]).size()]) : ids;
+
+// if ids is a single collection like g.V(['a','b','c']), then unroll 
it into an array of ids
+this.ids = convertToGValues(tryUnrollSingleCollectionArgument(ids));
+
 this.isStart = isStart;
 
 this.iteratorSupplier = () -> (Iterator) 
(Vertex.class.isAssignableFrom(this.returnClass) ?

(tinkerpop) branch gvalue updated: wip - added param to has(string, string, object)

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue by this push:
 new 3a2034a033 wip - added param to has(string, string, object)
3a2034a033 is described below

commit 3a2034a033f058307e3c0a9eacfb5da2c7bea7db
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 18:02:11 2024 -0400

wip - added param to has(string, string, object)
---
 .../language/grammar/TraversalMethodVisitor.java   | 13 +---
 .../traversal/dsl/graph/GraphTraversal.java| 16 +++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  2 ++
 gremlin-go/driver/cucumber/gremlin.go  |  2 ++
 .../gremlin-javascript/test/cucumber/gremlin.js|  2 ++
 gremlin-python/src/main/python/radish/gremlin.py   |  2 ++
 .../gremlin/test/features/filter/Has.feature   | 24 ++
 7 files changed, 58 insertions(+), 3 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 38aa65f6b2..ce010e326e 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -836,9 +836,16 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_has_String_String_Object(final 
GremlinParser.TraversalMethod_has_String_String_ObjectContext ctx) {
-return 
graphTraversal.has(antlr.argumentVisitor.parseString(ctx.stringNullableArgument(0)),
-
antlr.argumentVisitor.parseString(ctx.stringNullableArgument(1)),
-
antlr.argumentVisitor.visitGenericLiteralArgument(ctx.genericLiteralArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument(0));
+if (GValue.valueInstanceOf(literalOrVar, GType.STRING)) {
+return graphTraversal.has((GValue) literalOrVar,
+
antlr.argumentVisitor.parseString(ctx.stringNullableArgument(1)),
+
antlr.argumentVisitor.visitGenericLiteralArgument(ctx.genericLiteralArgument()));
+} else {
+return graphTraversal.has((String) literalOrVar,
+
antlr.argumentVisitor.parseString(ctx.stringNullableArgument(1)),
+
antlr.argumentVisitor.visitGenericLiteralArgument(ctx.genericLiteralArgument()));
+}
 }
 
 /**
diff --git 
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
index b526d87b46..eaa9692cae 100644
--- 
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
@@ -684,6 +684,22 @@ public interface GraphTraversal extends Traversal {
 return this.asAdmin().addStep(step);
 }
 
+/**
+ * Filters vertices, edges and vertex properties based on their 
properties.
+ *
+ * @param label   the label of the {@link Element}
+ * @param propertyKey the key of the property to filter on
+ * @param value   the value to compare the accessor value to for 
equality
+ * @return the traversal with an appended {@link HasStep}
+ * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#has-step"; 
target="_blank">Reference Documentation - Has Step
+ * @since 4.0.0
+ */
+public default GraphTraversal has(final GValue label, 
final String propertyKey, final Object value) {
+this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.has, 
label.get(), propertyKey, value);
+TraversalHelper.addHasContainer(this.asAdmin(), new 
HasContainer(T.label.getAccessor(), P.eq(label)));
+return TraversalHelper.addHasContainer(this.asAdmin(), new 
HasContainer(propertyKey, value instanceof P ? (P) value : P.eq(value)));
+}
+
 @Override
 public default  GraphTraversal.Admin addStep(final Step step) {
 return (GraphTraversal.Admin) 
Traversal.Admin.super.addStep((Step) step);
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index caf09a049d..5e8664226b 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.N

(tinkerpop) 07/13: wip - refactoring around mu steps

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit c13a3646e528d268c1f29c184cd68443e85a9dd8
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 13:27:02 2024 -0400

wip - refactoring around mu steps
---
 .../language/grammar/TraversalMethodVisitor.java   | 28 -
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  8 +--
 .../gremlin/process/traversal/Operator.java|  8 +--
 .../gremlin/process/traversal/step/GValue.java | 23 +++-
 .../process/traversal/step/map/AddEdgeStep.java|  8 +--
 .../gremlin/process/traversal/step/GValueTest.java | 66 +-
 6 files changed, 106 insertions(+), 35 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 9878b96a9a..b9cb2e5642 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -93,7 +93,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_mergeV_Map(final 
GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return graphTraversal.mergeV((GValue>) 
literalOrVar);
 else
 return graphTraversal.mergeV((Map) literalOrVar);
@@ -129,7 +129,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_mergeE_Map(final 
GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return graphTraversal.mergeE((GValue>) 
literalOrVar);
 else
 return graphTraversal.mergeE((Map) literalOrVar);
@@ -456,12 +456,10 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_coin(final 
GremlinParser.TraversalMethod_coinContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument());
-if (literalOrVar instanceof Number)
-return graphTraversal.coin(((Number) literalOrVar).doubleValue());
-else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType().isNumeric())
+if (GValue.valueInstanceOfNumeric(literalOrVar))
 return graphTraversal.coin((GValue) literalOrVar);
 else
-throw new IllegalArgumentException("coin argument must be a 
double");
+return graphTraversal.coin(((Number) literalOrVar).doubleValue());
 
 }
 
@@ -657,12 +655,10 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public Traversal visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitStructureVertexArgument(ctx.structureVertexArgument());
-if (literalOrVar instanceof Vertex)
-return graphTraversal.from((Vertex) literalOrVar);
-else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.VERTEX)
+if (GValue.valueInstanceOf(literalOrVar, GType.VERTEX))
 return graphTraversal.from((GValue) literalOrVar);
 else
-throw new IllegalArgumentException("from argument must be a 
vertex");
+return graphTraversal.from((Vertex) literalOrVar);
 }
 
 /**
@@ -1197,7 +1193,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_option_Merge_Map(final 
GremlinParser.TraversalMethod_option_Merge_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return 
graphTraversal.option(antlr.argumentVisitor.parseMerge(ctx

(tinkerpop) 05/13: wip

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit c489ea35f4ce58fd984a92ea83f419d3817c754e
Author: Stephen Mallette 
AuthorDate: Thu Aug 8 16:24:37 2024 -0400

wip
---
 .../tinkerpop/gremlin/process/traversal/P.java   | 20 +---
 .../process/traversal/dsl/graph/GraphTraversal.java  |  7 +++
 .../gremlin/process/traversal/step/GValue.java   |  4 ++--
 .../process/traversal/step/map/GraphStep.java| 13 +
 .../process/traversal/step/util/AbstractStep.java| 19 ++-
 .../process/traversal/step/util/HasContainer.java|  6 --
 .../gremlin/process/traversal/step/GValueTest.java   |  4 ++--
 .../traversal/step/sideEffect/TinkerGraphStep.java   | 14 --
 8 files changed, 71 insertions(+), 16 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
index 56e1946368..622a3c3e3a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
@@ -25,7 +25,9 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.util.OrP;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * Predefined {@code Predicate} values that can be used to define filters to 
{@code has()} and {@code where()}.
@@ -75,10 +77,22 @@ public class P implements Predicate, Serializable, 
Cloneable {
 
 @Override
 public boolean test(final V testValue) {
-if (this.value instanceof GValue)
+if (this.value instanceof GValue) {
 return this.biPredicate.test(testValue, ((GValue) 
this.value).get());
-else
-return this.biPredicate.test(testValue, this.value);
+} else {
+// this might be a bunch of GValue that need to be resolved. zomg
+if (this.value instanceof List) {
+return this.biPredicate.test(testValue, (V) ((List) 
this.value).stream().map(o -> {
+if (o instanceof GValue) {
+return ((GValue) o).get();
+} else {
+return o;
+}
+}).collect(Collectors.toList()));
+} else {
+return this.biPredicate.test(testValue, this.value);
+}
+}
 }
 
 @Override
diff --git 
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
index da60cdcd7e..e7be61ae45 100644
--- 
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
@@ -25,6 +25,7 @@ import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRank
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PeerPressureVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ProgramVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
+import org.apache.tinkerpop.gremlin.process.traversal.Contains;
 import org.apache.tinkerpop.gremlin.process.traversal.DT;
 import org.apache.tinkerpop.gremlin.process.traversal.Failure;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
@@ -2837,6 +2838,12 @@ public interface GraphTraversal extends 
Traversal {
 } else {
 this.asAdmin().getBytecode().addStep(Symbols.hasId, id, otherIds);
 
+// the logic for dealing with hasId([]) is sketchy historically, 
just trying to maintain what we were
+// originally testing prior to GValue.
+if (id instanceof GValue && ((GValue) 
id).getType().isCollection()) {
+return TraversalHelper.addHasContainer(this.asAdmin(), new 
HasContainer(T.id.getAccessor(), new P(Contains.within, id)));
+}
+
 //using ArrayList given P.within() turns all arguments into lists
 final List ids = new ArrayList<>();
 if (id instanceof Object[]) {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
index 41caaea1a2..da0694acdc 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
+++ 
b/grem

(tinkerpop) 08/13: wip - add values getter on inject

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 7323e8ccd1c6129eff7cf10543e70dd86b88d7ba
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 14:02:19 2024 -0400

wip - add values getter on inject
---
 .../gremlin/process/traversal/step/sideEffect/InjectStep.java  | 7 +++
 .../gremlin/sparql/process/traversal/strategy/SparqlStrategy.java  | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
index cc3a970f93..4102cfdd57 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
@@ -55,4 +55,11 @@ public final class InjectStep extends StartStep {
 public GValue[] getInjections() {
 return this.injections;
 }
+
+/**
+ * Gets the injections of the step but unwraps the {@link GValue}.
+ */
+public S[] getInjectionsAsValues() {
+return (S[]) resolveToValues(this.injections);
+}
 }
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 a4a95cc1c1..f4938fb219 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
@@ -71,7 +71,7 @@ public class SparqlStrategy extends 
AbstractTraversalStrategy

(tinkerpop) 02/13: Get rid of P as a parameter in gherkin

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit c33151aea6d6690b718ba3daa3959072ad7853ee
Author: Stephen Mallette 
AuthorDate: Tue Jul 30 10:26:35 2024 -0400

Get rid of P as a parameter in gherkin

P can't really be used that way in the grammar so doesn't make sense to 
test that way.
---
 .../Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs|  7 ---
 .../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs   |  8 
 gremlin-go/driver/cucumber/cucumberSteps_test.go  | 15 +--
 gremlin-go/driver/cucumber/gremlin.go |  8 
 .../gremlin-javascript/test/cucumber/feature-steps.js |  4 
 .../gremlin-javascript/test/cucumber/gremlin.js   |  8 
 gremlin-python/src/main/python/radish/feature_steps.py| 11 ---
 gremlin-python/src/main/python/radish/gremlin.py  |  8 
 .../apache/tinkerpop/gremlin/features/StepDefinition.java |  5 -
 .../tinkerpop/gremlin/test/features/filter/HasId.feature  | 13 +
 10 files changed, 22 insertions(+), 65 deletions(-)

diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
index 98f8b0b5b4..98d49d8df7 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
@@ -115,13 +115,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
 _parameters.Add(name, parsedValue);
 }
 
-[Given("using the parameter (\\w+) of P.(\\w+)\\(\"(.*)\"\\)")]
-public void UsingParameterP(string name, string pval, string value)
-{
-var parsedValue = ParseValue(value.Replace("\\\"", "\""), 
_graphName!);
-_parameters.Add(name, new P(pval, parsedValue));
-}
-
 [Given("the traversal of")]
 public void TranslateTraversal(string traversalText)
 {
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index bd0a8e7469..c8cb66068e 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -268,9 +268,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_hasXlabel_isXpersonXX", new 
List, ITraversal>> 
{(g,p) =>g.V().Has(T.Label, __.Is("person"))}}, 
{"g_V_hasXname_nullX", new List, ITraversal>> {(g,p) =>g.V().Has("name", (object) 
null)}}, 
{"g_V_hasIdXemptyX_count", new List, ITraversal>> {(g,p) 
=>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_hasIdXwithinXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_hasIdXwithoutXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(p["xx1"])).Count()}}, 
+   {"g_V_hasIdXwithinXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(P.Within(new List {  })).Count()}}, 
+   {"g_V_hasIdXwithoutXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(P.Without(new List {  })).Count()}}, 
+   {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(P.Within(new List {  }))).Count()}}, 
{"g_V_hasIdXnullX", new List, ITraversal>> {(g,p) =>g.V().HasId(null)}}, 
{"g_V_hasIdXeqXnullXX", new List, ITraversal>> {(g,p) =>g.V().HasId(P.Eq(null))}}, 
{"g_V_hasIdX2_nullX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid2"], 
null)}}, 
@@ -278,7 +278,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_hasIdX1AsString_2AsString_nullX", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["vid1"], p["vid2"], null)}}, 
{"g_V_hasIdXnull_2X", new List, ITraversal>> {(g,p) =>g.V().HasId(null, 
p["vid2"])}}, 
{"g_V_hasIdX1X_hasIdX2X", new List, ITraversal>> {(g,p) 
=>g.V().HasId(p["vid1"]).HasId(p["vid2"])}}, 
-   {"g_V_in_hasIdXneqX1XX", new List, ITraversal>> {(g,p) 
=>g.V().In().HasId(p["xx1"])}}, 
+ 

(tinkerpop) 04/13: wip

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 7da00f720a81a35baf190a5b111cffc3d273dc15
Author: Stephen Mallette 
AuthorDate: Wed Aug 7 15:06:28 2024 -0400

wip
---
 .../grammar/DefaultGremlinBaseVisitor.java |  12 +--
 .../language/grammar/TraversalMethodVisitor.java   | 100 ++
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  15 ++-
 .../translator/DotNetTranslateVisitor.java |  23 ++--
 .../language/translator/TranslateVisitor.java  |   5 -
 .../gremlin/process/traversal/Operator.java|  10 +-
 .../traversal/dsl/graph/GraphTraversal.java| 117 -
 .../traversal/dsl/graph/GraphTraversalSource.java  |  32 +-
 .../gremlin/process/traversal/step/GValue.java |   9 +-
 .../process/traversal/step/map/AddEdgeStep.java|   9 +-
 .../process/traversal/step/map/CallStep.java   |  36 +--
 .../process/traversal/step/map/ConstantStep.java   |   2 +-
 .../process/traversal/step/map/DifferenceStep.java |  16 ++-
 .../process/traversal/step/map/DisjunctStep.java   |  12 ++-
 .../process/traversal/step/map/ProductStep.java|  15 ++-
 .../traversal/step/sideEffect/InjectStep.java  |   2 +-
 .../strategy/decoration/SideEffectStrategy.java|   7 +-
 gremlin-language/src/main/antlr4/Gremlin.g4|   7 +-
 .../tinkerpop/gremlin/features/StepDefinition.java |  25 ++---
 19 files changed, 331 insertions(+), 123 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index 3bfb22d17b..f32e40e44b 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -414,11 +414,11 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_from_Traversal(final 
GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_from_Traversal(final 
GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
@@ -854,11 +854,11 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_to_Traversal(final 
GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_to_Vertex(final 
GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_to_Vertex(final 
GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_to_Traversal(final 
GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
@@ -1395,10 +1395,6 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
 * {@inheritDoc}
 */
@Override public T visitTraversalMethod_option_Merge_Map(final 
GremlinParser.TraversalMethod_option_Merge_MapContext ctx) { 
notImplemented(ctx); return null; }
-   /**
-* {@inheritDoc}
-*/
-   @Override public T visitTraversalMethod_option_Merge_Traversal(final 
GremlinParser.TraversalMethod_option_Merge_TraversalContext ctx) { 
notImplemented(ctx); return null; }
/**
 * {@inheritDoc}
 */
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index fe500e6210..daf72820d4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -25,14 +25,12 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import

(tinkerpop) 09/13: wip - fixed .NET translator for conjoin

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit c6228f9859362480e93710e3dae278371ffd6e88
Author: Stephen Mallette 
AuthorDate: Sun Aug 25 09:51:42 2024 -0400

wip - fixed .NET translator for conjoin
---
 .../translator/DotNetTranslateVisitor.java | 10 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 24 +++---
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index df2c6b4d91..c7699c2345 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -929,6 +929,16 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 }
 }
 
+@Override
+public Void visitTraversalMethod_conjoin_String(final 
GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
+final String step = ctx.getChild(0).getText();
+sb.append(convertToPascalCase(step));
+sb.append("((string) ");
+visit(ctx.stringArgument());
+sb.append(")");
+return null;
+}
+
 @Override
 public Void visitTraversalMethod_propertyMap(final 
GremlinParser.TraversalMethod_propertyMapContext ctx) {
 return handleGenerics(ctx);
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 8d2fa79fa9..611b56f2db 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -628,18 +628,18 @@ namespace Gremlin.Net.IntegrationTest.Gherkin

{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX",
 new List, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label()).Concat(__.Select("a").InV().Values("name"))}},
 

{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX",
 new List, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label(),
 __.Select("a").InV().Values("name"))}}, 
{"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new 
List, ITraversal>> 
{(g,p) =>g.AddV("person").Property("name", "marko").Property("age", 
29).As("marko").AddV("person").Property("name", "vadas").Property("age", 
27).As("vadas").AddV("software").Property("name", "lop").Property("lang", 
"java").As("lop").AddV("person").Property("name", "josh").Property("age", 
32).As("josh").AddV("software").Property("name", "ripple [...]
-   {"g_injectXnullX_conjoinX1X", new 
List, ITraversal>> 
{(g,p) =>g.Inject(null).Conjoin("1")}}, 
-   {"g_V_valuesXnameX_conjoinX1X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("name").Conjoin("1")}}, 
-   {"g_V_valuesXnonexistantX_fold_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("nonexistant").Fold().Conjoin(";")}}, 
-   {"g_V_valuesXnameX_order_fold_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("name").Order().Fold().Conjoin("_")}}, 
-   {"g_V_valuesXageX_order_fold_conjoinXsemicolonX", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("age").Order().Fold().Conjoin(";")}}, 
-   {"g_V_valuesXageX_order_fold_conjoinXslashX", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("age").Order().Fold().Conjoin(p["xx1"])}}, 
-   {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new 
List, ITraversal>> 
{(g,p) 
=>g.V().Out().Path().By(__.Values("name").ToUpper()).Conjoin("MARKO")}},
 
-   {"g_injectXmarkoX_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.Inject(p["xx1"]).Conjoin("-")}}, 
-   
{"g_V_

(tinkerpop) 12/13: wip - refactoring to use GValue static methods for instanceOf checks

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 050f59c2bb6c51fe1f932d5903d111ca0d62e14f
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 12:50:30 2024 -0400

wip - refactoring to use GValue static methods for instanceOf checks
---
 .../apache/tinkerpop/gremlin/process/traversal/step/GValue.java| 1 -
 .../gremlin/process/traversal/step/util/HasContainer.java  | 4 ++--
 .../traversal/strategy/optimization/InlineFilterStrategy.java  | 7 ++-
 gremlin-go/driver/cucumber/gremlin.go  | 2 ++
 4 files changed, 6 insertions(+), 8 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
index f7692d6866..cb18dec8b9 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
@@ -367,7 +367,6 @@ public class GValue implements Cloneable, Serializable {
  * {@link GType}.
  */
 public static boolean instanceOf(final Object o, final GType type) {
-// todo: is this right for null?
 if (null == o)
 return false;
 else if (o instanceof GValue)
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
index d456b09df6..35689f8367 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/HasContainer.java
@@ -156,11 +156,11 @@ public class HasContainer implements Serializable, 
Cloneable, Predicate
 if (predicateValue instanceof Collection) {
 final Collection collection = (Collection) predicateValue;
 if (!collection.isEmpty()) {
-return ((Collection) predicateValue).stream().allMatch(c 
-> null == c || c instanceof String || (c instanceof GValue && ((GValue) 
c).getType() == GType.STRING));
+return ((Collection) predicateValue).stream().allMatch(c 
-> null == c || GValue.instanceOf(c, GType.STRING));
 }
 }
 
-return predicateValue instanceof String || (predicateValue 
instanceof GValue && ((GValue) predicateValue).getType() == GType.STRING);
+return GValue.instanceOf(predicateValue, GType.STRING);
 }
 
 return false;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
index 5ff63b3e0f..f7ff96009d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
@@ -129,9 +129,7 @@ public final class InlineFilterStrategy extends 
AbstractTraversalStrategy edgeLabels = new ArrayList<>();
 for (final HasContainer hasContainer : new 
ArrayList<>(step.getHasContainers())) {
 if (hasContainer.getKey().equals(T.label.getAccessor())) {
-if (hasContainer.getBiPredicate() == Compare.eq &&
-(hasContainer.getValue() instanceof String ||
-(hasContainer.getValue() instanceof GValue 
&& ((GValue) hasContainer.getValue()).getType() == GType.STRING)) &&
+if (hasContainer.getBiPredicate() == Compare.eq && 
GValue.instanceOf(hasContainer.getValue(), GType.STRING) &&
 edgeLabels.isEmpty()) {
 edgeLabels.add(hasContainer.getValue());
 step.removeHasContainer(hasContainer);
@@ -145,8 +143,7 @@ public final class InlineFilterStrategy extends 
AbstractTraversalStrategy> orps = ((OrP) 
hasContainer.getPredicate()).getPredicates();
 final List newEdges = new ArrayList<>();
 for (int i = 0; i < orps.size(); i++) {
-if (orps.get(i).getBiPredicate() == Compare.eq && 
(orps.get(i).getValue() instanceof String ||
-(orps.get(i).getValue() instanceof GValue 
&& ((GValue) orps.get(i).getValue()).getType() == GType.STRING)))
+if 

(tinkerpop) 01/13: wip - params

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 39c31aa131772c40f2b0c2ea2a62e64f3f505a3a
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 +-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 +++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 ++
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 ++-
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java| 270 +
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GType.java  |  81 ++
 .../gremlin/process/traversal/step/GValue.java | 321 +
 .../process/traversal/step/filter/CoinStep.java|  28 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/ConstantStep.java   |  19 +-
 .../process/traversal/step/map/GraphStep.java  |  30 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../optimization/AdjacentToIncidentStrategy.java   |   2 +-
 .../optimization/IncidentToAdjacentStrategy.java   |   2 +-
 .../optimization/InlineFilterStrategy.java |  20 +-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/structure/io/gryo/GryoVersion.java |  12 +-
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../gremlin/process/traversal/step/GTypeTest.java  |  77 +
 .../gremlin/process/traversal/step/GValueTest.java | 316 
 .../traversal/step/util/ParametersTest.java|  11 +
 .../translator/JavascriptTranslatorTest.java   |   8 +
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 ++-
 34 files changed, 1666 insertions(+), 120 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {
 return GremlinQueryParser.parse(script, antlr);
diff --git 
a/greml

(tinkerpop) 11/13: wip - translator fix for .NET

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 7b496ca70cb9e29278ad47620dcf1a510b686d87
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 08:22:01 2024 -0400

wip - translator fix for .NET
---
 .../translator/DotNetTranslateVisitor.java | 37 --
 .../language/translator/GremlinTranslatorTest.java | 20 +++-
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 20 ++--
 .../gremlin-javascript/test/cucumber/gremlin.js|  2 ++
 gremlin-python/src/main/python/radish/gremlin.py   |  2 ++
 5 files changed, 69 insertions(+), 12 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index c7699c2345..aaec8988e4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -740,10 +740,36 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 sb.append(")");
 return null;
 } else {
-return super.visitTraversalMethod_hasLabel_String_String(ctx);
+final String step = ctx.getChild(0).getText();
+sb.append(convertToPascalCase(step));
+sb.append("(");
+tryAppendCastToString(ctx.stringNullableArgument());
+visit(ctx.stringNullableArgument());
+
+// more arguments to come
+if (!ctx.stringLiteralVarargs().isEmpty())  sb.append(", ");
+visit(ctx.stringLiteralVarargs());
+
+sb.append(")");
+return null;
 }
 }
 
+@Override
+public Void visitStringLiteralVarargs(final 
GremlinParser.StringLiteralVarargsContext ctx) {
+for (int ix = 0; ix < ctx.getChildCount(); ix++) {
+final ParseTree pt = ctx.getChild(ix);
+if (pt instanceof GremlinParser.StringNullableArgumentContext) {
+GremlinParser.StringNullableArgumentContext sna = 
(GremlinParser.StringNullableArgumentContext) pt;
+tryAppendCastToString(sna);
+visit(sna);
+} else {
+visit(pt);
+}
+};
+return null;
+}
+
 @Override
 public Void visitTraversalMethod_index(final 
GremlinParser.TraversalMethod_indexContext ctx) {
 return handleGenerics(ctx);
@@ -933,7 +959,8 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 public Void visitTraversalMethod_conjoin_String(final 
GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
 final String step = ctx.getChild(0).getText();
 sb.append(convertToPascalCase(step));
-sb.append("((string) ");
+sb.append("(");
+tryAppendCastToString(ctx.stringArgument());
 visit(ctx.stringArgument());
 sb.append(")");
 return null;
@@ -1154,6 +1181,12 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 }
 }
 
+private void tryAppendCastToString(final 
GremlinParser.StringArgumentContext ctx) {
+if (ctx.variable() != null || ctx.stringLiteral() != null) {
+sb.append("(string) ");
+}
+}
+
 private void tryAppendCastToString(final 
GremlinParser.StringNullableArgumentContext ctx) {
 if (ctx.variable() != null || 
ctx.stringNullableLiteral().NullLiteral() != null) {
 sb.append("(string) ");
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
index ed68e16140..619d578a3c 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
@@ -697,7 +697,7 @@ public class GremlinTranslatorTest {
 {"g.V().hasLabel(null, 'software', 'class')",
 null,
 "g.V().hasLabel(string0, string1, string2)",
-"g.V().HasLabel(null, \"software\", \"class\")",
+"g.V().HasLabel((string) null, \"software\", 
\"class\")",
 "g.V().HasLabel(nil, \"software\", \"class\")",
  

(tinkerpop) 03/13: wip

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 52350507869a69e2512a02a45304550824364dc0
Author: Stephen Mallette 
AuthorDate: Wed Jul 31 16:15:58 2024 -0400

wip
---
 .../language/grammar/TraversalMethodVisitor.java   | 61 +
 .../grammar/TraversalSourceSpawnMethodVisitor.java | 14 +++-
 .../traversal/dsl/graph/GraphTraversal.java| 72 +++
 .../traversal/dsl/graph/GraphTraversalSource.java  | 46 +
 .../gremlin/process/traversal/step/GType.java  | 16 -
 .../gremlin/process/traversal/step/GValue.java |  5 +-
 .../process/traversal/step/filter/CoinStep.java|  6 +-
 .../process/traversal/step/map/CombineStep.java| 11 +--
 .../process/traversal/step/map/ConjoinStep.java| 17 +++--
 .../process/traversal/step/map/ConstantStep.java   |  6 +-
 .../process/traversal/step/map/GraphStep.java  | 80 +-
 .../process/traversal/step/map/IntersectStep.java  | 11 +--
 .../traversal/step/sideEffect/InjectStep.java  | 14 ++--
 .../process/traversal/step/util/AbstractStep.java  | 27 
 .../process/traversal/util/ListFunction.java   | 16 ++---
 .../gremlin/process/traversal/step/GValueTest.java | 30 
 .../tinkerpop/gremlin/features/StepDefinition.java | 32 +++--
 .../apache/tinkerpop/gremlin/features/World.java   |  9 +++
 .../gremlin/test/features/map/Conjoin.feature  | 12 
 .../traversal/step/sideEffect/Neo4jGraphStep.java  |  4 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java |  4 +-
 .../tinkerpop/gremlin/tinkergraph/TinkerWorld.java |  5 ++
 22 files changed, 382 insertions(+), 116 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 4f523c092f..fe500e6210 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -27,6 +27,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GType;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Collection;
 import java.util.Map;
 import java.util.function.BiFunction;
 
@@ -40,11 +41,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 /**
  * This object is used to append the traversal methods.
  */
-private final GraphTraversal graphTraversal;
+private final GraphTraversal.Admin graphTraversal;
 
 public TraversalMethodVisitor(final GremlinAntlrToJava antlr, final 
GraphTraversal graphTraversal) {
 super(antlr, graphTraversal);
-this.graphTraversal = graphTraversal;
+this.graphTraversal = graphTraversal.asAdmin();
 }
 
 /**
@@ -92,7 +93,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_mergeV_Map(final 
GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
-return 
this.graphTraversal.mergeV(antlr.argumentVisitor.parseMap(ctx.genericLiteralMapNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
+if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+return graphTraversal.mergeV((GValue>) 
literalOrVar);
+else
+return graphTraversal.mergeV((Map) literalOrVar);
 }
 
 /**
@@ -124,7 +129,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_mergeE_Map(final 
GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
-return 
this.graphTraversal.mergeE(antlr.argumentVisitor.parseMap(ctx.genericLiteralMapNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
+if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+return graphTraversal.mergeE((GValue>) 
literalOrVar);
+else
+return graphTraversal.mergeE((Map) literalOrVar);
 }
 
 /**
@@ -435,7 +444,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_combine_Object(final 
GremlinParser.TraversalMethod_combine_ObjectContext ctx) {
-return 
graphTraversal.combine(antlr.argumentVisitor.visitGenericLiteralArgument(ctx.genericLiteralArgume

(tinkerpop) 13/13: wip - fixup after rebase

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 85cd6a9eca67efdd624ff66694eb0897e7ee5a97
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 15:15:20 2024 -0400

wip - fixup after rebase
---
 .../process/traversal/dsl/graph/GraphTraversal.java   |  4 ++--
 .../process/traversal/step/map/MergeElementStep.java  | 14 +++---
 .../gremlin/process/traversal/step/map/MergeStep.java | 19 ++-
 3 files changed, 27 insertions(+), 10 deletions(-)

diff --git 
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
index a226978a2a..b526d87b46 100644
--- 
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
@@ -590,13 +590,13 @@ public interface GraphTraversal extends 
Traversal {
 /**
  * Merges the list traverser and list argument. Also known as union.
  *
- * @return the traversal with an appended {@link TraversalMergeStep}.
+ * @return the traversal with an appended {@link MergeStep}.
  * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#merge-step";
 target="_blank">Reference Documentation - Merge Step
  * @since 3.7.3
  */
 public default  GraphTraversal merge(final GValue 
values) {
 this.asAdmin().getBytecode().addStep(GraphTraversal.Symbols.merge, 
values);
-return this.asAdmin().addStep(new 
TraversalMergeStep<>(this.asAdmin(), values));
+return this.asAdmin().addStep(new MergeStep<>(this.asAdmin(), 
values));
 }
 
 /**
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeElementStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeElementStep.java
index 44e954fb31..6835387c5e 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeElementStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeElementStep.java
@@ -35,6 +35,8 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.lambda.ConstantTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.lambda.IdentityTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Deleting;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GType;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Writing;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Parameters;
@@ -80,6 +82,11 @@ public abstract class MergeElementStep extends 
FlatMapStep
 validate(mergeMap, false);
 }
 
+public MergeElementStep(final Traversal.Admin traversal, final boolean 
isStart, final GValue mergeMap) {
+this(traversal, isStart, new ConstantTraversal<>(mergeMap));
+validate(mergeMap.get(), false);
+}
+
 public MergeElementStep(final Traversal.Admin traversal, final boolean 
isStart,
 final Traversal.Admin mergeTraversal) {
 super(traversal);
@@ -279,7 +286,7 @@ public abstract class MergeElementStep extends 
FlatMapStep
 op, allowedTokens, k));
 }
 if (k == T.label) {
-if (!(v instanceof String)) {
+if (!(GValue.instanceOf(v, GType.STRING))) {
 throw new IllegalArgumentException(String.format(
 "%s() and option(onCreate) args expect T.label 
value to be of String - found: %s", op,
 v.getClass().getSimpleName()));
@@ -318,7 +325,8 @@ public abstract class MergeElementStep extends 
FlatMapStep
  * null Map == empty Map
  */
 protected Map materializeMap(final Traverser.Admin traverser, 
Traversal.Admin mapTraversal) {
-Map map = (Map) TraversalUtil.apply(traverser, mapTraversal);
+final Object o = TraversalUtil.apply(traverser, mapTraversal);
+Map map = GValue.getFrom(o);
 
 // PartitionStrategy uses parameters as a mechanism for setting the 
partition key. trying to be as specific
 // as possible here wrt parameters usage to avoid misuse
@@ -360,7 +368,7 @@ public abstract class MergeElementStep extends 
FlatMapStep
 return id != null ?

(tinkerpop) 10/13: wip - fixed hasLabel(String, String...) for params

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 6da219f2edae58ad2f734b25aa356772030db35f
Author: Stephen Mallette 
AuthorDate: Sun Aug 25 10:29:19 2024 -0400

wip - fixed hasLabel(String, String...) for params
---
 .../language/grammar/TraversalMethodVisitor.java   |  2 +-
 .../gremlin/test/features/filter/HasLabel.feature  | 28 ++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index b9cb2e5642..38aa65f6b2 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -771,7 +771,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 // since we normalized above to gvalue or literal we can just test 
the first arg for gvalue-ness
 if (GValue.valueInstanceOf(literalOrVar, GType.STRING)) {
 final GValue[] gvalueLiteralOrVars = literalOrVars == null ? 
null : Arrays.stream(literalOrVars).map(o -> (GValue) o).toArray(GValue[]::new);
-return graphTraversal.hasLabel((GValue) literalOrVar, 
(GValue[]) literalOrVars);
+return graphTraversal.hasLabel((GValue) literalOrVar, 
(GValue[]) gvalueLiteralOrVars);
 } else {
 // convert object array to string array
 final String[] stringLiteralOrVars = literalOrVars == null ? 
null : Arrays.stream(literalOrVars).map(o -> (String) o).toArray(String[]::new);
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
index 470019f36d..2da655e7e6 100644
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
@@ -87,6 +87,34 @@ Feature: Step - hasLabel()
 When iterated to list
 Then the result should be empty
 
+  Scenario: g_V_hasLabelXpersonvarX_hasLabelXsoftwareX
+Given the modern graph
+And using the parameter xx1 defined as "person"
+And the traversal of
+"""
+g.V().hasLabel(xx1).hasLabel("software")
+"""
+When iterated to list
+Then the result should be empty
+
+  Scenario: g_V_hasLabelXpersonvar_softwarevarX
+Given the modern graph
+And using the parameter xx1 defined as "person"
+And using the parameter xx2 defined as "software"
+And the traversal of
+"""
+g.V().hasLabel(xx1,xx2)
+"""
+When iterated to list
+Then the result should be unordered
+  | result |
+  | v[marko] |
+  | v[vadas] |
+  | v[josh] |
+  | v[peter] |
+  | v[lop] |
+  | v[ripple] |
+
   Scenario: 
g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20_andXltX29X_orXeqX35_name
 Given the modern graph
 And the traversal of



(tinkerpop) 06/13: wip - hasLabel(String, String...) fixes, more GValue utility

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit a7cb7c629c9d45a65af272d68562a18b916e735f
Author: Stephen Mallette 
AuthorDate: Wed Aug 21 15:35:01 2024 -0400

wip - hasLabel(String, String...) fixes, more GValue utility
---
 .../language/grammar/GenericLiteralVisitor.java|  14 +++
 .../language/grammar/TraversalMethodVisitor.java   |  27 +-
 .../translator/DotNetTranslateVisitor.java |   2 +-
 .../traversal/dsl/graph/GraphTraversal.java|   2 +-
 .../gremlin/process/traversal/step/GType.java  |  40 
 .../gremlin/process/traversal/step/GValue.java |  55 ++-
 .../process/traversal/step/map/AddEdgeStep.java|   4 +-
 .../process/traversal/step/map/GraphStep.java  |   4 +-
 .../strategy/decoration/ElementIdStrategy.java |   7 +-
 .../language/translator/GremlinTranslatorTest.java |   9 ++
 .../gremlin/process/traversal/step/GValueTest.java | 102 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  11 ++-
 gremlin-go/driver/cucumber/gremlin.go  |   3 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|   3 +-
 gremlin-python/src/main/python/radish/gremlin.py   |   3 +-
 .../gremlin/test/features/map/Conjoin.feature  |   4 +-
 .../traversal/step/sideEffect/Neo4jGraphStep.java  |   4 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java |   4 +-
 18 files changed, 253 insertions(+), 45 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index f29c563d3b..d3a16d6d01 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -658,4 +658,18 @@ public class GenericLiteralVisitor extends 
DefaultGremlinBaseVisitor {
 else
 return StringEscapeUtils.unescapeJava(stripQuotes(ctx.getText()));
 }
+
+@Override
+public Object[] visitStringLiteralVarargs(final 
GremlinParser.StringLiteralVarargsContext ctx) {
+if (ctx == null) {
+return new Object[0];
+}
+return ctx.children
+.stream()
+.filter(Objects::nonNull)
+.filter(p -> p instanceof 
GremlinParser.StringNullableArgumentContext)
+.map(p -> (GremlinParser.StringNullableArgumentContext) p)
+.map(antlr.argumentVisitor::visitStringNullableArgument)
+.toArray(Object[]::new);
+}
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index daf72820d4..9878b96a9a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -28,6 +28,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Arrays;
 import java.util.Map;
 import java.util.function.BiFunction;
 
@@ -756,10 +757,30 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_hasLabel_String_String(final 
GremlinParser.TraversalMethod_hasLabel_String_StringContext ctx) {
 if (ctx.getChildCount() == 4) {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+if (GValue.valueInstanceOf(literalOrVar, GType.STRING))
+return graphTraversal.hasLabel((GValue) literalOrVar);
+else
+return graphTraversal.hasLabel((String) literalOrVar);
 } else {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()),
-
antlr.genericVisitor.parseStringVarargs(ctx.stringLiteralVarargs()));
+Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+Object[] literalOrVars = 
antlr.genericVisitor.visitStringLiteralVarargs(ctx.stringLiteralVarargs());
+
+// if any are GValue then they all need to be GValue to call 
hasLabel
+if (literalOrVar instanceof GValue || 
Arrays.stream(literalOrVars).anyMatch(lov -> lov instance

(tinkerpop) branch gvalue updated (56c7297e5e -> 85cd6a9eca)

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 56c7297e5e wip - translator fix for .NET
 discard e217e9dcae wip - fixed hasLabel(String, String...) for params
 discard 523a68bea5 wip - fixed .NET translator for conjoin
 discard 45aa4ab1f9 wip - add values getter on inject
 discard 9f560e0818 wip - refactoring around mu steps
 discard 555f3c743a wip - hasLabel(String, String...) fixes, more GValue utility
 discard 21f4fe37e8 wip
 discard 2671097d94 wip
 discard 9f82114678 wip
 discard 8bd0770157 Get rid of P as a parameter in gherkin
 discard 47f3de100c wip - params
 add dafc54e4d9 Renamed steps around "merge" for better consistency.
 add c1e07eb316 Merge pull request #2725 from apache/merge-rename
 new 39c31aa131 wip - params
 new c33151aea6 Get rid of P as a parameter in gherkin
 new 5235050786 wip
 new 7da00f720a wip
 new c489ea35f4 wip
 new a7cb7c629c wip - hasLabel(String, String...) fixes, more GValue utility
 new c13a3646e5 wip - refactoring around mu steps
 new 7323e8ccd1 wip - add values getter on inject
 new c6228f9859 wip - fixed .NET translator for conjoin
 new 6da219f2ed wip - fixed hasLabel(String, String...) for params
 new 7b496ca70c wip - translator fix for .NET
 new 050f59c2bb wip - refactoring to use GValue static methods for 
instanceOf checks
 new 85cd6a9eca wip - fixup after rebase

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (56c7297e5e)
\
 N -- N -- N   refs/heads/gvalue (85cd6a9eca)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 13 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |   2 +
 .../traversal/dsl/graph/GraphTraversal.java|  10 +-
 .../gremlin/process/traversal/step/GValue.java |   1 -
 .../process/traversal/step/map/MergeEdgeStep.java  |   4 +-
 .../map/{MergeStep.java => MergeElementStep.java}  |  30 +-
 .../process/traversal/step/map/MergeStep.java  | 402 -
 .../traversal/step/map/MergeVertexStep.java|   4 +-
 .../traversal/step/map/TraversalMergeStep.java | 136 ---
 .../process/traversal/step/util/HasContainer.java  |   4 +-
 .../optimization/InlineFilterStrategy.java |   7 +-
 .../process/traversal/util/BytecodeHelper.java |   4 +-
 ...versalMergeStepTest.java => MergeStepTest.java} |   2 +-
 gremlin-go/driver/cucumber/gremlin.go  |   2 +
 13 files changed, 101 insertions(+), 507 deletions(-)
 copy 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/{MergeStep.java
 => MergeElementStep.java} (93%)
 delete mode 100644 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMergeStep.java
 rename 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/{TraversalMergeStepTest.java
 => MergeStepTest.java} (98%)



(tinkerpop) branch merge-rename deleted (was dafc54e4d9)

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch merge-rename
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 was dafc54e4d9 Renamed steps around "merge" for better consistency.

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(tinkerpop) branch master updated (54926bdee0 -> c1e07eb316)

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 54926bdee0 Merge branch '3.7-dev'
 add dafc54e4d9 Renamed steps around "merge" for better consistency.
 new c1e07eb316 Merge pull request #2725 from apache/merge-rename

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |   2 +
 .../traversal/dsl/graph/GraphTraversal.java|   6 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   4 +-
 .../map/{MergeStep.java => MergeElementStep.java}  |  15 +-
 .../process/traversal/step/map/MergeStep.java  | 388 -
 .../traversal/step/map/MergeVertexStep.java|   4 +-
 .../traversal/step/map/TraversalMergeStep.java | 126 ---
 .../process/traversal/util/BytecodeHelper.java |   4 +-
 ...versalMergeStepTest.java => MergeStepTest.java} |   2 +-
 9 files changed, 85 insertions(+), 466 deletions(-)
 copy 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/{MergeStep.java
 => MergeElementStep.java} (96%)
 delete mode 100644 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMergeStep.java
 rename 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/{TraversalMergeStepTest.java
 => MergeStepTest.java} (98%)



(tinkerpop) 01/01: Merge pull request #2725 from apache/merge-rename

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit c1e07eb316a308da4f2b2ec2787c453d6ecc932f
Merge: 54926bdee0 dafc54e4d9
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 09:12:16 2024 -0400

Merge pull request #2725 from apache/merge-rename

Renamed steps around "merge" for better consistency.

 CHANGELOG.asciidoc |   2 +
 .../traversal/dsl/graph/GraphTraversal.java|   6 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   4 +-
 .../map/{MergeStep.java => MergeElementStep.java}  |  15 +-
 .../process/traversal/step/map/MergeStep.java  | 388 -
 .../traversal/step/map/MergeVertexStep.java|   4 +-
 .../traversal/step/map/TraversalMergeStep.java | 126 ---
 .../process/traversal/util/BytecodeHelper.java |   4 +-
 ...versalMergeStepTest.java => MergeStepTest.java} |   2 +-
 9 files changed, 85 insertions(+), 466 deletions(-)




(tinkerpop) 04/11: wip

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 2671097d94d05e967cd3dcb74fc01f761d1c9d33
Author: Stephen Mallette 
AuthorDate: Wed Aug 7 15:06:28 2024 -0400

wip
---
 .../grammar/DefaultGremlinBaseVisitor.java |  12 +--
 .../language/grammar/TraversalMethodVisitor.java   | 100 ++
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  15 ++-
 .../translator/DotNetTranslateVisitor.java |  23 ++--
 .../language/translator/TranslateVisitor.java  |   5 -
 .../gremlin/process/traversal/Operator.java|  10 +-
 .../traversal/dsl/graph/GraphTraversal.java| 117 -
 .../traversal/dsl/graph/GraphTraversalSource.java  |  32 +-
 .../gremlin/process/traversal/step/GValue.java |   9 +-
 .../process/traversal/step/map/AddEdgeStep.java|   9 +-
 .../process/traversal/step/map/CallStep.java   |  36 +--
 .../process/traversal/step/map/ConstantStep.java   |   2 +-
 .../process/traversal/step/map/DifferenceStep.java |  16 ++-
 .../process/traversal/step/map/DisjunctStep.java   |  12 ++-
 .../process/traversal/step/map/ProductStep.java|  15 ++-
 .../traversal/step/map/TraversalMergeStep.java |   3 +-
 .../traversal/step/sideEffect/InjectStep.java  |   2 +-
 .../strategy/decoration/SideEffectStrategy.java|   7 +-
 gremlin-language/src/main/antlr4/Gremlin.g4|   7 +-
 .../tinkerpop/gremlin/features/StepDefinition.java |  25 ++---
 20 files changed, 333 insertions(+), 124 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index 3bfb22d17b..f32e40e44b 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -414,11 +414,11 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_from_Traversal(final 
GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_from_Traversal(final 
GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
@@ -854,11 +854,11 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_to_Traversal(final 
GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_to_Vertex(final 
GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_to_Vertex(final 
GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_to_Traversal(final 
GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
@@ -1395,10 +1395,6 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
 * {@inheritDoc}
 */
@Override public T visitTraversalMethod_option_Merge_Map(final 
GremlinParser.TraversalMethod_option_Merge_MapContext ctx) { 
notImplemented(ctx); return null; }
-   /**
-* {@inheritDoc}
-*/
-   @Override public T visitTraversalMethod_option_Merge_Traversal(final 
GremlinParser.TraversalMethod_option_Merge_TraversalContext ctx) { 
notImplemented(ctx); return null; }
/**
 * {@inheritDoc}
 */
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index fe500e6210..daf72820d4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -25,14 +25,12 @@ import

(tinkerpop) 02/11: Get rid of P as a parameter in gherkin

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 8bd077015773f317ed381ff719946815f8d0d20f
Author: Stephen Mallette 
AuthorDate: Tue Jul 30 10:26:35 2024 -0400

Get rid of P as a parameter in gherkin

P can't really be used that way in the grammar so doesn't make sense to 
test that way.
---
 .../Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs|  7 ---
 .../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs   |  8 
 gremlin-go/driver/cucumber/cucumberSteps_test.go  | 15 +--
 gremlin-go/driver/cucumber/gremlin.go |  8 
 .../gremlin-javascript/test/cucumber/feature-steps.js |  4 
 .../gremlin-javascript/test/cucumber/gremlin.js   |  8 
 gremlin-python/src/main/python/radish/feature_steps.py| 11 ---
 gremlin-python/src/main/python/radish/gremlin.py  |  8 
 .../apache/tinkerpop/gremlin/features/StepDefinition.java |  5 -
 .../tinkerpop/gremlin/test/features/filter/HasId.feature  | 13 +
 10 files changed, 22 insertions(+), 65 deletions(-)

diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
index 98f8b0b5b4..98d49d8df7 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
@@ -115,13 +115,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
 _parameters.Add(name, parsedValue);
 }
 
-[Given("using the parameter (\\w+) of P.(\\w+)\\(\"(.*)\"\\)")]
-public void UsingParameterP(string name, string pval, string value)
-{
-var parsedValue = ParseValue(value.Replace("\\\"", "\""), 
_graphName!);
-_parameters.Add(name, new P(pval, parsedValue));
-}
-
 [Given("the traversal of")]
 public void TranslateTraversal(string traversalText)
 {
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index bd0a8e7469..c8cb66068e 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -268,9 +268,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_hasXlabel_isXpersonXX", new 
List, ITraversal>> 
{(g,p) =>g.V().Has(T.Label, __.Is("person"))}}, 
{"g_V_hasXname_nullX", new List, ITraversal>> {(g,p) =>g.V().Has("name", (object) 
null)}}, 
{"g_V_hasIdXemptyX_count", new List, ITraversal>> {(g,p) 
=>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_hasIdXwithinXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_hasIdXwithoutXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(p["xx1"])).Count()}}, 
+   {"g_V_hasIdXwithinXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(P.Within(new List {  })).Count()}}, 
+   {"g_V_hasIdXwithoutXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(P.Without(new List {  })).Count()}}, 
+   {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(P.Within(new List {  }))).Count()}}, 
{"g_V_hasIdXnullX", new List, ITraversal>> {(g,p) =>g.V().HasId(null)}}, 
{"g_V_hasIdXeqXnullXX", new List, ITraversal>> {(g,p) =>g.V().HasId(P.Eq(null))}}, 
{"g_V_hasIdX2_nullX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid2"], 
null)}}, 
@@ -278,7 +278,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_hasIdX1AsString_2AsString_nullX", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["vid1"], p["vid2"], null)}}, 
{"g_V_hasIdXnull_2X", new List, ITraversal>> {(g,p) =>g.V().HasId(null, 
p["vid2"])}}, 
{"g_V_hasIdX1X_hasIdX2X", new List, ITraversal>> {(g,p) 
=>g.V().HasId(p["vid1"]).HasId(p["vid2"])}}, 
-   {"g_V_in_hasIdXneqX1XX", new List, ITraversal>> {(g,p) 
=>g.V().In().HasId(p["xx1"])}}, 
+ 

(tinkerpop) 07/11: wip - refactoring around mu steps

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 9f560e081852bfc14c440f29d2f21bf8a5e3179f
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 13:27:02 2024 -0400

wip - refactoring around mu steps
---
 .../language/grammar/TraversalMethodVisitor.java   | 28 -
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  8 +--
 .../gremlin/process/traversal/Operator.java|  8 +--
 .../gremlin/process/traversal/step/GValue.java | 23 +++-
 .../process/traversal/step/map/AddEdgeStep.java|  8 +--
 .../gremlin/process/traversal/step/GValueTest.java | 66 +-
 6 files changed, 106 insertions(+), 35 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 9878b96a9a..b9cb2e5642 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -93,7 +93,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_mergeV_Map(final 
GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return graphTraversal.mergeV((GValue>) 
literalOrVar);
 else
 return graphTraversal.mergeV((Map) literalOrVar);
@@ -129,7 +129,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_mergeE_Map(final 
GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return graphTraversal.mergeE((GValue>) 
literalOrVar);
 else
 return graphTraversal.mergeE((Map) literalOrVar);
@@ -456,12 +456,10 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_coin(final 
GremlinParser.TraversalMethod_coinContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument());
-if (literalOrVar instanceof Number)
-return graphTraversal.coin(((Number) literalOrVar).doubleValue());
-else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType().isNumeric())
+if (GValue.valueInstanceOfNumeric(literalOrVar))
 return graphTraversal.coin((GValue) literalOrVar);
 else
-throw new IllegalArgumentException("coin argument must be a 
double");
+return graphTraversal.coin(((Number) literalOrVar).doubleValue());
 
 }
 
@@ -657,12 +655,10 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public Traversal visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitStructureVertexArgument(ctx.structureVertexArgument());
-if (literalOrVar instanceof Vertex)
-return graphTraversal.from((Vertex) literalOrVar);
-else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.VERTEX)
+if (GValue.valueInstanceOf(literalOrVar, GType.VERTEX))
 return graphTraversal.from((GValue) literalOrVar);
 else
-throw new IllegalArgumentException("from argument must be a 
vertex");
+return graphTraversal.from((Vertex) literalOrVar);
 }
 
 /**
@@ -1197,7 +1193,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_option_Merge_Map(final 
GremlinParser.TraversalMethod_option_Merge_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return 
graphTraversal.option(antlr.argumentVisitor.parseMerge(ctx

(tinkerpop) 10/11: wip - fixed hasLabel(String, String...) for params

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit e217e9dcaecac9044305b1e280db75f4e45c810c
Author: Stephen Mallette 
AuthorDate: Sun Aug 25 10:29:19 2024 -0400

wip - fixed hasLabel(String, String...) for params
---
 .../language/grammar/TraversalMethodVisitor.java   |  2 +-
 .../gremlin/test/features/filter/HasLabel.feature  | 28 ++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index b9cb2e5642..38aa65f6b2 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -771,7 +771,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 // since we normalized above to gvalue or literal we can just test 
the first arg for gvalue-ness
 if (GValue.valueInstanceOf(literalOrVar, GType.STRING)) {
 final GValue[] gvalueLiteralOrVars = literalOrVars == null ? 
null : Arrays.stream(literalOrVars).map(o -> (GValue) o).toArray(GValue[]::new);
-return graphTraversal.hasLabel((GValue) literalOrVar, 
(GValue[]) literalOrVars);
+return graphTraversal.hasLabel((GValue) literalOrVar, 
(GValue[]) gvalueLiteralOrVars);
 } else {
 // convert object array to string array
 final String[] stringLiteralOrVars = literalOrVars == null ? 
null : Arrays.stream(literalOrVars).map(o -> (String) o).toArray(String[]::new);
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
index 470019f36d..2da655e7e6 100644
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
@@ -87,6 +87,34 @@ Feature: Step - hasLabel()
 When iterated to list
 Then the result should be empty
 
+  Scenario: g_V_hasLabelXpersonvarX_hasLabelXsoftwareX
+Given the modern graph
+And using the parameter xx1 defined as "person"
+And the traversal of
+"""
+g.V().hasLabel(xx1).hasLabel("software")
+"""
+When iterated to list
+Then the result should be empty
+
+  Scenario: g_V_hasLabelXpersonvar_softwarevarX
+Given the modern graph
+And using the parameter xx1 defined as "person"
+And using the parameter xx2 defined as "software"
+And the traversal of
+"""
+g.V().hasLabel(xx1,xx2)
+"""
+When iterated to list
+Then the result should be unordered
+  | result |
+  | v[marko] |
+  | v[vadas] |
+  | v[josh] |
+  | v[peter] |
+  | v[lop] |
+  | v[ripple] |
+
   Scenario: 
g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20_andXltX29X_orXeqX35_name
 Given the modern graph
 And the traversal of



(tinkerpop) 03/11: wip

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 9f82114678e6cb07f0afdf52251a6040dde9d528
Author: Stephen Mallette 
AuthorDate: Wed Jul 31 16:15:58 2024 -0400

wip
---
 .../language/grammar/TraversalMethodVisitor.java   | 61 +
 .../grammar/TraversalSourceSpawnMethodVisitor.java | 14 +++-
 .../traversal/dsl/graph/GraphTraversal.java| 72 +++
 .../traversal/dsl/graph/GraphTraversalSource.java  | 46 +
 .../gremlin/process/traversal/step/GType.java  | 16 -
 .../gremlin/process/traversal/step/GValue.java |  5 +-
 .../process/traversal/step/filter/CoinStep.java|  6 +-
 .../process/traversal/step/map/CombineStep.java| 11 +--
 .../process/traversal/step/map/ConjoinStep.java| 17 +++--
 .../process/traversal/step/map/ConstantStep.java   |  6 +-
 .../process/traversal/step/map/GraphStep.java  | 80 +-
 .../process/traversal/step/map/IntersectStep.java  | 11 +--
 .../process/traversal/step/map/MergeStep.java  |  5 +-
 .../traversal/step/map/TraversalMergeStep.java | 19 +++--
 .../traversal/step/sideEffect/InjectStep.java  | 14 ++--
 .../process/traversal/step/util/AbstractStep.java  | 27 
 .../process/traversal/util/ListFunction.java   | 16 ++---
 .../gremlin/process/traversal/step/GValueTest.java | 30 
 .../tinkerpop/gremlin/features/StepDefinition.java | 32 +++--
 .../apache/tinkerpop/gremlin/features/World.java   |  9 +++
 .../gremlin/test/features/map/Conjoin.feature  | 12 
 .../traversal/step/sideEffect/Neo4jGraphStep.java  |  4 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java |  4 +-
 .../tinkerpop/gremlin/tinkergraph/TinkerWorld.java |  5 ++
 24 files changed, 399 insertions(+), 123 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 4f523c092f..fe500e6210 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -27,6 +27,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GType;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Collection;
 import java.util.Map;
 import java.util.function.BiFunction;
 
@@ -40,11 +41,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 /**
  * This object is used to append the traversal methods.
  */
-private final GraphTraversal graphTraversal;
+private final GraphTraversal.Admin graphTraversal;
 
 public TraversalMethodVisitor(final GremlinAntlrToJava antlr, final 
GraphTraversal graphTraversal) {
 super(antlr, graphTraversal);
-this.graphTraversal = graphTraversal;
+this.graphTraversal = graphTraversal.asAdmin();
 }
 
 /**
@@ -92,7 +93,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_mergeV_Map(final 
GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
-return 
this.graphTraversal.mergeV(antlr.argumentVisitor.parseMap(ctx.genericLiteralMapNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
+if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+return graphTraversal.mergeV((GValue>) 
literalOrVar);
+else
+return graphTraversal.mergeV((Map) literalOrVar);
 }
 
 /**
@@ -124,7 +129,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_mergeE_Map(final 
GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
-return 
this.graphTraversal.mergeE(antlr.argumentVisitor.parseMap(ctx.genericLiteralMapNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
+if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+return graphTraversal.mergeE((GValue>) 
literalOrVar);
+else
+return graphTraversal.mergeE((Map) literalOrVar);
 }
 
 /**
@@ -435,7 +444,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_combine_Object(final 
GremlinParser.TraversalMethod_combine_ObjectContext 

(tinkerpop) 01/11: wip - params

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 47f3de100ce68b93fe3f8ae6e76ef708f4513cbf
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 +-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 +++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 ++
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 ++-
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java| 270 +
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GType.java  |  81 ++
 .../gremlin/process/traversal/step/GValue.java | 321 +
 .../process/traversal/step/filter/CoinStep.java|  28 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/ConstantStep.java   |  19 +-
 .../process/traversal/step/map/GraphStep.java  |  30 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../process/traversal/step/map/MergeStep.java  |  18 +-
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../optimization/AdjacentToIncidentStrategy.java   |   2 +-
 .../optimization/IncidentToAdjacentStrategy.java   |   2 +-
 .../optimization/InlineFilterStrategy.java |  20 +-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/structure/io/gryo/GryoVersion.java |  12 +-
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../gremlin/process/traversal/step/GTypeTest.java  |  77 +
 .../gremlin/process/traversal/step/GValueTest.java | 316 
 .../traversal/step/util/ParametersTest.java|  11 +
 .../translator/JavascriptTranslatorTest.java   |   8 +
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 ++-
 35 files changed, 1682 insertions(+), 122 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {

(tinkerpop) 06/11: wip - hasLabel(String, String...) fixes, more GValue utility

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 555f3c743a1c4c20d1daddfbe319e215b76e
Author: Stephen Mallette 
AuthorDate: Wed Aug 21 15:35:01 2024 -0400

wip - hasLabel(String, String...) fixes, more GValue utility
---
 .../language/grammar/GenericLiteralVisitor.java|  14 +++
 .../language/grammar/TraversalMethodVisitor.java   |  27 +-
 .../translator/DotNetTranslateVisitor.java |   2 +-
 .../traversal/dsl/graph/GraphTraversal.java|   2 +-
 .../gremlin/process/traversal/step/GType.java  |  40 
 .../gremlin/process/traversal/step/GValue.java |  55 ++-
 .../process/traversal/step/map/AddEdgeStep.java|   4 +-
 .../process/traversal/step/map/GraphStep.java  |   4 +-
 .../strategy/decoration/ElementIdStrategy.java |   7 +-
 .../language/translator/GremlinTranslatorTest.java |   9 ++
 .../gremlin/process/traversal/step/GValueTest.java | 102 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  11 ++-
 gremlin-go/driver/cucumber/gremlin.go  |   3 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|   3 +-
 gremlin-python/src/main/python/radish/gremlin.py   |   3 +-
 .../gremlin/test/features/map/Conjoin.feature  |   4 +-
 .../traversal/step/sideEffect/Neo4jGraphStep.java  |   4 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java |   4 +-
 18 files changed, 253 insertions(+), 45 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index f29c563d3b..d3a16d6d01 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -658,4 +658,18 @@ public class GenericLiteralVisitor extends 
DefaultGremlinBaseVisitor {
 else
 return StringEscapeUtils.unescapeJava(stripQuotes(ctx.getText()));
 }
+
+@Override
+public Object[] visitStringLiteralVarargs(final 
GremlinParser.StringLiteralVarargsContext ctx) {
+if (ctx == null) {
+return new Object[0];
+}
+return ctx.children
+.stream()
+.filter(Objects::nonNull)
+.filter(p -> p instanceof 
GremlinParser.StringNullableArgumentContext)
+.map(p -> (GremlinParser.StringNullableArgumentContext) p)
+.map(antlr.argumentVisitor::visitStringNullableArgument)
+.toArray(Object[]::new);
+}
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index daf72820d4..9878b96a9a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -28,6 +28,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Arrays;
 import java.util.Map;
 import java.util.function.BiFunction;
 
@@ -756,10 +757,30 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_hasLabel_String_String(final 
GremlinParser.TraversalMethod_hasLabel_String_StringContext ctx) {
 if (ctx.getChildCount() == 4) {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+if (GValue.valueInstanceOf(literalOrVar, GType.STRING))
+return graphTraversal.hasLabel((GValue) literalOrVar);
+else
+return graphTraversal.hasLabel((String) literalOrVar);
 } else {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()),
-
antlr.genericVisitor.parseStringVarargs(ctx.stringLiteralVarargs()));
+Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+Object[] literalOrVars = 
antlr.genericVisitor.visitStringLiteralVarargs(ctx.stringLiteralVarargs());
+
+// if any are GValue then they all need to be GValue to call 
hasLabel
+if (literalOrVar instanceof GValue || 
Arrays.stream(literalOrVars).anyMatch(lov -> lov instance

(tinkerpop) 09/11: wip - fixed .NET translator for conjoin

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 523a68bea51c8bbea562bce3236c9d75262888ad
Author: Stephen Mallette 
AuthorDate: Sun Aug 25 09:51:42 2024 -0400

wip - fixed .NET translator for conjoin
---
 .../translator/DotNetTranslateVisitor.java | 10 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 24 +++---
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index df2c6b4d91..c7699c2345 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -929,6 +929,16 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 }
 }
 
+@Override
+public Void visitTraversalMethod_conjoin_String(final 
GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
+final String step = ctx.getChild(0).getText();
+sb.append(convertToPascalCase(step));
+sb.append("((string) ");
+visit(ctx.stringArgument());
+sb.append(")");
+return null;
+}
+
 @Override
 public Void visitTraversalMethod_propertyMap(final 
GremlinParser.TraversalMethod_propertyMapContext ctx) {
 return handleGenerics(ctx);
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 8d2fa79fa9..611b56f2db 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -628,18 +628,18 @@ namespace Gremlin.Net.IntegrationTest.Gherkin

{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX",
 new List, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label()).Concat(__.Select("a").InV().Values("name"))}},
 

{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX",
 new List, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label(),
 __.Select("a").InV().Values("name"))}}, 
{"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new 
List, ITraversal>> 
{(g,p) =>g.AddV("person").Property("name", "marko").Property("age", 
29).As("marko").AddV("person").Property("name", "vadas").Property("age", 
27).As("vadas").AddV("software").Property("name", "lop").Property("lang", 
"java").As("lop").AddV("person").Property("name", "josh").Property("age", 
32).As("josh").AddV("software").Property("name", "ripple [...]
-   {"g_injectXnullX_conjoinX1X", new 
List, ITraversal>> 
{(g,p) =>g.Inject(null).Conjoin("1")}}, 
-   {"g_V_valuesXnameX_conjoinX1X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("name").Conjoin("1")}}, 
-   {"g_V_valuesXnonexistantX_fold_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("nonexistant").Fold().Conjoin(";")}}, 
-   {"g_V_valuesXnameX_order_fold_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("name").Order().Fold().Conjoin("_")}}, 
-   {"g_V_valuesXageX_order_fold_conjoinXsemicolonX", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("age").Order().Fold().Conjoin(";")}}, 
-   {"g_V_valuesXageX_order_fold_conjoinXslashX", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("age").Order().Fold().Conjoin(p["xx1"])}}, 
-   {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new 
List, ITraversal>> 
{(g,p) 
=>g.V().Out().Path().By(__.Values("name").ToUpper()).Conjoin("MARKO")}},
 
-   {"g_injectXmarkoX_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.Inject(p["xx1"]).Conjoin("-")}}, 
-   
{"g_V_

(tinkerpop) branch gvalue updated (dbab822241 -> 56c7297e5e)

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard dbab822241 wip - fixed .NET translator for conjoin
 discard 90edbea254 wip - add values getter on inject
 discard 8d2e9239a9 wip - refactoring around mu steps
 discard 92ba9361df wip - hasLabel(String, String...) fixes, more GValue utility
 discard ee43de1be5 wip
 discard 1eec10961d wip
 discard 3775b6fe71 wip
 discard ce8a452549 Get rid of P as a parameter in gherkin
 discard 6fffb2a6f6 wip - params
 add 8b1c70a307 CTR TINKERPOP-3106 updated to compose v2 by changing 
docker-compose to docker compose
 add 47513acc43 Merge remote-tracking branch 'origin/3.6-dev' into 3.7-dev
 add cd07120f79 Merge remote-tracking branch 'origin/3.7-dev'
 add af793543f9 Adding a public getter for Repeat Loop Name
 add ea13a735d1 Merge pull request #2736
 add fceffb19f1 Regression: Graceful shutdowns for GremlinServer (#2712)
 add 54926bdee0 Merge branch '3.7-dev'
 new 47f3de100c wip - params
 new 8bd0770157 Get rid of P as a parameter in gherkin
 new 9f82114678 wip
 new 2671097d94 wip
 new 21f4fe37e8 wip
 new 555f3c743a wip - hasLabel(String, String...) fixes, more GValue utility
 new 9f560e0818 wip - refactoring around mu steps
 new 45aa4ab1f9 wip - add values getter on inject
 new 523a68bea5 wip - fixed .NET translator for conjoin
 new e217e9dcae wip - fixed hasLabel(String, String...) for params
 new 56c7297e5e wip - translator fix for .NET

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (dbab822241)
\
 N -- N -- N   refs/heads/gvalue (56c7297e5e)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 11 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |  2 ++
 docker/build.sh| 12 +++
 .../dev/developer/development-environment.asciidoc | 12 +++
 .../language/grammar/TraversalMethodVisitor.java   |  2 +-
 .../translator/DotNetTranslateVisitor.java | 37 --
 .../process/traversal/step/branch/RepeatStep.java  |  4 +++
 .../language/translator/GremlinTranslatorTest.java | 20 +++-
 gremlin-dotnet/docker-compose.yml  |  2 --
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 20 ++--
 gremlin-dotnet/test/pom.xml|  6 ++--
 gremlin-go/docker-compose.yml  |  2 --
 gremlin-go/driver/README.md|  8 ++---
 gremlin-go/pom.xml |  6 ++--
 gremlin-go/run.sh  |  4 +--
 gremlin-javascript/pom.xml |  6 ++--
 .../gremlin-javascript/docker-compose.yml  |  2 --
 .../gremlin-javascript/test/cucumber/gremlin.js|  2 ++
 gremlin-python/docker-compose.yml  |  2 --
 gremlin-python/pom.xml | 18 +--
 gremlin-python/src/main/python/radish/gremlin.py   |  2 ++
 gremlin-server/src/main/bin/gremlin-server.sh  |  2 +-
 .../src/main/docker/docker-entrypoint.sh   | 10 +-
 .../gremlin/test/features/filter/HasLabel.feature  | 28 
 23 files changed, 145 insertions(+), 64 deletions(-)



(tinkerpop) 05/11: wip

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 21f4fe37e8c176093feac22a68a51c867eeae55d
Author: Stephen Mallette 
AuthorDate: Thu Aug 8 16:24:37 2024 -0400

wip
---
 .../tinkerpop/gremlin/process/traversal/P.java   | 20 +---
 .../process/traversal/dsl/graph/GraphTraversal.java  |  7 +++
 .../gremlin/process/traversal/step/GValue.java   |  4 ++--
 .../process/traversal/step/map/GraphStep.java| 13 +
 .../process/traversal/step/util/AbstractStep.java| 19 ++-
 .../process/traversal/step/util/HasContainer.java|  6 --
 .../gremlin/process/traversal/step/GValueTest.java   |  4 ++--
 .../traversal/step/sideEffect/TinkerGraphStep.java   | 14 --
 8 files changed, 71 insertions(+), 16 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
index 56e1946368..622a3c3e3a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
@@ -25,7 +25,9 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.util.OrP;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * Predefined {@code Predicate} values that can be used to define filters to 
{@code has()} and {@code where()}.
@@ -75,10 +77,22 @@ public class P implements Predicate, Serializable, 
Cloneable {
 
 @Override
 public boolean test(final V testValue) {
-if (this.value instanceof GValue)
+if (this.value instanceof GValue) {
 return this.biPredicate.test(testValue, ((GValue) 
this.value).get());
-else
-return this.biPredicate.test(testValue, this.value);
+} else {
+// this might be a bunch of GValue that need to be resolved. zomg
+if (this.value instanceof List) {
+return this.biPredicate.test(testValue, (V) ((List) 
this.value).stream().map(o -> {
+if (o instanceof GValue) {
+return ((GValue) o).get();
+} else {
+return o;
+}
+}).collect(Collectors.toList()));
+} else {
+return this.biPredicate.test(testValue, this.value);
+}
+}
 }
 
 @Override
diff --git 
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
index 0a392fc334..a7379fd914 100644
--- 
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
@@ -25,6 +25,7 @@ import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRank
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PeerPressureVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ProgramVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
+import org.apache.tinkerpop.gremlin.process.traversal.Contains;
 import org.apache.tinkerpop.gremlin.process.traversal.DT;
 import org.apache.tinkerpop.gremlin.process.traversal.Failure;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
@@ -2837,6 +2838,12 @@ public interface GraphTraversal extends 
Traversal {
 } else {
 this.asAdmin().getBytecode().addStep(Symbols.hasId, id, otherIds);
 
+// the logic for dealing with hasId([]) is sketchy historically, 
just trying to maintain what we were
+// originally testing prior to GValue.
+if (id instanceof GValue && ((GValue) 
id).getType().isCollection()) {
+return TraversalHelper.addHasContainer(this.asAdmin(), new 
HasContainer(T.id.getAccessor(), new P(Contains.within, id)));
+}
+
 //using ArrayList given P.within() turns all arguments into lists
 final List ids = new ArrayList<>();
 if (id instanceof Object[]) {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
index 41caaea1a2..da0694acdc 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
+++ 
b/grem

(tinkerpop) 11/11: wip - translator fix for .NET

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 56c7297e5e9614f17399aafc6c16ca6a37673f0d
Author: Stephen Mallette 
AuthorDate: Mon Aug 26 08:22:01 2024 -0400

wip - translator fix for .NET
---
 .../translator/DotNetTranslateVisitor.java | 37 --
 .../language/translator/GremlinTranslatorTest.java | 20 +++-
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 20 ++--
 .../gremlin-javascript/test/cucumber/gremlin.js|  2 ++
 gremlin-python/src/main/python/radish/gremlin.py   |  2 ++
 5 files changed, 69 insertions(+), 12 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index c7699c2345..aaec8988e4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -740,10 +740,36 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 sb.append(")");
 return null;
 } else {
-return super.visitTraversalMethod_hasLabel_String_String(ctx);
+final String step = ctx.getChild(0).getText();
+sb.append(convertToPascalCase(step));
+sb.append("(");
+tryAppendCastToString(ctx.stringNullableArgument());
+visit(ctx.stringNullableArgument());
+
+// more arguments to come
+if (!ctx.stringLiteralVarargs().isEmpty())  sb.append(", ");
+visit(ctx.stringLiteralVarargs());
+
+sb.append(")");
+return null;
 }
 }
 
+@Override
+public Void visitStringLiteralVarargs(final 
GremlinParser.StringLiteralVarargsContext ctx) {
+for (int ix = 0; ix < ctx.getChildCount(); ix++) {
+final ParseTree pt = ctx.getChild(ix);
+if (pt instanceof GremlinParser.StringNullableArgumentContext) {
+GremlinParser.StringNullableArgumentContext sna = 
(GremlinParser.StringNullableArgumentContext) pt;
+tryAppendCastToString(sna);
+visit(sna);
+} else {
+visit(pt);
+}
+};
+return null;
+}
+
 @Override
 public Void visitTraversalMethod_index(final 
GremlinParser.TraversalMethod_indexContext ctx) {
 return handleGenerics(ctx);
@@ -933,7 +959,8 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 public Void visitTraversalMethod_conjoin_String(final 
GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
 final String step = ctx.getChild(0).getText();
 sb.append(convertToPascalCase(step));
-sb.append("((string) ");
+sb.append("(");
+tryAppendCastToString(ctx.stringArgument());
 visit(ctx.stringArgument());
 sb.append(")");
 return null;
@@ -1154,6 +1181,12 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 }
 }
 
+private void tryAppendCastToString(final 
GremlinParser.StringArgumentContext ctx) {
+if (ctx.variable() != null || ctx.stringLiteral() != null) {
+sb.append("(string) ");
+}
+}
+
 private void tryAppendCastToString(final 
GremlinParser.StringNullableArgumentContext ctx) {
 if (ctx.variable() != null || 
ctx.stringNullableLiteral().NullLiteral() != null) {
 sb.append("(string) ");
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
index ed68e16140..619d578a3c 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
@@ -697,7 +697,7 @@ public class GremlinTranslatorTest {
 {"g.V().hasLabel(null, 'software', 'class')",
 null,
 "g.V().hasLabel(string0, string1, string2)",
-"g.V().HasLabel(null, \"software\", \"class\")",
+"g.V().HasLabel((string) null, \"software\", 
\"class\")",
 "g.V().HasLabel(nil, \"software\", \"class\")",
  

(tinkerpop) 08/11: wip - add values getter on inject

2024-08-26 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 45aa4ab1f9b808a9526c275f5b6b5ff3c59e297a
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 14:02:19 2024 -0400

wip - add values getter on inject
---
 .../gremlin/process/traversal/step/sideEffect/InjectStep.java  | 7 +++
 .../gremlin/sparql/process/traversal/strategy/SparqlStrategy.java  | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
index cc3a970f93..4102cfdd57 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
@@ -55,4 +55,11 @@ public final class InjectStep extends StartStep {
 public GValue[] getInjections() {
 return this.injections;
 }
+
+/**
+ * Gets the injections of the step but unwraps the {@link GValue}.
+ */
+public S[] getInjectionsAsValues() {
+return (S[]) resolveToValues(this.injections);
+}
 }
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 a4a95cc1c1..f4938fb219 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
@@ -71,7 +71,7 @@ public class SparqlStrategy extends 
AbstractTraversalStrategy

(tinkerpop) branch gvalue updated: wip - fixed .NET translator for conjoin

2024-08-25 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue by this push:
 new dbab822241 wip - fixed .NET translator for conjoin
dbab822241 is described below

commit dbab822241484bcabafce7214ba12cb3e9523edb
Author: Stephen Mallette 
AuthorDate: Sun Aug 25 09:51:42 2024 -0400

wip - fixed .NET translator for conjoin
---
 .../translator/DotNetTranslateVisitor.java | 10 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 24 +++---
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index df2c6b4d91..c7699c2345 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -929,6 +929,16 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
 }
 }
 
+@Override
+public Void visitTraversalMethod_conjoin_String(final 
GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
+final String step = ctx.getChild(0).getText();
+sb.append(convertToPascalCase(step));
+sb.append("((string) ");
+visit(ctx.stringArgument());
+sb.append(")");
+return null;
+}
+
 @Override
 public Void visitTraversalMethod_propertyMap(final 
GremlinParser.TraversalMethod_propertyMapContext ctx) {
 return handleGenerics(ctx);
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 8d2fa79fa9..611b56f2db 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -628,18 +628,18 @@ namespace Gremlin.Net.IntegrationTest.Gherkin

{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX",
 new List, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label()).Concat(__.Select("a").InV().Values("name"))}},
 

{"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX",
 new List, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label(),
 __.Select("a").InV().Values("name"))}}, 
{"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new 
List, ITraversal>> 
{(g,p) =>g.AddV("person").Property("name", "marko").Property("age", 
29).As("marko").AddV("person").Property("name", "vadas").Property("age", 
27).As("vadas").AddV("software").Property("name", "lop").Property("lang", 
"java").As("lop").AddV("person").Property("name", "josh").Property("age", 
32).As("josh").AddV("software").Property("name", "ripple [...]
-   {"g_injectXnullX_conjoinX1X", new 
List, ITraversal>> 
{(g,p) =>g.Inject(null).Conjoin("1")}}, 
-   {"g_V_valuesXnameX_conjoinX1X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("name").Conjoin("1")}}, 
-   {"g_V_valuesXnonexistantX_fold_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("nonexistant").Fold().Conjoin(";")}}, 
-   {"g_V_valuesXnameX_order_fold_conjoinX_X", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("name").Order().Fold().Conjoin("_")}}, 
-   {"g_V_valuesXageX_order_fold_conjoinXsemicolonX", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("age").Order().Fold().Conjoin(";")}}, 
-   {"g_V_valuesXageX_order_fold_conjoinXslashX", new 
List, ITraversal>> 
{(g,p) =>g.V().Values("age").Order().Fold().Conjoin(p["xx1"])}}, 
-   {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new 
List, ITraversal>> 
{(g,p) 
=>g.V().Out().Path().By(__.Values("name").ToUpper()).Conjoin("MARKO")}}

(tinkerpop) branch gvalue updated: wip - add values getter on inject

2024-08-22 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue by this push:
 new 90edbea254 wip - add values getter on inject
90edbea254 is described below

commit 90edbea254feba2e7e7e7ccdc60aef6cfd3cd5be
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 14:02:19 2024 -0400

wip - add values getter on inject
---
 .../gremlin/process/traversal/step/sideEffect/InjectStep.java  | 7 +++
 .../gremlin/sparql/process/traversal/strategy/SparqlStrategy.java  | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
index cc3a970f93..4102cfdd57 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/InjectStep.java
@@ -55,4 +55,11 @@ public final class InjectStep extends StartStep {
 public GValue[] getInjections() {
 return this.injections;
 }
+
+/**
+ * Gets the injections of the step but unwraps the {@link GValue}.
+ */
+public S[] getInjectionsAsValues() {
+return (S[]) resolveToValues(this.injections);
+}
 }
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 a4a95cc1c1..f4938fb219 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
@@ -71,7 +71,7 @@ public class SparqlStrategy extends 
AbstractTraversalStrategy

(tinkerpop) branch gvalue updated: wip - refactoring around mu steps

2024-08-22 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue by this push:
 new 8d2e9239a9 wip - refactoring around mu steps
8d2e9239a9 is described below

commit 8d2e9239a90236a80f95fa6b956a8113e7bf4ea8
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 13:27:02 2024 -0400

wip - refactoring around mu steps
---
 .../language/grammar/TraversalMethodVisitor.java   | 28 -
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  8 +--
 .../gremlin/process/traversal/Operator.java|  8 +--
 .../gremlin/process/traversal/step/GValue.java | 23 +++-
 .../process/traversal/step/map/AddEdgeStep.java|  8 +--
 .../gremlin/process/traversal/step/GValueTest.java | 66 +-
 6 files changed, 106 insertions(+), 35 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 9878b96a9a..b9cb2e5642 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -93,7 +93,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_mergeV_Map(final 
GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return graphTraversal.mergeV((GValue>) 
literalOrVar);
 else
 return graphTraversal.mergeV((Map) literalOrVar);
@@ -129,7 +129,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_mergeE_Map(final 
GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+if (GValue.valueInstanceOf(literalOrVar, GType.MAP))
 return graphTraversal.mergeE((GValue>) 
literalOrVar);
 else
 return graphTraversal.mergeE((Map) literalOrVar);
@@ -456,12 +456,10 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_coin(final 
GremlinParser.TraversalMethod_coinContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument());
-if (literalOrVar instanceof Number)
-return graphTraversal.coin(((Number) literalOrVar).doubleValue());
-else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType().isNumeric())
+if (GValue.valueInstanceOfNumeric(literalOrVar))
 return graphTraversal.coin((GValue) literalOrVar);
 else
-throw new IllegalArgumentException("coin argument must be a 
double");
+return graphTraversal.coin(((Number) literalOrVar).doubleValue());
 
 }
 
@@ -657,12 +655,10 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public Traversal visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitStructureVertexArgument(ctx.structureVertexArgument());
-if (literalOrVar instanceof Vertex)
-return graphTraversal.from((Vertex) literalOrVar);
-else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.VERTEX)
+if (GValue.valueInstanceOf(literalOrVar, GType.VERTEX))
 return graphTraversal.from((GValue) literalOrVar);
 else
-throw new IllegalArgumentException("from argument must be a 
vertex");
+return graphTraversal.from((Vertex) literalOrVar);
 }
 
 /**
@@ -1197,7 +1193,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_option_Merge_Map(final 
GremlinParser.TraversalMethod_option_Merge_MapContext ctx) {
 final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
-if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GTyp

(tinkerpop) branch gvalue-3.7 updated: backported hasLabel() improvements, additional GValue/GType features, fixed validations in addE

2024-08-22 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-3.7 by this push:
 new 2b64618ba3 backported hasLabel() improvements, additional GValue/GType 
features, fixed validations in addE
2b64618ba3 is described below

commit 2b64618ba3030daa9044060642f3b6f1a81ed57d
Author: Stephen Mallette 
AuthorDate: Thu Aug 22 10:43:30 2024 -0400

backported hasLabel() improvements, additional GValue/GType features, fixed 
validations in addE
---
 .../language/grammar/GenericLiteralVisitor.java| 14 +++
 .../language/grammar/TraversalMethodVisitor.java   | 27 ++--
 .../traversal/dsl/graph/GraphTraversal.java|  2 +-
 .../gremlin/process/traversal/step/GType.java  | 40 +++---
 .../gremlin/process/traversal/step/GValue.java | 49 ++
 .../process/traversal/step/map/AddEdgeStep.java|  5 ++-
 6 files changed, 115 insertions(+), 22 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index 7b841de87c..493b247aa8 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -643,4 +643,18 @@ public class GenericLiteralVisitor extends 
DefaultGremlinBaseVisitor {
 else
 return StringEscapeUtils.unescapeJava(stripQuotes(ctx.getText()));
 }
+
+@Override
+public Object[] visitStringLiteralVarargs(final 
GremlinParser.StringLiteralVarargsContext ctx) {
+if (ctx == null) {
+return new Object[0];
+}
+return ctx.children
+.stream()
+.filter(Objects::nonNull)
+.filter(p -> p instanceof 
GremlinParser.StringNullableArgumentContext)
+.map(p -> (GremlinParser.StringNullableArgumentContext) p)
+.map(antlr.argumentVisitor::visitStringNullableArgument)
+.toArray(Object[]::new);
+}
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index d9b256dccb..81b0ccd750 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -27,6 +27,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GType;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -721,10 +722,30 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_hasLabel_String_String(final 
GremlinParser.TraversalMethod_hasLabel_String_StringContext ctx) {
 if (ctx.getChildCount() == 4) {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+if (GValue.valueInstanceOf(literalOrVar, GType.STRING))
+return graphTraversal.hasLabel((GValue) literalOrVar);
+else
+return graphTraversal.hasLabel((String) literalOrVar);
 } else {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()),
-
antlr.genericVisitor.parseStringVarargs(ctx.stringLiteralVarargs()));
+Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+Object[] literalOrVars = 
antlr.genericVisitor.visitStringLiteralVarargs(ctx.stringLiteralVarargs());
+
+// if any are GValue then they all need to be GValue to call 
hasLabel
+if (literalOrVar instanceof GValue || 
Arrays.stream(literalOrVars).anyMatch(lov -> lov instanceof GValue)) {
+literalOrVar = GValue.of(literalOrVar);
+literalOrVars = 
Arrays.stream(literalOrVars).map(GValue::of).toArray();
+}
+
+// since we normalized above to gvalue or literal we can just test 
the first arg for gvalue-ness
+if (GValue.valueInstanceOf(literalOrVar, GType.STRING)) {
+final GValue[] gvalueLiteralOrVars = literalOrVars == null ? 
null : Arra

(tinkerpop) branch gvalue updated: wip - hasLabel(String, String...) fixes, more GValue utility

2024-08-22 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue by this push:
 new 92ba9361df wip - hasLabel(String, String...) fixes, more GValue utility
92ba9361df is described below

commit 92ba9361df30ec59b7ea46315b0f4d45a0372af1
Author: Stephen Mallette 
AuthorDate: Wed Aug 21 15:35:01 2024 -0400

wip - hasLabel(String, String...) fixes, more GValue utility
---
 .../language/grammar/GenericLiteralVisitor.java|  14 +++
 .../language/grammar/TraversalMethodVisitor.java   |  27 +-
 .../translator/DotNetTranslateVisitor.java |   2 +-
 .../traversal/dsl/graph/GraphTraversal.java|   2 +-
 .../gremlin/process/traversal/step/GType.java  |  40 
 .../gremlin/process/traversal/step/GValue.java |  55 ++-
 .../process/traversal/step/map/AddEdgeStep.java|   4 +-
 .../process/traversal/step/map/GraphStep.java  |   4 +-
 .../strategy/decoration/ElementIdStrategy.java |   7 +-
 .../language/translator/GremlinTranslatorTest.java |   9 ++
 .../gremlin/process/traversal/step/GValueTest.java | 102 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  11 ++-
 gremlin-go/driver/cucumber/gremlin.go  |   3 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|   3 +-
 gremlin-python/src/main/python/radish/gremlin.py   |   3 +-
 .../gremlin/test/features/map/Conjoin.feature  |   4 +-
 .../traversal/step/sideEffect/Neo4jGraphStep.java  |   4 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java |   4 +-
 18 files changed, 253 insertions(+), 45 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index f29c563d3b..d3a16d6d01 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -658,4 +658,18 @@ public class GenericLiteralVisitor extends 
DefaultGremlinBaseVisitor {
 else
 return StringEscapeUtils.unescapeJava(stripQuotes(ctx.getText()));
 }
+
+@Override
+public Object[] visitStringLiteralVarargs(final 
GremlinParser.StringLiteralVarargsContext ctx) {
+if (ctx == null) {
+return new Object[0];
+}
+return ctx.children
+.stream()
+.filter(Objects::nonNull)
+.filter(p -> p instanceof 
GremlinParser.StringNullableArgumentContext)
+.map(p -> (GremlinParser.StringNullableArgumentContext) p)
+.map(antlr.argumentVisitor::visitStringNullableArgument)
+.toArray(Object[]::new);
+}
 }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index daf72820d4..9878b96a9a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -28,6 +28,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Arrays;
 import java.util.Map;
 import java.util.function.BiFunction;
 
@@ -756,10 +757,30 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 @Override
 public GraphTraversal visitTraversalMethod_hasLabel_String_String(final 
GremlinParser.TraversalMethod_hasLabel_String_StringContext ctx) {
 if (ctx.getChildCount() == 4) {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+if (GValue.valueInstanceOf(literalOrVar, GType.STRING))
+return graphTraversal.hasLabel((GValue) literalOrVar);
+else
+return graphTraversal.hasLabel((String) literalOrVar);
 } else {
-return 
graphTraversal.hasLabel(antlr.argumentVisitor.parseString(ctx.stringNullableArgument()),
-
antlr.genericVisitor.parseStringVarargs(ctx.stringLiteralVarargs()));
+Object literalOrVar = 
antlr.argumentVisitor.visitStringNullableArgument(ctx.stringNullableArgument());
+Object[] literalOrVars = 
antlr.genericVisitor.visitStringLiteralVarargs(ctx.stringLiteralVarargs());
+
+// 

(tinkerpop) branch gvalue-3.7 updated: Backported fix from gvalue branch to ensure that the Admin interface is being used

2024-08-21 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-3.7 by this push:
 new 8a7d051d23 Backported fix from gvalue branch to ensure that the Admin 
interface is being used
8a7d051d23 is described below

commit 8a7d051d233baf210ae442378234699863abc161
Author: Stephen Mallette 
AuthorDate: Wed Aug 21 15:47:03 2024 -0400

Backported fix from gvalue branch to ensure that the Admin interface is 
being used
---
 .../tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java| 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 536dd13e55..d9b256dccb 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -42,11 +42,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 /**
  * This object is used to append the traversal methods.
  */
-private final GraphTraversal graphTraversal;
+private final GraphTraversal.Admin graphTraversal;
 
 public TraversalMethodVisitor(final GremlinAntlrToJava antlr, final 
GraphTraversal graphTraversal) {
 super(antlr, graphTraversal);
-this.graphTraversal = graphTraversal;
+this.graphTraversal = graphTraversal.asAdmin();
 }
 
 /**



(tinkerpop) branch merge-rename updated: Renamed steps around "merge" for better consistency.

2024-08-19 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch merge-rename
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/merge-rename by this push:
 new dafc54e4d9 Renamed steps around "merge" for better consistency.
dafc54e4d9 is described below

commit dafc54e4d98bd4585574490c1358adcab33aa934
Author: Stephen Mallette 
AuthorDate: Mon Aug 19 07:52:04 2024 -0400

Renamed steps around "merge" for better consistency.

TraveralMergeStep should have been MergeStep but that name was in use 
already as a base class for mergeV/E. Renamed that base class to 
MergeElementStep allowing merge() to use MergeStep.
---
 CHANGELOG.asciidoc |   2 +
 .../traversal/dsl/graph/GraphTraversal.java|   6 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   4 +-
 .../map/{MergeStep.java => MergeElementStep.java}  |  15 +-
 .../process/traversal/step/map/MergeStep.java  | 388 -
 .../traversal/step/map/MergeVertexStep.java|   4 +-
 .../traversal/step/map/TraversalMergeStep.java | 126 ---
 .../process/traversal/util/BytecodeHelper.java |   4 +-
 ...versalMergeStepTest.java => MergeStepTest.java} |   2 +-
 9 files changed, 85 insertions(+), 466 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index ee232e9fc1..50ecb2d21c 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -35,6 +35,8 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Added new list filtering step `none()`.
 * Added support for `Set` in GraphSON and GraphBinary serialization for 
`gremlin-javascript`, where it previously just converted to array.
 * Added `Set` syntax in `gremlin-language`.
+* Renamed `MergeStep` to `MergeElementStep` as it is a base class to 
`mergeV()` and `mergeE()`.
+* Renamed `TraversalMergeStep` of `merge()` to `MergeStep` for consistency.
 * Removed the deprecated `withGraph()` option from `AnonymousTraversalSource`.
 * Removed the `gremlin-archetype` module in favor of newer sample applications 
in each GLV's `examples` folder.
 * Bumped to `commons-collection4`.
diff --git 
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
index aa364e4fc4..09e5f5eeb8 100644
--- 
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
@@ -163,7 +163,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.ToUpperGlobalStep
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.ToUpperLocalStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalFlatMapStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalMapStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalMergeStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MergeStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalSelectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.TreeStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.TrimGlobalStep;
@@ -1939,13 +1939,13 @@ public interface GraphTraversal extends 
Traversal {
 /**
  * Merges the list traverser and list argument. Also known as union.
  *
- * @return the traversal with an appended {@link TraversalMergeStep}.
+ * @return the traversal with an appended {@link MergeStep}.
  * @see http://tinkerpop.apache.org/docs/${project.version}/reference/#merge-step";
 target="_blank">Reference Documentation - Merge Step
  * @since 3.7.1
  */
 public default  GraphTraversal merge(final Object values) {
 this.asAdmin().getBytecode().addStep(Symbols.merge, values);
-return this.asAdmin().addStep(new TraversalMergeStep<>(this.asAdmin(), 
values));
+return this.asAdmin().addStep(new MergeStep<>(this.asAdmin(), values));
 }
 
 /**
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
index a5747fdfa0..bb22d218e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStep.java
@@ -52,12 +52,12 @@ import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outV;
 /**
  * Implementation for the {@code mergeE()} step coverin

(tinkerpop) branch merge-rename created (now 418d049939)

2024-08-19 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch merge-rename
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


  at 418d049939 Merge branch '3.7-dev'

No new revisions were added by this update.



(tinkerpop) 01/01: wip

2024-08-18 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-redux-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 02fbda155c27dea12225fd98b148399fdb46147f
Author: Stephen Mallette 
AuthorDate: Sun Aug 18 13:55:46 2024 -0400

wip
---
 .../tinkerpop/gremlin/jsr223/JavaTranslator.java   |   6 +
 .../strategy/decoration/VertexProgramStrategy.java |   1 +
 .../gremlin/process/traversal/Bytecode.java|   8 +-
 .../process/traversal/TraversalStrategies.java |   2 +
 .../traversal/dsl/graph/GraphTraversal.java| 280 -
 .../traversal/dsl/graph/GraphTraversalSource.java  |  68 +++-
 .../ConstantGVTraversal.java}  |  42 +-
 .../process/traversal/step/filter/HasStep.java |   3 +-
 .../process/traversal/step/filter/IsStep.java  |   3 +-
 .../process/traversal/step/map/ConstantStep.java   |   7 +-
 .../process/traversal/step/map/GraphStep.java  |   4 +-
 .../process/traversal/step/map/MergeStep.java  |   7 +-
 .../traversal/step/map/MergeVertexStep.java|   1 +
 .../traversal/step/sideEffect/AddPropertyStep.java |   4 +-
 .../traversal/step/sideEffect/InjectStep.java  |   3 +-
 .../gremlin/process/traversal/step/util/GType.java |  95 +
 .../process/traversal/step/util/GValue.java| 443 +
 .../process/traversal/step/util/GValueStep.java|  93 +
 .../process/traversal/step/util/HasContainer.java  |   4 +
 .../step/util/structure/filter/HasStepGV.java  |  74 
 .../util/structure/filter/HasStepStructure.java|  25 ++
 .../structure/filter/IsStepGV.java}|  38 +-
 .../util/structure/filter/IsStepStructure.java |  25 ++
 .../step/util/structure/map/AddEdgeStepGV.java |  59 +++
 .../util/structure/map/AddEdgeStepStructure.java   |  27 ++
 .../structure/map/ConstantStepGV.java} |  37 +-
 .../util/structure/map/ConstantStepStructure.java  |  23 ++
 .../step/util/structure/map/GraphStepGV.java   |  62 +++
 .../util/structure/map/GraphStepStructure.java |  28 ++
 .../step/util/structure/map/MergeEdgeStepGV.java   |  94 +
 .../structure/map/MergeElementStepStructure.java   |  44 ++
 .../step/util/structure/map/MergeVertexStepGV.java |  95 +
 .../step/util/structure/map/VertexStepGV.java  |  67 
 .../util/structure/map/VertexStepStructure.java|  30 ++
 .../structure/sideEffect/AddPropertyStepGV.java|  54 +++
 .../sideEffect/AddPropertyStepStructure.java   |  28 ++
 .../structure/sideEffect/InjectStepGV.java}|  38 +-
 .../structure/sideEffect/InjectStepStructure.java  |  23 ++
 .../strategy/decoration/ConnectiveStrategy.java|   1 -
 .../decoration/GValueReplacementStrategy.java  |  97 +
 .../process/traversal/util/TraversalHelper.java|  40 +-
 .../apache/tinkerpop/gremlin/util/ArrayUtil.java   |  42 ++
 42 files changed, 1980 insertions(+), 145 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 1641d823bc..09e5818933 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -28,6 +28,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.lambda.CardinalityValueTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.BytecodeHelper;
@@ -38,6 +39,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Parameter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -336,6 +338,10 @@ public final class JavaTranslator> methodCache) {
 if (methodCache.isEmpty()) {
 for (final Method method : delegate.getClass().getMethods()) {
+// skip any methods that use GValue as it can't be used 
remotely or be translated
+if (Arrays.stream(method.getParameters()).anyMatch(p -> 
p.getType().equals(GValue.class))) {
+continue;
+}
 final List list = 
methodCache.computeIfAbsent(method.getName(), k -> new ArrayList<>());
 list.add(new ReflectedMethod(method));
 }
diff --git 
a/gremlin-core/src/main/java/

(tinkerpop) branch gvalue-redux-3.7 created (now 02fbda155c)

2024-08-18 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue-redux-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


  at 02fbda155c wip

This branch includes the following new commits:

 new 02fbda155c wip

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(tinkerpop) branch gvalue-3.7 updated: Brought back some changes from gvalue branch bound to master

2024-08-15 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/gvalue-3.7 by this push:
 new f70d0d5f26 Brought back some changes from gvalue branch bound to master
f70d0d5f26 is described below

commit f70d0d5f264160f03aa270983ce30fb5252f9070
Author: Stephen Mallette 
AuthorDate: Thu Aug 15 09:32:41 2024 -0400

Brought back some changes from gvalue branch bound to master
---
 .../gremlin/process/traversal/Operator.java|  2 +-
 .../tinkerpop/gremlin/process/traversal/P.java | 20 ++-
 .../traversal/dsl/graph/GraphTraversal.java| 64 ++
 .../traversal/dsl/graph/GraphTraversalSource.java  | 43 +++
 .../gremlin/process/traversal/step/GType.java  | 18 +-
 .../gremlin/process/traversal/step/GValue.java | 20 +--
 .../traversal/step/sideEffect/InjectStep.java  | 18 +++---
 .../process/traversal/step/util/AbstractStep.java  | 43 +++
 .../process/traversal/step/util/HasContainer.java  |  6 +-
 .../strategy/decoration/SideEffectStrategy.java|  7 ++-
 .../gremlin/process/traversal/step/GValueTest.java | 34 ++--
 11 files changed, 236 insertions(+), 39 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
index b4d3cb23a0..3100084294 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java
@@ -186,7 +186,7 @@ public enum Operator implements BinaryOperator {
 
 if (a instanceof Map && b instanceof Map)
 ((Map) a).putAll((Map) b);
-else if (a instanceof Collection && a instanceof Collection)
+else if (a instanceof Collection && b instanceof Collection)
 ((Collection) a).addAll((Collection) b);
 else
 throw new IllegalArgumentException(String.format("Objects must 
be both of Map or Collection: a=%s b=%s",
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
index 56e1946368..622a3c3e3a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
@@ -25,7 +25,9 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.util.OrP;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * Predefined {@code Predicate} values that can be used to define filters to 
{@code has()} and {@code where()}.
@@ -75,10 +77,22 @@ public class P implements Predicate, Serializable, 
Cloneable {
 
 @Override
 public boolean test(final V testValue) {
-if (this.value instanceof GValue)
+if (this.value instanceof GValue) {
 return this.biPredicate.test(testValue, ((GValue) 
this.value).get());
-else
-return this.biPredicate.test(testValue, this.value);
+} else {
+// this might be a bunch of GValue that need to be resolved. zomg
+if (this.value instanceof List) {
+return this.biPredicate.test(testValue, (V) ((List) 
this.value).stream().map(o -> {
+if (o instanceof GValue) {
+return ((GValue) o).get();
+} else {
+return o;
+}
+}).collect(Collectors.toList()));
+} else {
+return this.biPredicate.test(testValue, this.value);
+}
+}
 }
 
 @Override
diff --git 
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
index 3d9cd3e088..c49eadaf7d 100644
--- 
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
@@ -458,6 +458,30 @@ public interface GraphTraversal extends Traversal {
 return TraversalHelper.addHasContainer(this.asAdmin(), new 
HasContainer(T.label.getAccessor(), labels.length == 1 ? P.eq(labels[0]) : 
P.within(labels)));
 }
 
+/**
+ * This is a step modulator to a {@link TraversalOptionParent} like 
{@code choose()} or {@code mergeV()} wh

(tinkerpop) 02/02: wip

2024-08-08 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ee43de1be589c9b5de12397201c6174756c5b1e1
Author: Stephen Mallette 
AuthorDate: Thu Aug 8 16:24:37 2024 -0400

wip
---
 .../tinkerpop/gremlin/process/traversal/P.java   | 20 +---
 .../process/traversal/dsl/graph/GraphTraversal.java  |  7 +++
 .../gremlin/process/traversal/step/GValue.java   |  4 ++--
 .../process/traversal/step/map/GraphStep.java| 13 +
 .../process/traversal/step/util/AbstractStep.java| 19 ++-
 .../process/traversal/step/util/HasContainer.java|  6 --
 .../gremlin/process/traversal/step/GValueTest.java   |  4 ++--
 .../traversal/step/sideEffect/TinkerGraphStep.java   | 14 --
 8 files changed, 71 insertions(+), 16 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
index 56e1946368..622a3c3e3a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
@@ -25,7 +25,9 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.util.OrP;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * Predefined {@code Predicate} values that can be used to define filters to 
{@code has()} and {@code where()}.
@@ -75,10 +77,22 @@ public class P implements Predicate, Serializable, 
Cloneable {
 
 @Override
 public boolean test(final V testValue) {
-if (this.value instanceof GValue)
+if (this.value instanceof GValue) {
 return this.biPredicate.test(testValue, ((GValue) 
this.value).get());
-else
-return this.biPredicate.test(testValue, this.value);
+} else {
+// this might be a bunch of GValue that need to be resolved. zomg
+if (this.value instanceof List) {
+return this.biPredicate.test(testValue, (V) ((List) 
this.value).stream().map(o -> {
+if (o instanceof GValue) {
+return ((GValue) o).get();
+} else {
+return o;
+}
+}).collect(Collectors.toList()));
+} else {
+return this.biPredicate.test(testValue, this.value);
+}
+}
 }
 
 @Override
diff --git 
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
index 0a392fc334..a7379fd914 100644
--- 
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
@@ -25,6 +25,7 @@ import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRank
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PeerPressureVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ProgramVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
+import org.apache.tinkerpop.gremlin.process.traversal.Contains;
 import org.apache.tinkerpop.gremlin.process.traversal.DT;
 import org.apache.tinkerpop.gremlin.process.traversal.Failure;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
@@ -2837,6 +2838,12 @@ public interface GraphTraversal extends 
Traversal {
 } else {
 this.asAdmin().getBytecode().addStep(Symbols.hasId, id, otherIds);
 
+// the logic for dealing with hasId([]) is sketchy historically, 
just trying to maintain what we were
+// originally testing prior to GValue.
+if (id instanceof GValue && ((GValue) 
id).getType().isCollection()) {
+return TraversalHelper.addHasContainer(this.asAdmin(), new 
HasContainer(T.id.getAccessor(), new P(Contains.within, id)));
+}
+
 //using ArrayList given P.within() turns all arguments into lists
 final List ids = new ArrayList<>();
 if (id instanceof Object[]) {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
index 41caaea1a2..da0694acdc 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java
+++ 
b/grem

(tinkerpop) 01/02: wip

2024-08-08 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 1eec10961d99e68f49c2393ac36e6a15507008d2
Author: Stephen Mallette 
AuthorDate: Wed Aug 7 15:06:28 2024 -0400

wip
---
 .../grammar/DefaultGremlinBaseVisitor.java |  12 +--
 .../language/grammar/TraversalMethodVisitor.java   | 100 ++
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  15 ++-
 .../translator/DotNetTranslateVisitor.java |  23 ++--
 .../language/translator/TranslateVisitor.java  |   5 -
 .../gremlin/process/traversal/Operator.java|  10 +-
 .../traversal/dsl/graph/GraphTraversal.java| 117 -
 .../traversal/dsl/graph/GraphTraversalSource.java  |  32 +-
 .../gremlin/process/traversal/step/GValue.java |   9 +-
 .../process/traversal/step/map/AddEdgeStep.java|   9 +-
 .../process/traversal/step/map/CallStep.java   |  36 +--
 .../process/traversal/step/map/ConstantStep.java   |   2 +-
 .../process/traversal/step/map/DifferenceStep.java |  16 ++-
 .../process/traversal/step/map/DisjunctStep.java   |  12 ++-
 .../process/traversal/step/map/ProductStep.java|  15 ++-
 .../traversal/step/map/TraversalMergeStep.java |   3 +-
 .../traversal/step/sideEffect/InjectStep.java  |   2 +-
 .../strategy/decoration/SideEffectStrategy.java|   7 +-
 gremlin-language/src/main/antlr4/Gremlin.g4|   7 +-
 .../tinkerpop/gremlin/features/StepDefinition.java |  25 ++---
 20 files changed, 333 insertions(+), 124 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index 3bfb22d17b..f32e40e44b 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -414,11 +414,11 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_from_Traversal(final 
GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_from_Vertex(final 
GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_from_Traversal(final 
GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
@@ -854,11 +854,11 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_to_Traversal(final 
GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_to_Vertex(final 
GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
-   @Override public T visitTraversalMethod_to_Vertex(final 
GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); 
return null; }
+   @Override public T visitTraversalMethod_to_Traversal(final 
GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); 
return null; }
/**
 * {@inheritDoc}
 */
@@ -1395,10 +1395,6 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
 * {@inheritDoc}
 */
@Override public T visitTraversalMethod_option_Merge_Map(final 
GremlinParser.TraversalMethod_option_Merge_MapContext ctx) { 
notImplemented(ctx); return null; }
-   /**
-* {@inheritDoc}
-*/
-   @Override public T visitTraversalMethod_option_Merge_Traversal(final 
GremlinParser.TraversalMethod_option_Merge_TraversalContext ctx) { 
notImplemented(ctx); return null; }
/**
 * {@inheritDoc}
 */
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index fe500e6210..daf72820d4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -25,14 +25,12 @@ import

(tinkerpop) branch gvalue updated (3775b6fe71 -> ee43de1be5)

2024-08-08 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 3775b6fe71 wip
 new 1eec10961d wip
 new ee43de1be5 wip

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../grammar/DefaultGremlinBaseVisitor.java |  12 +-
 .../language/grammar/TraversalMethodVisitor.java   | 100 ++---
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  15 ++-
 .../translator/DotNetTranslateVisitor.java |  23 ++--
 .../language/translator/TranslateVisitor.java  |   5 -
 .../gremlin/process/traversal/Operator.java|  10 +-
 .../tinkerpop/gremlin/process/traversal/P.java |  20 +++-
 .../traversal/dsl/graph/GraphTraversal.java| 124 -
 .../traversal/dsl/graph/GraphTraversalSource.java  |  32 +-
 .../gremlin/process/traversal/step/GValue.java |  13 ++-
 .../process/traversal/step/map/AddEdgeStep.java|   9 +-
 .../process/traversal/step/map/CallStep.java   |  36 --
 .../process/traversal/step/map/ConstantStep.java   |   2 +-
 .../process/traversal/step/map/DifferenceStep.java |  16 ++-
 .../process/traversal/step/map/DisjunctStep.java   |  12 +-
 .../process/traversal/step/map/GraphStep.java  |  13 +++
 .../process/traversal/step/map/ProductStep.java|  15 ++-
 .../traversal/step/map/TraversalMergeStep.java |   3 +-
 .../traversal/step/sideEffect/InjectStep.java  |   2 +-
 .../process/traversal/step/util/AbstractStep.java  |  19 +++-
 .../process/traversal/step/util/HasContainer.java  |   6 +-
 .../strategy/decoration/SideEffectStrategy.java|   7 +-
 .../gremlin/process/traversal/step/GValueTest.java |   4 +-
 gremlin-language/src/main/antlr4/Gremlin.g4|   7 +-
 .../tinkerpop/gremlin/features/StepDefinition.java |  25 +++--
 .../traversal/step/sideEffect/TinkerGraphStep.java |  14 ++-
 26 files changed, 404 insertions(+), 140 deletions(-)



(tinkerpop) 03/03: wip

2024-07-31 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 3775b6fe71298d6131ed19e9b1cf96d978e486c5
Author: Stephen Mallette 
AuthorDate: Wed Jul 31 16:15:58 2024 -0400

wip
---
 .../language/grammar/TraversalMethodVisitor.java   | 61 +
 .../grammar/TraversalSourceSpawnMethodVisitor.java | 14 +++-
 .../traversal/dsl/graph/GraphTraversal.java| 72 +++
 .../traversal/dsl/graph/GraphTraversalSource.java  | 46 +
 .../gremlin/process/traversal/step/GType.java  | 16 -
 .../gremlin/process/traversal/step/GValue.java |  5 +-
 .../process/traversal/step/filter/CoinStep.java|  6 +-
 .../process/traversal/step/map/CombineStep.java| 11 +--
 .../process/traversal/step/map/ConjoinStep.java| 17 +++--
 .../process/traversal/step/map/ConstantStep.java   |  6 +-
 .../process/traversal/step/map/GraphStep.java  | 80 +-
 .../process/traversal/step/map/IntersectStep.java  | 11 +--
 .../process/traversal/step/map/MergeStep.java  |  5 +-
 .../traversal/step/map/TraversalMergeStep.java | 19 +++--
 .../traversal/step/sideEffect/InjectStep.java  | 14 ++--
 .../process/traversal/step/util/AbstractStep.java  | 27 
 .../process/traversal/util/ListFunction.java   | 16 ++---
 .../gremlin/process/traversal/step/GValueTest.java | 30 
 .../tinkerpop/gremlin/features/StepDefinition.java | 32 +++--
 .../apache/tinkerpop/gremlin/features/World.java   |  9 +++
 .../gremlin/test/features/map/Conjoin.feature  | 12 
 .../traversal/step/sideEffect/Neo4jGraphStep.java  |  4 +-
 .../traversal/step/sideEffect/TinkerGraphStep.java |  4 +-
 .../tinkerpop/gremlin/tinkergraph/TinkerWorld.java |  5 ++
 24 files changed, 399 insertions(+), 123 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 4f523c092f..fe500e6210 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -27,6 +27,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GType;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
+import java.util.Collection;
 import java.util.Map;
 import java.util.function.BiFunction;
 
@@ -40,11 +41,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
 /**
  * This object is used to append the traversal methods.
  */
-private final GraphTraversal graphTraversal;
+private final GraphTraversal.Admin graphTraversal;
 
 public TraversalMethodVisitor(final GremlinAntlrToJava antlr, final 
GraphTraversal graphTraversal) {
 super(antlr, graphTraversal);
-this.graphTraversal = graphTraversal;
+this.graphTraversal = graphTraversal.asAdmin();
 }
 
 /**
@@ -92,7 +93,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_mergeV_Map(final 
GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
-return 
this.graphTraversal.mergeV(antlr.argumentVisitor.parseMap(ctx.genericLiteralMapNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
+if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+return graphTraversal.mergeV((GValue>) 
literalOrVar);
+else
+return graphTraversal.mergeV((Map) literalOrVar);
 }
 
 /**
@@ -124,7 +129,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_mergeE_Map(final 
GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
-return 
this.graphTraversal.mergeE(antlr.argumentVisitor.parseMap(ctx.genericLiteralMapNullableArgument()));
+final Object literalOrVar = 
antlr.argumentVisitor.visitGenericLiteralMapNullableArgument(ctx.genericLiteralMapNullableArgument());
+if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.MAP)
+return graphTraversal.mergeE((GValue>) 
literalOrVar);
+else
+return graphTraversal.mergeE((Map) literalOrVar);
 }
 
 /**
@@ -435,7 +444,11 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_combine_Object(final 
GremlinParser.TraversalMethod_combine_ObjectContext 

(tinkerpop) branch gvalue updated (71adcf4d5f -> 3775b6fe71)

2024-07-31 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 71adcf4d5f wip - params
 add 4d9347088d Fixes neo4j when used with jdk17 CTR
 add e6e6e9beac Merge branch '3.7-dev'
 add 14ce7be463 fix java feature test tag CTR
 add 859894261c Bump Polly from 8.4.0 to 8.4.1 in /gremlin-dotnet
 add 98e5b3e9fb Bump xunit from 2.8.1 to 2.9.0 in /gremlin-dotnet
 add 2c6d334e37 Merge branch 
'dependabot/nuget/gremlin-dotnet/3.6-dev/xunit-2.9.0' into 3.6-dev
 add d6e4a2d0dd Bump xunit.runner.visualstudio from 2.8.1 to 2.8.2 in 
/gremlin-dotnet
 add ce6caa155d Merge branch 
'dependabot/nuget/gremlin-dotnet/3.6-dev/xunit.runner.visualstudio-2.8.2' into 
3.6-dev
 add 37d865d237 Merge branch '3.6-dev' into 3.7-dev
 add f4b636ced2 Merge branch '3.7-dev'
 add 812bc1de78 Add getter for private fields to Concat, Conjoin, 
SplitGlobal/Local Step (#2687)
 add 2bfd44b97f Merge branch '3.7-dev'
 add ef466de995 improvement: add necessary parameters for logging (#2684)
 add 5697d0735d Merge branch '3.7-dev'
 add 33d5cf8f69 Fixed up some formatting and confusing upgrade notes CTR
 add 93879c826d Merge branch '3.7-dev'
 add 39d7ed100c added configuration for logging level for Gremlin Console 
in Windows (#2694)
 add 97e1c7ada0 Merge branch '3.6-dev' into 3.7-dev
 add 14604a563a Merge branch '3.7-dev'
 add b382a1c751 Remove redundant six dependency (#2692)
 add a846d88d19 Merge branch '3.6-dev' into 3.7-dev
 add 418d049939 Merge branch '3.7-dev'
 new 6fffb2a6f6 wip - params
 new ce8a452549 Get rid of P as a parameter in gherkin
 new 3775b6fe71 wip

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (71adcf4d5f)
\
 N -- N -- N   refs/heads/gvalue (3775b6fe71)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |  17 +-
 docs/src/reference/implementations-neo4j.asciidoc  |   3 +
 docs/src/upgrade/release-3.7.x.asciidoc|  23 +-
 gremlin-console/src/main/bin/gremlin-java8.bat |  13 +-
 gremlin-console/src/main/bin/gremlin.bat   |  13 +-
 gremlin-console/src/main/bin/gremlin.sh|   6 +
 .../language/grammar/TraversalMethodVisitor.java   |  61 +++-
 .../grammar/TraversalSourceSpawnMethodVisitor.java |  14 +-
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../traversal/dsl/graph/GraphTraversal.java| 330 -
 .../traversal/dsl/graph/GraphTraversalSource.java  |  46 +++
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GType.java  |  16 +-
 .../gremlin/process/traversal/step/GValue.java | 184 +++-
 .../process/traversal/step/filter/CoinStep.java|   8 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/CombineStep.java|  11 +-
 .../process/traversal/step/map/ConcatStep.java |   8 +
 .../process/traversal/step/map/ConjoinStep.java|  19 +-
 .../process/traversal/step/map/ConstantStep.java   |  17 +-
 .../process/traversal/step/map/GraphStep.java  |  74 +++--
 .../process/traversal/step/map/IntersectStep.java  |  11 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../process/traversal/step/map/MergeStep.java  |  23 +-
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../traversal/step/map/SplitGlobalStep.java|   4 +
 .../process/traversal/step/map/SplitLocalStep.java |   4 +
 .../traversal/step/map/TraversalMergeStep.java |  19 +-
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../traversal/step/sideEffect/InjectStep.java  |  14 +-
 .../process/traversal/step/util/AbstractStep.java  |  27 ++
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../

(tinkerpop) 01/03: wip - params

2024-07-31 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 6fffb2a6f6f4720429e1c48e76e796d7eb891f05
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 +-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 +++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 ++
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 ++-
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java| 270 +
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GType.java  |  81 ++
 .../gremlin/process/traversal/step/GValue.java | 321 +
 .../process/traversal/step/filter/CoinStep.java|  28 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/ConstantStep.java   |  19 +-
 .../process/traversal/step/map/GraphStep.java  |  30 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../process/traversal/step/map/MergeStep.java  |  18 +-
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../optimization/AdjacentToIncidentStrategy.java   |   2 +-
 .../optimization/IncidentToAdjacentStrategy.java   |   2 +-
 .../optimization/InlineFilterStrategy.java |  20 +-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/structure/io/gryo/GryoVersion.java |  12 +-
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../gremlin/process/traversal/step/GTypeTest.java  |  77 +
 .../gremlin/process/traversal/step/GValueTest.java | 316 
 .../traversal/step/util/ParametersTest.java|  11 +
 .../translator/JavascriptTranslatorTest.java   |   8 +
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 ++-
 35 files changed, 1682 insertions(+), 122 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {

(tinkerpop) 02/03: Get rid of P as a parameter in gherkin

2024-07-31 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ce8a452549f5a3f647cbfb1fa2fc8037030d1f97
Author: Stephen Mallette 
AuthorDate: Tue Jul 30 10:26:35 2024 -0400

Get rid of P as a parameter in gherkin

P can't really be used that way in the grammar so doesn't make sense to 
test that way.
---
 .../Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs|  7 ---
 .../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs   |  8 
 gremlin-go/driver/cucumber/cucumberSteps_test.go  | 15 +--
 gremlin-go/driver/cucumber/gremlin.go |  8 
 .../gremlin-javascript/test/cucumber/feature-steps.js |  4 
 .../gremlin-javascript/test/cucumber/gremlin.js   |  8 
 gremlin-python/src/main/python/radish/feature_steps.py| 11 ---
 gremlin-python/src/main/python/radish/gremlin.py  |  8 
 .../apache/tinkerpop/gremlin/features/StepDefinition.java |  5 -
 .../tinkerpop/gremlin/test/features/filter/HasId.feature  | 13 +
 10 files changed, 22 insertions(+), 65 deletions(-)

diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
index 98f8b0b5b4..98d49d8df7 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
@@ -115,13 +115,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
 _parameters.Add(name, parsedValue);
 }
 
-[Given("using the parameter (\\w+) of P.(\\w+)\\(\"(.*)\"\\)")]
-public void UsingParameterP(string name, string pval, string value)
-{
-var parsedValue = ParseValue(value.Replace("\\\"", "\""), 
_graphName!);
-_parameters.Add(name, new P(pval, parsedValue));
-}
-
 [Given("the traversal of")]
 public void TranslateTraversal(string traversalText)
 {
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index bd0a8e7469..c8cb66068e 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -268,9 +268,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_hasXlabel_isXpersonXX", new 
List, ITraversal>> 
{(g,p) =>g.V().Has(T.Label, __.Is("person"))}}, 
{"g_V_hasXname_nullX", new List, ITraversal>> {(g,p) =>g.V().Has("name", (object) 
null)}}, 
{"g_V_hasIdXemptyX_count", new List, ITraversal>> {(g,p) 
=>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_hasIdXwithinXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_hasIdXwithoutXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-   {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(p["xx1"])).Count()}}, 
+   {"g_V_hasIdXwithinXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(P.Within(new List {  })).Count()}}, 
+   {"g_V_hasIdXwithoutXemptyXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(P.Without(new List {  })).Count()}}, 
+   {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(P.Within(new List {  }))).Count()}}, 
{"g_V_hasIdXnullX", new List, ITraversal>> {(g,p) =>g.V().HasId(null)}}, 
{"g_V_hasIdXeqXnullXX", new List, ITraversal>> {(g,p) =>g.V().HasId(P.Eq(null))}}, 
{"g_V_hasIdX2_nullX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid2"], 
null)}}, 
@@ -278,7 +278,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_V_hasIdX1AsString_2AsString_nullX", new 
List, ITraversal>> 
{(g,p) =>g.V().HasId(p["vid1"], p["vid2"], null)}}, 
{"g_V_hasIdXnull_2X", new List, ITraversal>> {(g,p) =>g.V().HasId(null, 
p["vid2"])}}, 
{"g_V_hasIdX1X_hasIdX2X", new List, ITraversal>> {(g,p) 
=>g.V().HasId(p["vid1"]).HasId(p["vid2"])}}, 
-   {"g_V_in_hasIdXneqX1XX", new List, ITraversal>> {(g,p) 
=>g.V().In().HasId(p["xx1"])}}, 
+ 

(tinkerpop) 01/01: wip - params

2024-07-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 139073888b9d91f0e8fa9c9d90ace28198914a30
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 +-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 +++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 ++
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 ++-
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java| 270 +
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GType.java  |  81 ++
 .../gremlin/process/traversal/step/GValue.java | 321 +
 .../process/traversal/step/filter/CoinStep.java|  28 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/ConstantStep.java   |  19 +-
 .../process/traversal/step/map/GraphStep.java  |  30 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../process/traversal/step/map/MergeStep.java  |  18 +-
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../optimization/AdjacentToIncidentStrategy.java   |   2 +-
 .../optimization/IncidentToAdjacentStrategy.java   |   2 +-
 .../optimization/InlineFilterStrategy.java |  20 +-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/structure/io/gryo/GryoVersion.java |  12 +-
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../gremlin/process/traversal/step/GTypeTest.java  |  77 +
 .../gremlin/process/traversal/step/GValueTest.java | 316 
 .../traversal/step/util/ParametersTest.java|  11 +
 .../translator/JavascriptTranslatorTest.java   |   8 +
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 ++-
 35 files changed, 1682 insertions(+), 122 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {

(tinkerpop) branch gvalue-3.7 updated (8b97ff5998 -> 139073888b)

2024-07-30 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 8b97ff5998 wip - params
 discard 5d34e4edf9 wip - params
 add 39d7ed100c added configuration for logging level for Gremlin Console 
in Windows (#2694)
 add 97e1c7ada0 Merge branch '3.6-dev' into 3.7-dev
 add b382a1c751 Remove redundant six dependency (#2692)
 add a846d88d19 Merge branch '3.6-dev' into 3.7-dev
 new 139073888b wip - params

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (8b97ff5998)
\
 N -- N -- N   refs/heads/gvalue-3.7 (139073888b)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |  2 ++
 gremlin-console/src/main/bin/gremlin-java8.bat | 13 -
 gremlin-console/src/main/bin/gremlin.bat   | 13 -
 gremlin-python/docker-compose.yml  |  2 +-
 gremlin-python/src/main/python/examples/requirements.txt   |  1 -
 gremlin-python/src/main/python/setup.cfg   |  3 ---
 gremlin-python/src/main/python/setup.py|  7 +--
 .../main/python/tests/structure/io/test_graphsonV2d0.py| 12 ++--
 .../main/python/tests/structure/io/test_graphsonV3d0.py| 14 +++---
 9 files changed, 41 insertions(+), 26 deletions(-)



(tinkerpop) 02/02: wip - params

2024-07-29 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 8b97ff5998f666fafdb768d7f57aa07dda2bc2ad
Author: Stephen Mallette 
AuthorDate: Mon Jul 29 16:06:03 2024 -0400

wip - params
---
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../traversal/dsl/graph/GraphTraversal.java| 258 -
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GValue.java | 179 +++-
 .../process/traversal/step/filter/CoinStep.java|   2 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/ConstantStep.java   |  19 +-
 .../process/traversal/step/map/GraphStep.java  |  30 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../process/traversal/step/map/MergeStep.java  |  18 +-
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../optimization/AdjacentToIncidentStrategy.java   |   2 +-
 .../optimization/IncidentToAdjacentStrategy.java   |   2 +-
 .../optimization/InlineFilterStrategy.java |  20 +-
 .../gremlin/structure/io/gryo/GryoVersion.java |  12 +-
 .../gremlin/process/traversal/step/GTypeTest.java  |  77 +
 .../gremlin/process/traversal/step/GValueTest.java | 316 +
 .../traversal/step/util/ParametersTest.java|  11 +
 .../translator/JavascriptTranslatorTest.java   |   8 +
 23 files changed, 1009 insertions(+), 51 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
index 5b88cea5fc..862ee98bd9 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
@@ -19,6 +19,7 @@
 
 package org.apache.tinkerpop.gremlin.process.traversal;
 
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
@@ -295,8 +296,13 @@ public class Bytecode implements Cloneable, Serializable {
 if (null != variable)
 return new Binding<>(variable, convertArgument(argument, 
false));
 }
-//
-if (argument instanceof Traversal) {
+
+// a GValue gets converted to its value because we don't serialize it. 
it really doesn't have anything to do
+// with bytecode/remoting. it's an internal construct related to 
parsing with the grammar that is leaking
+// over here. in 4.x with bytecode removed, we won't need to worry 
about this.
+if (argument instanceof GValue)
+return convertArgument(((GValue) argument).get(), false);
+else if (argument instanceof Traversal) {
 // prevent use of "g" to spawn child traversals
 if (((Traversal) 
argument).asAdmin().getTraversalSource().isPresent())
 throw new IllegalStateException(String.format(
diff --git 
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
index 103ad64255..3d9cd3e088 100644
--- 
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
@@ -47,7 +47,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.lambda.TrueTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.ByModulating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
 import org.apache.tinkerpop.gremlin.process.traversal.step.FromToModulating;
-import org.apache.tinkerpop.gremlin.process.traversal.step.GType;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Mutating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.ReadWriting;
@@ -243,7 +242,7 @@ public interface GraphTraversal extends Traversal {
 public interface Admin extends Traversal.Admin, 
GraphTraversal {
 
 /**
- * Filter the E object given a biased coin toss.
+ * Filter the E object given a biased coin toss. For 
interna

(tinkerpop) 01/02: wip - params

2024-07-29 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 5d34e4edf989354d1ca1c97a2f4f18d3aada5e1f
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 ++-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 ++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 +
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java|  42 ++
 .../gremlin/process/traversal/step/GType.java  |  81 +++
 .../gremlin/process/traversal/step/GValue.java | 148 +
 .../process/traversal/step/filter/CoinStep.java|  26 +++-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 +++--
 15 files changed, 691 insertions(+), 89 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {
 return GremlinQueryParser.parse(script, antlr);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
new file mode 100644
index 00..1be1f3d448
--- /dev/null
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
@@ -0,0 +1,40 @@
+/*
+ * 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 lan

(tinkerpop) branch gvalue-3.7 updated (216b8b10c3 -> 8b97ff5998)

2024-07-29 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 216b8b10c3 wip - params
 add 859894261c Bump Polly from 8.4.0 to 8.4.1 in /gremlin-dotnet
 add 98e5b3e9fb Bump xunit from 2.8.1 to 2.9.0 in /gremlin-dotnet
 add 2c6d334e37 Merge branch 
'dependabot/nuget/gremlin-dotnet/3.6-dev/xunit-2.9.0' into 3.6-dev
 add d6e4a2d0dd Bump xunit.runner.visualstudio from 2.8.1 to 2.8.2 in 
/gremlin-dotnet
 add ce6caa155d Merge branch 
'dependabot/nuget/gremlin-dotnet/3.6-dev/xunit.runner.visualstudio-2.8.2' into 
3.6-dev
 add 37d865d237 Merge branch '3.6-dev' into 3.7-dev
 add 812bc1de78 Add getter for private fields to Concat, Conjoin, 
SplitGlobal/Local Step (#2687)
 add ef466de995 improvement: add necessary parameters for logging (#2684)
 add 33d5cf8f69 Fixed up some formatting and confusing upgrade notes CTR
 new 5d34e4edf9 wip - params
 new 8b97ff5998 wip - params

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (216b8b10c3)
\
 N -- N -- N   refs/heads/gvalue-3.7 (8b97ff5998)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |   2 +
 docs/src/upgrade/release-3.7.x.asciidoc|  23 +-
 .../gremlin/process/traversal/Bytecode.java|  10 +-
 .../traversal/dsl/graph/GraphTraversal.java| 258 -
 .../traversal/lambda/ConstantTraversal.java|  15 +-
 .../gremlin/process/traversal/step/GValue.java | 179 +++-
 .../process/traversal/step/filter/CoinStep.java|   2 +-
 .../process/traversal/step/map/AddEdgeStep.java|   6 +
 .../process/traversal/step/map/AddVertexStep.java  |   5 +
 .../process/traversal/step/map/ConcatStep.java |   8 +
 .../process/traversal/step/map/ConjoinStep.java|   4 +
 .../process/traversal/step/map/ConstantStep.java   |  19 +-
 .../process/traversal/step/map/GraphStep.java  |  30 +-
 .../process/traversal/step/map/MergeEdgeStep.java  |   5 +
 .../process/traversal/step/map/MergeStep.java  |  18 +-
 .../traversal/step/map/MergeVertexStep.java|   5 +
 .../traversal/step/map/SplitGlobalStep.java|   4 +
 .../process/traversal/step/map/SplitLocalStep.java |   4 +
 .../process/traversal/step/map/VertexStep.java |  37 ++-
 .../process/traversal/step/util/Parameters.java|  21 +-
 .../strategy/decoration/SubgraphStrategy.java  |   2 +-
 .../optimization/AdjacentToIncidentStrategy.java   |   2 +-
 .../optimization/IncidentToAdjacentStrategy.java   |   2 +-
 .../optimization/InlineFilterStrategy.java |  20 +-
 .../gremlin/structure/io/gryo/GryoVersion.java |  12 +-
 .../gremlin/process/traversal/step/GTypeTest.java  |  77 +
 .../gremlin/process/traversal/step/GValueTest.java | 316 +
 .../traversal/step/util/ParametersTest.java|  11 +
 .../translator/JavascriptTranslatorTest.java   |   8 +
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj  |   2 +-
 .../Gremlin.Net.IntegrationTest.csproj |   4 +-
 .../Gremlin.Net.Template.IntegrationTest.csproj|   4 +-
 .../Gremlin.Net.UnitTest.csproj|   4 +-
 gremlin-go/driver/graphBinary.go   |   2 +-
 gremlin-go/driver/graphBinary_test.go  |   2 +-
 35 files changed, 1047 insertions(+), 76 deletions(-)
 create mode 100644 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/GTypeTest.java
 create mode 100644 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValueTest.java



(tinkerpop) branch 3.7-dev updated (ef466de995 -> 33d5cf8f69)

2024-07-19 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from ef466de995 improvement: add necessary parameters for logging (#2684)
 add 33d5cf8f69 Fixed up some formatting and confusing upgrade notes CTR

No new revisions were added by this update.

Summary of changes:
 docs/src/upgrade/release-3.7.x.asciidoc | 23 +++
 1 file changed, 7 insertions(+), 16 deletions(-)



(tinkerpop) branch master updated: Fixed up some formatting and confusing upgrade notes CTR

2024-07-19 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/master by this push:
 new 33d5cf8f69 Fixed up some formatting and confusing upgrade notes CTR
 new 93879c826d Merge branch '3.7-dev'
33d5cf8f69 is described below

commit 33d5cf8f695941499283290141948de17764cfc0
Author: Stephen Mallette 
AuthorDate: Fri Jul 19 16:03:46 2024 -0400

Fixed up some formatting and confusing upgrade notes CTR
---
 docs/src/upgrade/release-3.7.x.asciidoc | 23 +++
 1 file changed, 7 insertions(+), 16 deletions(-)

diff --git a/docs/src/upgrade/release-3.7.x.asciidoc 
b/docs/src/upgrade/release-3.7.x.asciidoc
index 9ddac7c018..4dda8ba74d 100644
--- a/docs/src/upgrade/release-3.7.x.asciidoc
+++ b/docs/src/upgrade/release-3.7.x.asciidoc
@@ -30,7 +30,6 @@ complete list of all the modifications that are part of this 
release.
 
 === Upgrading for Users
 
-
 == TinkerPop 3.7.2
 
 *Release Date: April 8, 2024*
@@ -38,18 +37,6 @@ complete list of all the modifications that are part of this 
release.
 Please see the 
link:https://github.com/apache/tinkerpop/blob/3.7.2/CHANGELOG.asciidoc#release-3-7-2[changelog]
 for a
 complete list of all the modifications that are part of this release.
 
-=== Upgrading for Users
-
- Notice: Renaming `none()` step to `discard()` in 4.0.0
-`none()`, which is primarily used by `iterate()` to discard traversal results 
in remote contexts, will be renamed to
-`discard()` in release 4.0.0.
-
-=== Upgrading for Providers
-
- Notice: Renaming NoneStep to DiscardStep in 4.0.0
-NoneStep, which is primarily used by `iterate()` to discard traversal results 
in remote contexts, will be renamed to
-DiscardStep in release 4.0.0 to make room for a list filtering NoneStep.
-
 == TinkerPop 3.7.1
 *Release Date: November 20, 2023*
 
@@ -59,8 +46,9 @@ complete list of all the modifications that are part of this 
release.
 === Upgrading for Users
 
  String Manipulation Steps
-This version introduces the following new string manipulation steps 
`asString()`, `length()`, `toLower()`, `toUpper()`, `trim()`,
-`lTrim()`, `rTrim()`, `reverse()`, `replace()`, `split()`, `substring()`, and 
`format()`, as well as modifications to the `concat()` step introduced in 3.7.0.
+This version introduces the following new string manipulation steps 
`asString()`, `length()`, `toLower()`, `toUpper()`,
+`trim()`, `lTrim()`, `rTrim()`, `reverse()`, `replace()`, `split()`, 
`substring()`, and `format()`, as well as
+modifications to the `concat()` step introduced in 3.7.0.
 
 = Updates to String Step concat():
 Concat has been modified to take traversal varargs instead of a single 
traversal. Users no longer have to chain
@@ -73,7 +61,10 @@ gremlin> 
g.V(1).outE().as("a").V(1).values("name").concat(select("a").label(), s
 ==>markoknowsjosh
 
 
-A notable breaking change from 3.7.0 is that we have output order of 
`inject()` as a child of `concat()` to be consistent with other parent steps. 
Any 3.7.0 uses of `concat(inject(X))` should change to `concat(constant(X))` to 
retain the old semantics.
+A notable breaking change from 3.7.0 is that we have output order of 
`inject()` as a child of `concat()` to be
+consistent with other parent steps. Any 3.7.0 uses of `concat(inject(X))` 
should change to `concat(constant(X))` to
+retain the old semantics.
+
 [source,text]
 
 // 3.7.0



(tinkerpop) branch master-http-v3 created (now acc940f51b)

2024-07-19 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master-http-v3
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


  at acc940f51b Retain v3 serializers and related code

This branch includes the following new commits:

 new acc940f51b Retain v3 serializers and related code

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(tinkerpop) branch gvalue-3.7 created (now 216b8b10c3)

2024-07-12 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


  at 216b8b10c3 wip - params

This branch includes the following new commits:

 new 216b8b10c3 wip - params

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(tinkerpop) 01/01: wip - params

2024-07-12 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue-3.7
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 216b8b10c32f79ca3d875120af6308d975faed52
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 ++-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 ++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 +
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java|  42 ++
 .../gremlin/process/traversal/step/GType.java  |  81 +++
 .../gremlin/process/traversal/step/GValue.java | 148 +
 .../process/traversal/step/filter/CoinStep.java|  26 +++-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 +++--
 15 files changed, 691 insertions(+), 89 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {
 return GremlinQueryParser.parse(script, antlr);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
new file mode 100644
index 00..1be1f3d448
--- /dev/null
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
@@ -0,0 +1,40 @@
+/*
+ * 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 lan

(tinkerpop) branch gvalue updated (3f9b30f452 -> 71adcf4d5f)

2024-07-12 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 3f9b30f452 wip - parameters
 new 71adcf4d5f wip - params

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (3f9b30f452)
\
 N -- N -- N   refs/heads/gvalue (71adcf4d5f)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 ++-
 .../VariableResolverCustomizer.java}   |  29 ++---
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 +
 .../language/grammar/TraversalMethodVisitor.java   |   2 +-
 .../gremlin/process/traversal/step/GType.java  |  54 +++---
 .../gremlin/process/traversal/step/GValue.java |  24 +++--
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 +
 .../tinkergraph/structure/TinkerGraphPlayTest.java |   5 +-
 8 files changed, 299 insertions(+), 44 deletions(-)
 copy 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/{process/traversal/util/TraversalObjectFunction.java
 => jsr223/VariableResolverCustomizer.java} (54%)
 create mode 100644 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverPlugin.java
 create mode 100644 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverPluginTest.java



(tinkerpop) 01/01: wip - params

2024-07-12 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 71adcf4d5fd48dc1e326e506233649828c366221
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 10:48:20 2024 -0400

wip - params
---
 .../gremlin/jsr223/GremlinLangScriptEngine.java|  17 ++-
 .../gremlin/jsr223/VariableResolverCustomizer.java |  40 ++
 .../gremlin/jsr223/VariableResolverPlugin.java |  95 +
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java|  42 ++
 .../gremlin/process/traversal/step/GType.java  |  81 +++
 .../gremlin/process/traversal/step/GValue.java | 148 +
 .../process/traversal/step/filter/CoinStep.java|  26 +++-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../gremlin/jsr223/VariableResolverPluginTest.java | 117 
 .../language/grammar/ArgumentVisitorTest.java  | 116 
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  33 +++--
 15 files changed, 691 insertions(+), 89 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..6ef141e8e5 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -33,7 +33,11 @@ import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
 
 /**
  * A {@link GremlinScriptEngine} implementation that evaluates Gremlin scripts 
using {@code gremlin-language}. As it
@@ -53,6 +57,8 @@ import java.util.Map;
 public class GremlinLangScriptEngine extends AbstractScriptEngine implements 
GremlinScriptEngine {
 private volatile GremlinScriptEngineFactory factory;
 
+private final Function, VariableResolver> 
variableResolverMaker;
+
 /**
  * Creates a new instance using no {@link Customizer}.
  */
@@ -61,6 +67,15 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 }
 
 public GremlinLangScriptEngine(final Customizer... customizers) {
+final List listOfCustomizers = Arrays.asList(customizers);
+
+// this ScriptEngine really only supports the 
VariableResolverCustomizer to configure the VariableResolver
+// and can't configure it more than once. first one wins
+final Optional opt = listOfCustomizers.stream().filter(c 
-> c instanceof VariableResolverCustomizer).findFirst();
+variableResolverMaker = opt.isPresent() ?
+((VariableResolverCustomizer) 
opt.get()).getVariableResolverMaker() :
+VariableResolver.DirectVariableResolver::new;
+
 }
 
 @Override
@@ -108,7 +123,7 @@ public class GremlinLangScriptEngine extends 
AbstractScriptEngine implements Gre
 
 final Map m = 
context.getBindings(ScriptContext.ENGINE_SCOPE);
 final GremlinAntlrToJava antlr = new 
GremlinAntlrToJava((GraphTraversalSource) o,
-new VariableResolver.DefaultVariableResolver(m));
+variableResolverMaker.apply(m));
 
 try {
 return GremlinQueryParser.parse(script, antlr);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
new file mode 100644
index 00..1be1f3d448
--- /dev/null
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/VariableResolverCustomizer.java
@@ -0,0 +1,40 @@
+/*
+ * 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 lan

(tinkerpop) branch 3.7-dev updated (a65bcd8761 -> 4d9347088d)

2024-07-12 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from a65bcd8761 Merge branch '3.6-dev' into 3.7-dev
 add 4d9347088d Fixes neo4j when used with jdk17 CTR

No new revisions were added by this update.

Summary of changes:
 CHANGELOG.asciidoc| 13 +++--
 docs/src/reference/implementations-neo4j.asciidoc |  3 +++
 gremlin-console/src/main/bin/gremlin.sh   |  6 ++
 3 files changed, 16 insertions(+), 6 deletions(-)



(tinkerpop) branch master updated: Fixes neo4j when used with jdk17 CTR

2024-07-12 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/master by this push:
 new 4d9347088d Fixes neo4j when used with jdk17 CTR
 new e6e6e9beac Merge branch '3.7-dev'
4d9347088d is described below

commit 4d9347088d0ec0e5f5d87ab78358d687620ca4d5
Author: Stephen Mallette 
AuthorDate: Fri Jul 12 11:25:03 2024 -0400

Fixes neo4j when used with jdk17 CTR
---
 CHANGELOG.asciidoc| 13 +++--
 docs/src/reference/implementations-neo4j.asciidoc |  3 +++
 gremlin-console/src/main/bin/gremlin.sh   |  6 ++
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 18820da91b..629d5f6109 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,12 +26,13 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 This release also includes changes from <>.
 
 * Refactored mutation events registration by moving reusable code from 
relevant steps to `EventUtil`
-* Open `NoOpBarrierStep` for extensibility (removed `final` keyword)
+* Open `NoOpBarrierStep` for extensibility (removed `final` keyword).
 * Deprecated public constructor for `SeedStrategy` in favor of builder pattern 
to be consistent with other strategies.
-* Allow specifying a customized Spark app name
-* CoinStep has a getter method for its probability field
-* Fixed so that TrimGlobalStep and TrimLocalStep have the same character 
control handling as Ltrim and Rtrim
-* Fix a bug in MaxLocalStep, MinLocalStep, MeanLocalStep and SumLocalStep that 
it throws NoSuchElementException when encounters an empty iterator as input.
+* Allow specifying a customized Spark app name.
+* Added getter method to `CoinStep` for its probability field.
+* Attempted to detect JDK version for Gremlin Console to avoid problems with 
Java 17 if `neo4j-gremlin` is used.
+* Fixed so that `TrimGlobalStep` and `TrimLocalStep` have the same character 
control handling as `Ltrim` and `Rtrim`
+* Fix a bug in `MaxLocalStep`, `MinLocalStep`, `MeanLocalStep` and 
`SumLocalStep` that it throws `NoSuchElementException` when encounters an empty 
iterator as input.
 * Fix cases where Map keys of incomparable types could panic in `gremlin-go`.
 
 [[release-3-7-2]]
@@ -102,7 +103,7 @@ This release also includes changes from <> and <https://tinkerpop.apache.org/providers.html[TinkerPop site].
 
+WARNING: Neo4j-Gremlin can work with JDK17, but requires the use of the 
`--add-opens` flag to be provided to the JVM
+as follows: `--add-opens=java.base/sun.nio.ch=ALL-UNNAMED`.
+
 [source,xml]
 
 
diff --git a/gremlin-console/src/main/bin/gremlin.sh 
b/gremlin-console/src/main/bin/gremlin.sh
index 9fbd8a0e05..36dcb4dd5c 100755
--- a/gremlin-console/src/main/bin/gremlin.sh
+++ b/gremlin-console/src/main/bin/gremlin.sh
@@ -108,6 +108,12 @@ if [ -n "$SCRIPT_DEBUG" ]; then
 set -x
 fi
 
+# Try to detect JDK version and add specific flag for JDK 17 to allow use of 
neo4j-gremlin
+JAVA_VERSION=$($JAVA -version 2>&1 | awk -F '"' '/version/ {print $2}')
+if [[ "$JAVA_VERSION" == 17* ]]; then
+JVM_OPTS+=( "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED" )
+fi
+
 # Start the JVM, execute the application, and return its exit code
 # shellcheck disable=SC2068
 exec $JAVA ${JVM_OPTS[@]} org.apache.tinkerpop.gremlin.console.Console "$@"



(tinkerpop) 01/01: wip - parameters

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 3f9b30f452b09cec4c80e33f67ff724cfc5a1963
Author: Stephen Mallette 
AuthorDate: Wed Jul 10 15:49:35 2024 -0400

wip - parameters
---
 .../language/grammar/TraversalMethodVisitor.java   |  11 +-
 .../gremlin/language/grammar/VariableResolver.java |  37 +-
 .../tinkerpop/gremlin/process/traversal/P.java |   6 +-
 .../traversal/dsl/graph/GraphTraversal.java|  42 +++
 .../gremlin/process/traversal/step/GType.java  |  59 +
 .../gremlin/process/traversal/step/GValue.java | 138 +
 .../process/traversal/step/filter/CoinStep.java|  26 +++-
 .../gremlin/structure/VertexProperty.java  |   3 -
 .../language/grammar/ArgumentVisitorTest.java  | 116 -
 .../language/grammar/GremlinQueryParserTest.java   |   8 +-
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  30 +++--
 11 files changed, 388 insertions(+), 88 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 440bd502c8..d183445b9a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -23,6 +23,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.Order;
 import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GType;
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
 
 import java.util.Map;
@@ -441,7 +443,14 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor
  */
 @Override
 public GraphTraversal visitTraversalMethod_coin(final 
GremlinParser.TraversalMethod_coinContext ctx) {
-return graphTraversal.coin(((Number) 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument())).doubleValue());
+final Object literalOrVar = 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument());
+if (literalOrVar instanceof Number)
+return graphTraversal.coin(((Number) literalOrVar).doubleValue());
+else if (literalOrVar instanceof GValue && ((GValue) 
literalOrVar).getType() == GType.DOUBLE)
+return graphTraversal.asAdmin().coin((GValue) 
literalOrVar);
+else
+throw new IllegalArgumentException("coin() argument must be a 
double");
+
 }
 
 /**
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/VariableResolver.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/VariableResolver.java
index a97bd4b646..e017808faf 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/VariableResolver.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/VariableResolver.java
@@ -18,24 +18,25 @@
  */
 package org.apache.tinkerpop.gremlin.language.grammar;
 
+import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import java.util.Map;
 import java.util.function.BiFunction;
 
 /**
  * Resolves parameters in Gremlin to objects.
  */
-public interface VariableResolver extends BiFunction {
+public interface VariableResolver extends BiFunction {
 
 /**
  * This function resolves a variable name and the given parsers context to 
an object.
  */
 @Override
-Object apply(final String varName, final GremlinParser.VariableContext 
variableContext);
+T apply(final String varName, final GremlinParser.VariableContext 
variableContext);
 
 /**
  * This {@link VariableResolver} implementation throws exceptions for all 
variable names.
  */
-class NoVariableResolver implements VariableResolver {
+class NoVariableResolver implements VariableResolver {
 private static NoVariableResolver instance = new NoVariableResolver();
 
 public static VariableResolver instance() {
@@ -48,12 +49,35 @@ public interface VariableResolver extends 
BiFunction> {
+
+private final Map variables;
+
+public DefaultVariableResolver(final Map variables) {
+this.variables = variables;
+}
+
+@Override
+public GValue apply(final String s, final 
GremlinParser.VariableContext variableContext) {
+if (!variables.containsKey(s)) {
+throw new VariableResolverException(String.format("No 

(tinkerpop) branch gvalue created (now 3f9b30f452)

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


  at 3f9b30f452 wip - parameters

This branch includes the following new commits:

 new 3f9b30f452 wip - parameters

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(tinkerpop) branch dependabot/nuget/gremlin-dotnet/3.6-dev/System.Text.Json-8.0.4 deleted (was fc1d778071)

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 
dependabot/nuget/gremlin-dotnet/3.6-dev/System.Text.Json-8.0.4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 was fc1d778071 Bump System.Text.Json from 8.0.3 to 8.0.4 in /gremlin-dotnet

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(tinkerpop) branch 3.6-dev updated (e4d2e72e5a -> fc1d778071)

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.6-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from e4d2e72e5a Merge pull request #2622
 add fc1d778071 Bump System.Text.Json from 8.0.3 to 8.0.4 in /gremlin-dotnet

No new revisions were added by this update.

Summary of changes:
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



(tinkerpop) branch 3.7-dev updated (746222412a -> a65bcd8761)

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 746222412a Update CHANGELOG entry for PR#2673 CTR
 add fc1d778071 Bump System.Text.Json from 8.0.3 to 8.0.4 in /gremlin-dotnet
 add a65bcd8761 Merge branch '3.6-dev' into 3.7-dev

No new revisions were added by this update.

Summary of changes:
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



(tinkerpop) 01/02: Merge branch '3.6-dev' into 3.7-dev

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit a65bcd87616828eedf6d4470e40da60e6027f82e
Merge: 746222412a fc1d778071
Author: Stephen Mallette 
AuthorDate: Wed Jul 10 07:50:39 2024 -0400

Merge branch '3.6-dev' into 3.7-dev

 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)




(tinkerpop) branch master updated (38c05d80b8 -> d8089a1d43)

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 38c05d80b8 Merge branch '3.7-dev'
 add fc1d778071 Bump System.Text.Json from 8.0.3 to 8.0.4 in /gremlin-dotnet
 new a65bcd8761 Merge branch '3.6-dev' into 3.7-dev
 new d8089a1d43 Merge branch '3.7-dev'

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



(tinkerpop) 02/02: Merge branch '3.7-dev'

2024-07-10 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit d8089a1d43d8724d046aa7b886186a304b2990cf
Merge: 38c05d80b8 a65bcd8761
Author: Stephen Mallette 
AuthorDate: Wed Jul 10 07:53:52 2024 -0400

Merge branch '3.7-dev'

 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)




(tinkerpop) branch 3.7-dev updated (53f4572e19 -> dc8f203ea3)

2024-06-28 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch 3.7-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 53f4572e19 Merge branch '3.6-dev' into 3.7-dev
 add 42a14801fa Not throwing NoSuchElementException when encountering an 
empty iterator input in local Number operations
 add e47f360624 Merge branch 'pr-2665' into 3.7-dev
 add d391ce8c55 TrimGlobalStep handles unicode characters as Ltrim and Rtrim
 add dc8f203ea3 Merge branch 'pr-2666' into 3.7-dev

No new revisions were added by this update.

Summary of changes:
 CHANGELOG.asciidoc |  2 ++
 .../traversal/step/map/LTrimGlobalStep.java| 12 ++-
 .../process/traversal/step/map/LTrimLocalStep.java | 11 +--
 .../process/traversal/step/map/MaxLocalStep.java   | 23 --
 .../process/traversal/step/map/MeanLocalStep.java  | 37 --
 .../process/traversal/step/map/MinLocalStep.java   | 23 --
 .../traversal/step/map/RTrimGlobalStep.java| 12 ++-
 .../process/traversal/step/map/RTrimLocalStep.java | 11 +--
 .../process/traversal/step/map/SumLocalStep.java   | 32 ---
 .../process/traversal/step/map/TrimGlobalStep.java |  6 ++--
 .../process/traversal/step/map/TrimLocalStep.java  |  2 +-
 .../traversal/step/util/StringLocalStep.java   | 21 
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 13 ++--
 gremlin-go/driver/cucumber/gremlin.go  | 13 ++--
 .../gremlin-javascript/test/cucumber/gremlin.js| 13 ++--
 gremlin-python/src/main/python/radish/gremlin.py   | 13 ++--
 .../gremlin/test/features/map/LTrim.feature| 20 +++-
 .../gremlin/test/features/map/Max.feature  | 15 +
 .../gremlin/test/features/map/Mean.feature | 17 +-
 .../gremlin/test/features/map/Min.feature  | 15 +
 .../gremlin/test/features/map/RTrim.feature| 20 +++-
 .../gremlin/test/features/map/Sum.feature  | 17 +-
 .../gremlin/test/features/map/Trim.feature | 20 +++-
 23 files changed, 261 insertions(+), 107 deletions(-)



(tinkerpop) branch master updated (9592a02587 -> 2b3b743b0d)

2024-06-28 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 9592a02587 Merge branch '3.7-dev'
 add 42a14801fa Not throwing NoSuchElementException when encountering an 
empty iterator input in local Number operations
 new e47f360624 Merge branch 'pr-2665' into 3.7-dev
 add d391ce8c55 TrimGlobalStep handles unicode characters as Ltrim and Rtrim
 new dc8f203ea3 Merge branch 'pr-2666' into 3.7-dev
 new 2b3b743b0d Merge branch '3.7-dev'

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |  2 ++
 .../traversal/step/map/LTrimGlobalStep.java| 12 ++-
 .../process/traversal/step/map/LTrimLocalStep.java | 11 +--
 .../process/traversal/step/map/MaxLocalStep.java   | 23 --
 .../process/traversal/step/map/MeanLocalStep.java  | 37 --
 .../process/traversal/step/map/MinLocalStep.java   | 23 --
 .../traversal/step/map/RTrimGlobalStep.java| 12 ++-
 .../process/traversal/step/map/RTrimLocalStep.java | 11 +--
 .../process/traversal/step/map/SumLocalStep.java   | 32 ---
 .../process/traversal/step/map/TrimGlobalStep.java |  6 ++--
 .../process/traversal/step/map/TrimLocalStep.java  |  2 +-
 .../traversal/step/util/StringLocalStep.java   | 21 
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 13 ++--
 gremlin-go/driver/cucumber/gremlin.go  | 13 ++--
 .../gremlin-javascript/test/cucumber/gremlin.js| 13 ++--
 gremlin-python/src/main/python/radish/gremlin.py   | 13 ++--
 .../gremlin/test/features/map/LTrim.feature| 20 +++-
 .../gremlin/test/features/map/Max.feature  | 15 +
 .../gremlin/test/features/map/Mean.feature | 17 +-
 .../gremlin/test/features/map/Min.feature  | 15 +
 .../gremlin/test/features/map/RTrim.feature| 20 +++-
 .../gremlin/test/features/map/Sum.feature  | 17 +-
 .../gremlin/test/features/map/Trim.feature | 20 +++-
 23 files changed, 261 insertions(+), 107 deletions(-)



(tinkerpop) 02/03: Merge branch 'pr-2666' into 3.7-dev

2024-06-28 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit dc8f203ea3e2e3ad4b21a41db6c2d16dbaad63e2
Merge: e47f360624 d391ce8c55
Author: Stephen Mallette 
AuthorDate: Fri Jun 28 07:15:41 2024 -0400

Merge branch 'pr-2666' into 3.7-dev

 CHANGELOG.asciidoc  |  1 +
 .../process/traversal/step/map/LTrimGlobalStep.java | 12 +++-
 .../process/traversal/step/map/LTrimLocalStep.java  | 11 +--
 .../process/traversal/step/map/RTrimGlobalStep.java | 12 +++-
 .../process/traversal/step/map/RTrimLocalStep.java  | 11 +--
 .../process/traversal/step/map/TrimGlobalStep.java  |  6 +++---
 .../process/traversal/step/map/TrimLocalStep.java   |  2 +-
 .../traversal/step/util/StringLocalStep.java| 21 +
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs  |  9 ++---
 gremlin-go/driver/cucumber/gremlin.go   |  9 ++---
 .../gremlin-javascript/test/cucumber/gremlin.js |  9 ++---
 gremlin-python/src/main/python/radish/gremlin.py|  9 ++---
 .../gremlin/test/features/map/LTrim.feature | 20 +++-
 .../gremlin/test/features/map/RTrim.feature | 20 +++-
 .../gremlin/test/features/map/Trim.feature  | 20 +++-
 15 files changed, 115 insertions(+), 57 deletions(-)

diff --cc CHANGELOG.asciidoc
index a558889161,1930bdfcad..eada449247
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -30,7 -30,7 +30,8 @@@ This release also includes changes fro
  * Deprecated public constructor for `SeedStrategy` in favor of builder 
pattern to be consistent with other strategies.
  * Allow specifying a customized Spark app name
  * CoinStep has a getter method for its probability field
+ * Fixed so that TrimGlobalStep and TrimLocalStep have the same character 
control handling as Ltrim and Rtrim
 +* Fix a bug in MaxLocalStep, MinLocalStep, MeanLocalStep and SumLocalStep 
that it throws NoSuchElementException when encounters an empty iterator as 
input.
  
  [[release-3-7-2]]
  === TinkerPop 3.7.2 (April 8, 2024)



(tinkerpop) 01/03: Merge branch 'pr-2665' into 3.7-dev

2024-06-28 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit e47f36062468a2a1f4445a2cc0020b4656542cde
Merge: 53f4572e19 42a14801fa
Author: Stephen Mallette 
AuthorDate: Fri Jun 28 06:57:47 2024 -0400

Merge branch 'pr-2665' into 3.7-dev

 CHANGELOG.asciidoc |  1 +
 .../process/traversal/step/map/MaxLocalStep.java   | 23 --
 .../process/traversal/step/map/MeanLocalStep.java  | 37 --
 .../process/traversal/step/map/MinLocalStep.java   | 23 --
 .../process/traversal/step/map/SumLocalStep.java   | 32 ---
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  4 +++
 gremlin-go/driver/cucumber/gremlin.go  |  4 +++
 .../gremlin-javascript/test/cucumber/gremlin.js|  4 +++
 gremlin-python/src/main/python/radish/gremlin.py   |  4 +++
 .../gremlin/test/features/map/Max.feature  | 15 +
 .../gremlin/test/features/map/Mean.feature | 17 +-
 .../gremlin/test/features/map/Min.feature  | 15 +
 .../gremlin/test/features/map/Sum.feature  | 17 +-
 13 files changed, 146 insertions(+), 50 deletions(-)



(tinkerpop) branch TINKERPOP-3023 deleted (was 05078b8d47)

2024-06-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch TINKERPOP-3023
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 was 05078b8d47 TINKERPOP-3023 Addeed Set syntax in grammar

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(tinkerpop) 01/01: Merge pull request #2662 from apache/TINKERPOP-3023

2024-06-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit a088008af8183e383a48797e2b47a43abf6635a8
Merge: 93674cd3c0 05078b8d47
Author: Stephen Mallette 
AuthorDate: Thu Jun 27 10:07:41 2024 -0400

Merge pull request #2662 from apache/TINKERPOP-3023

TINKERPOP-3023 Addeed Set syntax in grammar

 CHANGELOG.asciidoc |  4 +-
 .../grammar/DefaultGremlinBaseVisitor.java | 19 +++--
 .../language/grammar/GenericLiteralVisitor.java| 13 +++
 .../translator/AnonymizedTranslatorVisitor.java|  6 ++
 .../translator/DotNetTranslateVisitor.java | 13 +++
 .../language/translator/GoTranslateVisitor.java| 14 
 .../language/translator/JavaTranslateVisitor.java  | 15 
 .../translator/JavascriptTranslateVisitor.java | 13 +++
 .../translator/PythonTranslateVisitor.java | 13 +++
 .../language/translator/TranslateVisitor.java  |  5 ++
 .../grammar/GeneralLiteralVisitorTest.java | 96 --
 .../language/translator/GremlinTranslatorTest.java |  9 ++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  7 +-
 gremlin-go/driver/cucumber/gremlin.go  |  7 +-
 .../structure/io/binary/internals/AnySerializer.js |  1 +
 .../structure/io/binary/internals/SetSerializer.js | 29 ++-
 .../lib/structure/io/type-serializers.ts   | 11 +++
 .../test/cucumber/feature-steps.js |  5 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|  7 +-
 .../graphbinary/ArraySerializerTestTemplate.js |  6 +-
 .../unit/graphbinary/SetSerializerTestTemplate.js  | 31 +--
 gremlin-language/src/main/antlr4/Gremlin.g4|  6 ++
 gremlin-python/src/main/python/radish/gremlin.py   |  7 +-
 .../test/features/sideEffect/Aggregate.feature | 20 +++--
 .../test/features/sideEffect/Inject.feature| 40 -
 .../gremlin/test/features/sideEffect/Store.feature | 20 +++--
 26 files changed, 368 insertions(+), 49 deletions(-)



(tinkerpop) branch master updated (93674cd3c0 -> a088008af8)

2024-06-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


from 93674cd3c0 Merge branch '3.7-dev'
 add 05078b8d47 TINKERPOP-3023 Addeed Set syntax in grammar
 new a088008af8 Merge pull request #2662 from apache/TINKERPOP-3023

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc |  4 +-
 .../grammar/DefaultGremlinBaseVisitor.java | 19 +++--
 .../language/grammar/GenericLiteralVisitor.java| 13 +++
 .../translator/AnonymizedTranslatorVisitor.java|  6 ++
 .../translator/DotNetTranslateVisitor.java | 13 +++
 .../language/translator/GoTranslateVisitor.java| 14 
 .../language/translator/JavaTranslateVisitor.java  | 15 
 .../translator/JavascriptTranslateVisitor.java | 13 +++
 .../translator/PythonTranslateVisitor.java | 13 +++
 .../language/translator/TranslateVisitor.java  |  5 ++
 .../grammar/GeneralLiteralVisitorTest.java | 96 --
 .../language/translator/GremlinTranslatorTest.java |  9 ++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  7 +-
 gremlin-go/driver/cucumber/gremlin.go  |  7 +-
 .../structure/io/binary/internals/AnySerializer.js |  1 +
 .../structure/io/binary/internals/SetSerializer.js | 29 ++-
 .../lib/structure/io/type-serializers.ts   | 11 +++
 .../test/cucumber/feature-steps.js |  5 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|  7 +-
 .../graphbinary/ArraySerializerTestTemplate.js |  6 +-
 .../unit/graphbinary/SetSerializerTestTemplate.js  | 31 +--
 gremlin-language/src/main/antlr4/Gremlin.g4|  6 ++
 gremlin-python/src/main/python/radish/gremlin.py   |  7 +-
 .../test/features/sideEffect/Aggregate.feature | 20 +++--
 .../test/features/sideEffect/Inject.feature| 40 -
 .../gremlin/test/features/sideEffect/Store.feature | 20 +++--
 26 files changed, 368 insertions(+), 49 deletions(-)



(tinkerpop) branch TINKERPOP-3023 updated (764d323f2a -> 05078b8d47)

2024-06-27 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch TINKERPOP-3023
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 764d323f2a TINKERPOP-3023 Addeed Set syntax in grammar
 add 7ff2fdb765 Add latency test to ProfilingApplication
 add 4a9019d543 Merge pull request #2660
 add 93674cd3c0 Merge branch '3.7-dev'
 add 05078b8d47 TINKERPOP-3023 Addeed Set syntax in grammar

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (764d323f2a)
\
 N -- N -- N   refs/heads/TINKERPOP-3023 (05078b8d47)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |   1 +
 .../gremlin/driver/util/ProfilingApplication.java  | 136 -
 gremlin-go/driver/cucumber/gremlin.go  |   1 +
 .../gremlin-javascript/test/cucumber/gremlin.js|   1 +
 gremlin-python/src/main/python/radish/gremlin.py   |   1 +
 .../test/features/sideEffect/Inject.feature|  14 ++-
 6 files changed, 121 insertions(+), 33 deletions(-)



(tinkerpop) branch TINKERPOP-3023 updated (168dc335b4 -> 764d323f2a)

2024-06-25 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch TINKERPOP-3023
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard 168dc335b4 TINKERPOP-3023 Addeed Set syntax in grammar
 add 764d323f2a TINKERPOP-3023 Addeed Set syntax in grammar

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (168dc335b4)
\
 N -- N -- N   refs/heads/TINKERPOP-3023 (764d323f2a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../grammar/DefaultGremlinBaseVisitor.java | 14 -
 .../language/grammar/GenericLiteralVisitor.java|  2 ++
 .../grammar/GeneralLiteralVisitorTest.java | 34 +-
 3 files changed, 42 insertions(+), 8 deletions(-)



(tinkerpop) branch TINKERPOP-3023 updated (d84251d2d3 -> 168dc335b4)

2024-06-24 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch TINKERPOP-3023
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


 discard d84251d2d3 TINKERPOP-3023 Addeed Set syntax in grammar
 new 168dc335b4 TINKERPOP-3023 Addeed Set syntax in grammar

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (d84251d2d3)
\
 N -- N -- N   refs/heads/TINKERPOP-3023 (168dc335b4)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../language/grammar/GeneralLiteralVisitorTest.java  | 11 +--
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs   |  2 ++
 gremlin-go/driver/cucumber/gremlin.go|  2 ++
 .../test/cucumber/feature-steps.js   |  5 +
 .../gremlin-javascript/test/cucumber/gremlin.js  |  2 ++
 gremlin-python/src/main/python/radish/gremlin.py |  2 ++
 .../test/features/sideEffect/Aggregate.feature   | 20 +---
 .../gremlin/test/features/sideEffect/Store.feature   | 20 +---
 8 files changed, 44 insertions(+), 20 deletions(-)



(tinkerpop) 01/01: TINKERPOP-3023 Addeed Set syntax in grammar

2024-06-24 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-3023
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 168dc335b473b17867fb64c196d7243d2f0f421b
Author: Stephen Mallette 
AuthorDate: Fri Jun 21 15:05:07 2024 -0400

TINKERPOP-3023 Addeed Set syntax in grammar

Updated translators and serializers as needed. For the latter, particular 
attention was needed for Javascript where Set was being serialized as array 
essentially.
---
 CHANGELOG.asciidoc |  4 +-
 .../grammar/DefaultGremlinBaseVisitor.java |  7 ++-
 .../language/grammar/GenericLiteralVisitor.java| 11 
 .../translator/AnonymizedTranslatorVisitor.java|  6 +++
 .../translator/DotNetTranslateVisitor.java | 13 +
 .../language/translator/GoTranslateVisitor.java| 14 +
 .../language/translator/JavaTranslateVisitor.java  | 15 ++
 .../translator/JavascriptTranslateVisitor.java | 13 +
 .../translator/PythonTranslateVisitor.java | 13 +
 .../language/translator/TranslateVisitor.java  |  5 ++
 .../grammar/GeneralLiteralVisitorTest.java | 62 +++---
 .../language/translator/GremlinTranslatorTest.java |  9 
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  6 ++-
 gremlin-go/driver/cucumber/gremlin.go  |  6 ++-
 .../structure/io/binary/internals/AnySerializer.js |  1 +
 .../structure/io/binary/internals/SetSerializer.js | 29 +-
 .../lib/structure/io/type-serializers.ts   | 11 
 .../test/cucumber/feature-steps.js |  5 +-
 .../gremlin-javascript/test/cucumber/gremlin.js|  6 ++-
 .../graphbinary/ArraySerializerTestTemplate.js |  6 +--
 .../unit/graphbinary/SetSerializerTestTemplate.js  | 31 +--
 gremlin-language/src/main/antlr4/Gremlin.g4|  6 +++
 gremlin-python/src/main/python/radish/gremlin.py   |  6 ++-
 .../test/features/sideEffect/Aggregate.feature | 20 ---
 .../test/features/sideEffect/Inject.feature| 28 +-
 .../gremlin/test/features/sideEffect/Store.feature | 20 ---
 26 files changed, 311 insertions(+), 42 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 6a1a0b49b1..32b7e7dfd0 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -33,6 +33,8 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Added `with()` on `AnonymousTraversalSource` to cover both embedded and 
remote creation options.
 * Renamed the traversal discarding `none()` step to `discard()`.
 * Added new list filtering step `none()`.
+* Added support for `Set` in GraphSON and GraphBinary serialization for 
`gremlin-javascript`, where it previously just converted to array.
+* Added `Set` syntax in `gremlin-language`.
 * Removed the deprecated `withGraph()` option from `AnonymousTraversalSource`.
 * Removed the `gremlin-archetype` module in favor of newer sample applications 
in each GLV's `examples` folder.
 * Bumped to `commons-collection4`.
@@ -41,7 +43,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Modified the Gremlin ANTLR grammar to more dynamically interact with any 
strategies registered globally to the `TraversalStrategies` cache sets.
 * Made `new` keyword optional in the Gremlin grammar.
 * Added TypeScript & ECMAScript module support.
-* Improved graph structures type definitions in TypeScript
+* Improved graph structures type definitions in TypeScript.
 
 == TinkerPop 3.7.0 (Gremfir Master of the Pan Flute)
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index 6682c15bd5..fb5c3d24d4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -1728,6 +1728,9 @@ public class DefaultGremlinBaseVisitor extends 
AbstractParseTreeVisitor im
/**
 * {@inheritDoc}
 */
-   @Override
-   public T visitTraversalBarrier(final 
GremlinParser.TraversalBarrierContext ctx) { notImplemented(ctx); return null; }
+   @Override public T visitTraversalBarrier(final 
GremlinParser.TraversalBarrierContext ctx) { notImplemented(ctx); return null; }
+   /**
+* {@inheritDoc}
+*/
+   @Override public T visitGenericLiteralSet(final 
GremlinParser.GenericLiteralSetContext ctx) { return null; }
 }
\ No newline at end of file
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index c6db0ec1d4..2e0cbbe751 1006

  1   2   3   4   5   6   7   8   9   10   >