[7/7] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2b4c993d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2b4c993d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2b4c993d Branch: refs/heads/tp33 Commit: 2b4c993ddd16a4554858d480103952374897 Parents: 1faf762 88d6f77 Author: Stephen Mallette Authored: Wed Oct 3 16:09:06 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 16:09:06 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../jsr223/GremlinGroovyScriptEngine.java | 11 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- .../groovy/jsr223/GroovyTranslatorTest.java | 215 +-- 6 files changed, 309 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2b4c993d/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2b4c993d/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java -- diff --cc gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java index 03ea883,b96b8b9..7785da6 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java @@@ -222,19 -236,27 +224,20 @@@ public class GremlinGroovyScriptEngine private final ImportGroovyCustomizer importGroovyCustomizer; private final List groovyCustomizers; -private final Set artifactsToUse = new HashSet<>(); private final boolean interpreterModeEnabled; private final long expectedCompilationTime; + private final Translator.ScriptTranslator.TypeTranslator typeTranslator; /** - * Creates a new instance using the {@link DefaultImportCustomizerProvider}. + * There is no need to require type checking infrastructure if type checking is not enabled. */ -public GremlinGroovyScriptEngine() { -this(new Customizer[0]); -} +private final boolean typeCheckingEnabled; /** - * @deprecated As of release 3.0.1, replaced by {@link #GremlinGroovyScriptEngine(CompilerCustomizerProvider...)} + * Creates a new instance using no {@link Customizer}. */ -@Deprecated -public GremlinGroovyScriptEngine(final ImportCustomizerProvider importCustomizerProvider) { -this((CompilerCustomizerProvider) importCustomizerProvider); +public GremlinGroovyScriptEngine() { +this(new Customizer[0]); } public GremlinGroovyScriptEngine(final Customizer... customizers) { @@@ -273,6 -289,58 +276,12 @@@ interpreterModeEnabled = groovyCustomizers.stream() .anyMatch(p -> p.getClass().equals(InterpreterModeGroovyCustomizer.class)); + final Optional translatorCustomizer = listOfCustomizers.stream(). + filter(p -> p instanceof TranslatorCustomizer). + map(p -> (TranslatorCustomizer) p).findFirst(); + typeTranslator = translatorCustomizer.isPresent() ? translatorCustomizer.get().createTypeTranslator() : + Translator.ScriptTranslator.TypeTranslator.identity(); + -// not using the old provider model so set that to empty list so that when createClassLoader is called -// it knows to use groovyCustomizers instead -customizerProviders = Collections.emptyList(); - -createClassLoader(); -} - -/** - * Creates a new instance with the specified {@link CompilerCustomizerProvider} objects. - * - * @deprecated As of release 3.2.4, replaced by {@link #GremlinGroovyScriptEngine(Customizer...)}. - */ -@Deprecated -public GremlinGroovyScriptEngine(final CompilerCustomizerProvider... compilerCustomizerProviders) { -final List providers = Arrays.asList(compilerCustomizerProviders); - -GremlinLoader.load(); - -importCustomizerProvider = providers.stream() -.filter(p -> p instanceof ImportCustomizerProvider) -.map(p -> (ImportCustomizerProvider) p) -.findFirst().orElse(NoImportCustomizerProvider
[7/7] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/65820569 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/65820569 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/65820569 Branch: refs/heads/tp33 Commit: 65820569f9eb47f8435699d2308bbedc94306b7b Parents: a8931d5 6a6959a Author: Stephen Mallette Authored: Wed Aug 22 16:17:23 2018 -0400 Committer: Stephen Mallette Committed: Wed Aug 22 16:17:23 2018 -0400 -- --
[7/7] tinkerpop git commit: Merge branch 'tp32' into tp33
Merge branch 'tp32' into tp33 Conflicts: gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0c6459d9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0c6459d9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0c6459d9 Branch: refs/heads/tp33 Commit: 0c6459d992f7c643e433e3482d676c7096288438 Parents: 9bd4d7f 1ea01ad Author: Stephen Mallette Authored: Wed Mar 14 08:14:54 2018 -0400 Committer: Stephen Mallette Committed: Wed Mar 14 08:14:54 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../jsr223/GremlinJythonScriptEngine.java | 7 +-- .../gremlin/python/jsr223/JythonTranslator.java | 28 + .../gremlin/python/jsr223/PythonTranslator.java | 35 ++- .../python/jsr223/JythonTranslatorTest.java | 63 5 files changed, 89 insertions(+), 45 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0c6459d9/CHANGELOG.asciidoc -- diff --cc CHANGELOG.asciidoc index bbae529,94ee24f..a5aac3d --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@@ -283,9 -32,9 +283,10 @@@ image::https://raw.githubusercontent.co * Bumped to Jackson 2.9.4. * Improved performance of `JavaTranslator` by caching reflected methods required for traversal construction. * Added `idleConnectionTimeout` and `keepAliveInterval` to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients. + * Fixed a bug where lambdas in `gremlin-python` would trigger a failure if steps using python-only symbols were present (such as `as_()`). * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits. * Delayed setting of the request identifier until `RequestMessage` construction by the builder. +* `ReferenceElement` avoids `UnsupportedOperationException` handling in construction thus improving performance. * Improved error messaging for failed serialization and deserialization of request/response messages. * Fixed handling of `Direction.BOTH` in `Messenger` implementations to pass the message to the opposite side of the `StarGraph`. * Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0c6459d9/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0c6459d9/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java -- diff --cc gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java index 568ca03,d8c73f0..b453cd7 --- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java +++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java @@@ -107,14 -110,15 +108,14 @@@ public class PythonTranslator implement for (final Bytecode.Instruction instruction : bytecode.getInstructions()) { final String methodName = instruction.getOperator(); final Object[] arguments = instruction.getArguments(); -if (IS_TESTING && - instruction.getOperator().equals(TraversalSource.Symbols.withStrategies) && - instruction.getArguments()[0].toString().contains("TranslationStrategy")) -continue; -else if (0 == arguments.length) +if (0 == arguments.length) - traversalScript.append(".").append(SymbolHelper.toPython(methodName)).append("()"); - else if (methodName.equals("range") && 2 == arguments.length && ((Number) arguments[0]).intValue() != 0) { + traversalScript.append(".").append(resolveSymbol(methodName)).append("()"); + else if (methodName.equals("range") && 2 == arguments.length) - traversalScript.append("[").append(arguments[0]).append(":").append(arguments[1]).append("]"); +if (((Number) arguments[0]).longValue() + 1 == ((Number) arguments[1]).longValue()) + traversalScript.append("[").append(arguments[0]).append("]"); +else + traversalScript.append("[").append(arguments[0]).append(":").append(arguments[1]).append("]"); - } else if (methodName.equals("limit") && 1 == arguments.length) + else if (me