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

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

commit 63eec301060b26fda00b649dad49ec65ed0dff9d
Author: Stephen Mallette <[email protected]>
AuthorDate: Fri Jan 26 08:00:20 2024 -0500

    Removed breaking change on SeedStrategy and tucked in some javadoc
---
 CHANGELOG.asciidoc                                 |  3 +--
 .../language/translator/TranslateVisitor.java      |  1 -
 .../gremlin/language/translator/Translator.java    |  2 +-
 .../language/translator/TranslatorException.java   |  3 +++
 .../strategy/decoration/SeedStrategy.java          | 13 +++++++++++-
 gremlin-go/driver/cucumber/gremlin.go              | 24 +++++++++++-----------
 6 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index b89af9ea63..812295ea8e 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,8 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 4.0.0 (NOT OFFICIALLY RELEASED YET)
 
 * Added support for deserialization of `Set` for `gremlin-javascript`.
-* Made `SeedStrategy` construction consistent with the builder pattern and 
removed the public constructor.
-* Added grammar-based `Translator`.
+* Added grammar-based `Translator` for all languages including explicit ones 
for Java and anonymization.
 * Added integer overflow checks for `sum()`.
 * Gremlin Server only supports instantiation of 
`authentication.authenticationHandler` with three-arg constructor.
 * Removed previously deprecated two-arg constructors for 
`authentication.authenticationHandler` implementations.
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java
index 41d0849dd3..27e68d818f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java
@@ -49,7 +49,6 @@ import java.util.Set;
  *     <li>Makes anonymous traversals explicit with double underscore</li>
  *     <li>Makes enums explicit with their proper name</li>
  * </ul>
- *
  */
 public class TranslateVisitor extends AbstractParseTreeVisitor<Void> 
implements GremlinVisitor<Void> {
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java
index fdf6d35073..0712599835 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java
@@ -64,7 +64,7 @@ public enum Translator {
      * Translates to gremlin-python.
      */
     PYTHON("Python", PythonTranslateVisitor::new),
-    //GROOVY("Groovy", 
"org.apache.tinkerpop.gremlin.language.translator.GroovyTranslateVisitor"),
+
     ;
 
     private final String name;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java
index da59614876..524aa8a81a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java
@@ -18,6 +18,9 @@
  */
 package org.apache.tinkerpop.gremlin.language.translator;
 
+/**
+ * Exception produced by the {@link Translator} when it encounters an error.
+ */
 public class TranslatorException extends RuntimeException {
     public TranslatorException(final String message) {
         super(message);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
index 15f6f3c7e5..3584cc69c0 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
@@ -44,7 +44,11 @@ public class SeedStrategy extends 
AbstractTraversalStrategy<TraversalStrategy.De
 
     private final long seed;
 
-    private SeedStrategy(final long seed) {
+    /**
+     * @deprecated As of release 3.7.3, replaced by {@link #build()#seed}.
+     */
+    @Deprecated
+    public SeedStrategy(final long seed) {
         this.seed = seed;
     }
 
@@ -77,13 +81,20 @@ public class SeedStrategy extends 
AbstractTraversalStrategy<TraversalStrategy.De
         return new MapConfiguration(map);
     }
 
+    /**
+     * Builds a {@code SeedStrategy} instance.
+     */
     public static Builder build() {
         return new Builder();
     }
 
+
     public static class Builder {
         private long seed = 0;
 
+        /**
+         * Set the seed value for the strategy that will ensure deterministic 
results from {@link Seedable} steps.
+         */
         public Builder seed(final long seed) {
             this.seed = seed;
             return this;
diff --git a/gremlin-go/driver/cucumber/gremlin.go 
b/gremlin-go/driver/cucumber/gremlin.go
index e052f8c298..c8d82a9b37 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -727,6 +727,12 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_injectXa_null_bX_intersectXa_cX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Intersect(p["xx2"])}}, 
     "g_injectXa_null_bX_intersectXa_null_cX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Intersect(p["xx2"])}}, 
     "g_injectX3_threeX_intersectXfive_three_7X": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Intersect(p["xx2"])}}, 
+    "g_injectX__feature___test__nullX_lTrim": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("  feature", " one test", nil, "", " 
").LTrim()}}, 
+    "g_injectX__feature__X_lTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject("  feature  
").LTrim()}}, 
+    "g_injectXListXa_bXX_lTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).LTrim()}}, 
+    "g_injectXListX1_2XX_lTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).LTrim(gremlingo.Scope.Local)}}, 
+    "g_V_valuesXnameX_lTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
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   ").Proper [...]
+    "g_V_valuesXnameX_order_fold_lTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 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", "    [...]
     "g_injectXfeature_test_nullX_length": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("feature", "test", nil).Length()}}, 
     "g_injectXfeature_test_nullX_lengthXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("feature", "test", 
