[
https://issues.apache.org/jira/browse/TINKERPOP-3028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17852972#comment-17852972
]
ASF GitHub Bot commented on TINKERPOP-3028:
-------------------------------------------
Cole-Greer commented on code in PR #2640:
URL: https://github.com/apache/tinkerpop/pull/2640#discussion_r1630462255
##########
docs/src/upgrade/release-4.x.x.asciidoc:
##########
@@ -118,11 +118,41 @@ passes lists with no elements matching the predicate.
Integer overflows caused by addition and multiplication operations will throw
an exception instead of being silently
skipped with incorrect result.
+==== SeedStrategy Construction
+
+The `SeedStrategy` public constructor has been removed for Java and has been
replaced by the builder pattern common
+to all strategies. This change was made to ensure that the `SeedStrategy`
could be constructed in a consistent manner.
+
==== Removal of `gremlin-archetype`
`gremlin-archetype`, which contained example projects demonstrating the use
cases of TinkerPop, has been removed in
favor of newer sample applications which can be found in each GLV's `examples`
folder.
+==== Improved Translators
+
+The various Java `Translator` implementations allowing conversion of Gremlin
traversals to string forms in various
+languages have been modified considerably. First, they have been moved from to
the
+`org.apache.tinkerpop.gremlin.language.translator` package, because they now
depend on the ANTLR grammar in
+`gremlin-language` to handled the translation process. Making this change
allowed for a more accurate translation of
+Gremlin that doesn't need to rely on reflection and positional arguments to
determine which step was intended for use.
+
+Another important change was the introduction of specific translators for
Groovy and Java. While Groovy translation
+tends to work for most Java cases, there is syntax specific to Groovy where it
does not. With a specific Java
+translator, the translation process can be more accurate and less error prone.
+
+The syntax for the translators has simplified as well. The translator function
now takes a Gremlin string and a target
+language to translate to. Consider the following example:
+
+[source,text]
+----
+gremlin> GremlinTranslator.translate("g.V().out('knows')", Translator.GO)
+==>g.V().Out("knows")
+----
+
+Further note that Gremlin language variants produce `gremlin-language`
compliant strings directly since bytecode was
+removed. As a result, all translators in .NET, Python, C# and Javascript have
been removed.
Review Comment:
```suggestion
removed. As a result, all translators in .NET, Python, Go and Javascript
have been removed.
```
> Convert translators to make use of the grammar
> ----------------------------------------------
>
> Key: TINKERPOP-3028
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3028
> Project: TinkerPop
> Issue Type: Improvement
> Components: translator
> Affects Versions: 3.6.6
> Reporter: Stephen Mallette
> Assignee: Stephen Mallette
> Priority: Major
>
> {{Translator}} infrastructure uses bytecode and reflection which has a number
> of technical imperfections and exemptions for it to work properly. Switching
> to the grammar for translation simplifies the code, removes friction and
> complexity when generating GLV tests, and should perform better. The focus
> for this issue is the Java series of translators which are relied on quite
> heavily.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)