nil).Length(gremlingo.Scope.Local)}}, 
     "g_injectXListXa_bXX_length": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).Length()}}, 
@@ -736,12 +742,6 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     
"g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX2XX_hasXname_peterX_path_byXnameX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Repeat(gremlingo.T__.Both().SimplePath()).Until(gremlingo.T__.Has("name",
 "peter").Or().Loops().Is(2)).Has("name", "peter").Path().By("name")}}, 
     
"g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_and_loops_isX3XX_hasXname_peterX_path_byXnameX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Repeat(gremlingo.T__.Both().SimplePath()).Until(gremlingo.T__.Has("name",
 "peter").And().Loops().Is(3)).Has("name", "peter").Path().By("name")}}, 
     "g_V_emitXhasXname_markoX_or_loops_isX2XX_repeatXoutX_valuesXnameX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Emit(gremlingo.T__.Has("name", 
"marko").Or().Loops().Is(2)).Repeat(gremlingo.T__.Out()).Values("name")}}, 
-    "g_injectX__feature___test__nullX_lTrim": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("  feature", " one test", nil, "", " 
").LTrim()}}, 
-    "g_injectX__feature__X_lTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject("  feature  
").LTrim()}}, 
-    "g_injectXListXa_bXX_lTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).LTrim()}}, 
-    "g_injectXListX1_2XX_lTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).LTrim(gremlingo.Scope.Local)}}, 
-    "g_V_valuesXnameX_lTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
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   ").Proper [...]
-    "g_V_valuesXnameX_order_fold_lTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 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", "    [...]
     "g_VX1X_mapXnameX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return nil}},  // skipping 
as it contains a lambda
     "g_VX1X_outE_label_mapXlengthX": {func(g *gremlingo.GraphTraversalSource, 
p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},  // skipping 
as it contains a lambda
     "g_VX1X_out_mapXnameX_mapXlengthX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return nil}},  // skipping as it contains a lambda
@@ -1044,6 +1044,12 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_hasXageX_propertiesXage_nameX_value": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("age").Properties("age", 
"name").Value()}}, 
     "g_V_propertiesXname_age_nullX_value": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Properties("name", "age", 
nil).Value()}}, 
     "g_V_valuesXname_age_nullX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("name", 
"age", nil)}}, 
+    "g_injectX__feature___test__nullX_rTrim": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("feature  ", "one test ", nil, "", " 
").RTrim()}}, 
+    "g_injectX__feature__X_rTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject("  feature  
").RTrim()}}, 
+    "g_injectXListXa_bXX_rTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).RTrim()}}, 
+    "g_injectXListX1_2XX_rTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).RTrim(gremlingo.Scope.Local)}}, 
+    "g_V_valuesXnameX_rTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
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   ").Proper [...]
+    "g_V_valuesXnameX_order_fold_rTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 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", "    [...]
     "g_injectXthat_this_test_nullX_replaceXh_jX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("that", "this", "test", 
nil).Replace("h", "j")}}, 
     "g_injectXthat_this_test_nullX_fold_replaceXlocal_h_jX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("that", "this", "test", 
nil).Fold().Replace(gremlingo.Scope.Local, "h", "j")}}, 
     "g_injectXListXa_bXcX_replaceXa_bX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject(p["xx1"]).Replace("a", "b")}}, 
@@ -1060,12 +1066,6 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_injectXnullX_reverse": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(nil).Reverse()}}, 
     "g_injectXbX_reverse": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject("b").Reverse()}}, 
     "g_injectX3_threeX_reverse": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).Reverse()}}, 
-    "g_injectX__feature___test__nullX_rTrim": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject("feature  ", "one test ", nil, "", " 
").RTrim()}}, 
-    "g_injectX__feature__X_rTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject("  feature  
").RTrim()}}, 
-    "g_injectXListXa_bXX_rTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).RTrim()}}, 
-    "g_injectXListX1_2XX_rTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject(p["xx1"]).RTrim(gremlingo.Scope.Local)}}, 
-    "g_V_valuesXnameX_rTrim": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
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   ").Proper [...]
-    "g_V_valuesXnameX_order_fold_rTrimXlocalX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 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", "    [...]
     "g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a", "b")}}, 
     "g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX_byXnameX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a", "b").By("name")}}, 
     "g_VX1X_asXaX_outXknowsX_asXbX_selectXaX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a")}}, 

Reply via email to