[3/5] tinkerpop git commit: TINKERPOP-2040 Provide improved type handling for GroovyTranslator
TINKERPOP-2040 Provide improved type handling for GroovyTranslator Refactored testing and added support for UUID, Date, Timestamp as well as a method to override standard type handling. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/774371dc Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/774371dc Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/774371dc Branch: refs/heads/tp32 Commit: 774371dc38d2d73be142eaa69c958226ac660892 Parents: 0403156 Author: Stephen Mallette Authored: Thu Sep 20 11:53:07 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/process/traversal/Translator.java | 34 .../groovy/jsr223/GroovyTranslatorTest.java | 162 +++ .../gremlin/groovy/jsr223/GroovyTranslator.java | 32 +++- 3 files changed, 195 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java index 7e97fb3..0346092 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java @@ -19,6 +19,8 @@ package org.apache.tinkerpop.gremlin.process.traversal; +import java.util.function.UnaryOperator; + /** * A Translator will translate {@link Bytecode} into another representation. That representation may be a * Java instance via {@link StepTranslator} or a String script in some language via {@link ScriptTranslator}. @@ -55,10 +57,42 @@ public interface Translator { /// +/** + * Translates bytecode to a string representation. + */ public interface ScriptTranslator extends Translator { +/** + * Provides a way to customize and override the standard translation process. A {@link ScriptTranslator} + * implementation can choose to expose a way to accept a {@code TypeTranslator} which will convert an incoming + * object to a different form which will then be normally processed or can return a {@link Handled} object + * with the already translated script. + */ +public interface TypeTranslator extends UnaryOperator { +public static TypeTranslator identity() { +return t -> t; +} +} + +/** + * Contains a completed type translation from the {@link TypeTranslator}. + */ +public class Handled { +private final String translation; + +public Handled(final String translation) { +this.translation = translation; +} + +public String getTranslation() { +return translation; +} +} } +/** + * Translates bytecode to actual steps. + */ public interface StepTranslator> extends Translator { } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 942f1a5..686c7bd 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; @@ -32,47 +33,56 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.Transl import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; +import
[1/5] tinkerpop git commit: TINKERPOP-2040 Updated changelog
Repository: tinkerpop Updated Branches: refs/heads/tp32 fcbce509f -> 88d6f7786 TINKERPOP-2040 Updated changelog Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/92c74c3d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/92c74c3d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/92c74c3d Branch: refs/heads/tp32 Commit: 92c74c3d7ffc25b234187ef2459f8d3d529ac8db Parents: e5c2e9c Author: Stephen Mallette Authored: Mon Oct 1 09:12:30 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- CHANGELOG.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/92c74c3d/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 6d9770f..9160d09 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[2/5] tinkerpop git commit: TINKERPOP-2040 Hooked up Customizer for TypeTranslator
TINKERPOP-2040 Hooked up Customizer for TypeTranslator Enables the Groovy GremlinScriptEngine to use custom TypeTranslators Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e5c2e9cd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e5c2e9cd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e5c2e9cd Branch: refs/heads/tp32 Commit: e5c2e9cdc18751e755a21add02a75261c169cf32 Parents: 67e2ee8 Author: Stephen Mallette Authored: Tue Sep 25 17:29:49 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../groovy/jsr223/GroovyTranslatorTest.java | 23 +++- .../jsr223/GremlinGroovyScriptEngine.java | 15 ++-- .../gremlin/groovy/jsr223/GroovyTranslator.java | 8 ++--- 4 files changed, 76 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java new file mode 100644 index 000..4468255 --- /dev/null +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java @@ -0,0 +1,38 @@ +/* + * 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 language governing permissions and limitations + * under the License. + */ +package org.apache.tinkerpop.gremlin.jsr223; + +import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; + +/** + * Provides a way to customize and override {@link Bytecode} to script translation. Not all {@link GremlinScriptEngine} + * will support this capability as translation is optional. + * + * @author Stephen Mallette (http://stephen.genoprime.com) + */ +public interface TranslatorCustomizer extends Customizer { + +/** + * Construct a {@link Translator.ScriptTranslator.TypeTranslator} that will be used by a + * {@link Translator.ScriptTranslator} instance within the {@link GremlinScriptEngine} to translate + * {@link Bytecode} to a script. + */ +public Translator.ScriptTranslator.TypeTranslator createTypeTranslator(); +} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index c224642..1622d3d 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.jsr223.TranslatorCustomizer; import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.Scope; @@ -59,9 +60,11 @@ import java.util.List; import java.util.UUID; import java.util.function.Function; +import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; /** @@ -224,7 +227,7 @@ public class GroovyTranslatorTest extends
[2/7] tinkerpop git commit: TINKERPOP-2040 Added more tests to cover more GraphSON types
TINKERPOP-2040 Added more tests to cover more GraphSON types Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/67e2ee85 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/67e2ee85 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/67e2ee85 Branch: refs/heads/tp33 Commit: 67e2ee85dd8048ca21a72889cf8a0218f2add081 Parents: 774371d Author: Stephen Mallette Authored: Tue Sep 25 13:46:38 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../groovy/jsr223/GroovyTranslatorTest.java | 30 .../gremlin/groovy/jsr223/GroovyTranslator.java | 4 +++ 2 files changed, 34 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 686c7bd..c224642 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Order; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; +import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; @@ -31,6 +34,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; +import org.apache.tinkerpop.gremlin.structure.Column; +import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.ElementHelper; @@ -185,6 +190,31 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { } @Test +public void shouldHandleColumn() { +assertTranslation("Column.keys", Column.keys); +} + +@Test +public void shouldHandleDirection() { +assertTranslation("Direction.BOTH", Direction.BOTH); +} + +@Test +public void shouldHandleOrder() { +assertTranslation("Order.decr", Order.decr); +} + +@Test +public void shouldHandlePop() { +assertTranslation("Pop.last", Pop.last); +} + +@Test +public void shouldHandleScope() { +assertTranslation("Scope.local", Scope.local); +} + +@Test public void shouldOverrideDefaultTypeTranslationWithSomethingBonkers() { final String thingToSuffixAllStringsWith = "-why-would-anyone-do-this"; final String script = GroovyTranslator.of("g", x -> x instanceof String ? x + thingToSuffixAllStringsWith : x). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java -- diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java index 1d122c6..9cd7791 100644 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java @@ -22,7 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import groovy.json.StringEscapeUtils; import org.apache.commons.configuration.ConfigurationConverter; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.P; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
[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) -
[5/7] tinkerpop git commit: Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32
Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/fcbce509 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/fcbce509 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/fcbce509 Branch: refs/heads/tp33 Commit: fcbce509fc2957bae74ef585875dd872322a9b21 Parents: b440742 76c9aba Author: Florian Hockmann Authored: Wed Oct 3 12:33:23 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:23 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[4/7] tinkerpop git commit: TINKERPOP-2040 Hooked up Customizer for TypeTranslator
TINKERPOP-2040 Hooked up Customizer for TypeTranslator Enables the Groovy GremlinScriptEngine to use custom TypeTranslators Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e5c2e9cd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e5c2e9cd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e5c2e9cd Branch: refs/heads/tp33 Commit: e5c2e9cdc18751e755a21add02a75261c169cf32 Parents: 67e2ee8 Author: Stephen Mallette Authored: Tue Sep 25 17:29:49 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../groovy/jsr223/GroovyTranslatorTest.java | 23 +++- .../jsr223/GremlinGroovyScriptEngine.java | 15 ++-- .../gremlin/groovy/jsr223/GroovyTranslator.java | 8 ++--- 4 files changed, 76 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java new file mode 100644 index 000..4468255 --- /dev/null +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java @@ -0,0 +1,38 @@ +/* + * 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 language governing permissions and limitations + * under the License. + */ +package org.apache.tinkerpop.gremlin.jsr223; + +import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; + +/** + * Provides a way to customize and override {@link Bytecode} to script translation. Not all {@link GremlinScriptEngine} + * will support this capability as translation is optional. + * + * @author Stephen Mallette (http://stephen.genoprime.com) + */ +public interface TranslatorCustomizer extends Customizer { + +/** + * Construct a {@link Translator.ScriptTranslator.TypeTranslator} that will be used by a + * {@link Translator.ScriptTranslator} instance within the {@link GremlinScriptEngine} to translate + * {@link Bytecode} to a script. + */ +public Translator.ScriptTranslator.TypeTranslator createTypeTranslator(); +} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index c224642..1622d3d 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.jsr223.TranslatorCustomizer; import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.Scope; @@ -59,9 +60,11 @@ import java.util.List; import java.util.UUID; import java.util.function.Function; +import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; /** @@ -224,7 +227,7 @@ public class GroovyTranslatorTest extends
[5/5] tinkerpop git commit: Merge branch 'TINKERPOP-2040' into tp32
Merge branch 'TINKERPOP-2040' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/88d6f778 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/88d6f778 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/88d6f778 Branch: refs/heads/tp32 Commit: 88d6f778694e6c65ddde6fdcc18948327e01914a Parents: fcbce50 92c74c3 Author: Stephen Mallette Authored: Wed Oct 3 15:28:58 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 15:28:58 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../groovy/jsr223/GroovyTranslatorTest.java | 213 --- .../jsr223/GremlinGroovyScriptEngine.java | 15 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- 6 files changed, 301 insertions(+), 35 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/88d6f778/CHANGELOG.asciidoc --
[6/7] tinkerpop git commit: Merge branch 'TINKERPOP-2040' into tp32
Merge branch 'TINKERPOP-2040' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/88d6f778 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/88d6f778 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/88d6f778 Branch: refs/heads/tp33 Commit: 88d6f778694e6c65ddde6fdcc18948327e01914a Parents: fcbce50 92c74c3 Author: Stephen Mallette Authored: Wed Oct 3 15:28:58 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 15:28:58 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../groovy/jsr223/GroovyTranslatorTest.java | 213 --- .../jsr223/GremlinGroovyScriptEngine.java | 15 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- 6 files changed, 301 insertions(+), 35 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/88d6f778/CHANGELOG.asciidoc --
[3/7] tinkerpop git commit: TINKERPOP-2040 Provide improved type handling for GroovyTranslator
TINKERPOP-2040 Provide improved type handling for GroovyTranslator Refactored testing and added support for UUID, Date, Timestamp as well as a method to override standard type handling. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/774371dc Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/774371dc Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/774371dc Branch: refs/heads/tp33 Commit: 774371dc38d2d73be142eaa69c958226ac660892 Parents: 0403156 Author: Stephen Mallette Authored: Thu Sep 20 11:53:07 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/process/traversal/Translator.java | 34 .../groovy/jsr223/GroovyTranslatorTest.java | 162 +++ .../gremlin/groovy/jsr223/GroovyTranslator.java | 32 +++- 3 files changed, 195 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java index 7e97fb3..0346092 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java @@ -19,6 +19,8 @@ package org.apache.tinkerpop.gremlin.process.traversal; +import java.util.function.UnaryOperator; + /** * A Translator will translate {@link Bytecode} into another representation. That representation may be a * Java instance via {@link StepTranslator} or a String script in some language via {@link ScriptTranslator}. @@ -55,10 +57,42 @@ public interface Translator { /// +/** + * Translates bytecode to a string representation. + */ public interface ScriptTranslator extends Translator { +/** + * Provides a way to customize and override the standard translation process. A {@link ScriptTranslator} + * implementation can choose to expose a way to accept a {@code TypeTranslator} which will convert an incoming + * object to a different form which will then be normally processed or can return a {@link Handled} object + * with the already translated script. + */ +public interface TypeTranslator extends UnaryOperator { +public static TypeTranslator identity() { +return t -> t; +} +} + +/** + * Contains a completed type translation from the {@link TypeTranslator}. + */ +public class Handled { +private final String translation; + +public Handled(final String translation) { +this.translation = translation; +} + +public String getTranslation() { +return translation; +} +} } +/** + * Translates bytecode to actual steps. + */ public interface StepTranslator> extends Translator { } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 942f1a5..686c7bd 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; @@ -32,47 +33,56 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.Transl import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; +import
[4/5] tinkerpop git commit: TINKERPOP-2040 Added more tests to cover more GraphSON types
TINKERPOP-2040 Added more tests to cover more GraphSON types Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/67e2ee85 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/67e2ee85 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/67e2ee85 Branch: refs/heads/tp32 Commit: 67e2ee85dd8048ca21a72889cf8a0218f2add081 Parents: 774371d Author: Stephen Mallette Authored: Tue Sep 25 13:46:38 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../groovy/jsr223/GroovyTranslatorTest.java | 30 .../gremlin/groovy/jsr223/GroovyTranslator.java | 4 +++ 2 files changed, 34 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 686c7bd..c224642 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Order; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; +import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; @@ -31,6 +34,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; +import org.apache.tinkerpop.gremlin.structure.Column; +import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.ElementHelper; @@ -185,6 +190,31 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { } @Test +public void shouldHandleColumn() { +assertTranslation("Column.keys", Column.keys); +} + +@Test +public void shouldHandleDirection() { +assertTranslation("Direction.BOTH", Direction.BOTH); +} + +@Test +public void shouldHandleOrder() { +assertTranslation("Order.decr", Order.decr); +} + +@Test +public void shouldHandlePop() { +assertTranslation("Pop.last", Pop.last); +} + +@Test +public void shouldHandleScope() { +assertTranslation("Scope.local", Scope.local); +} + +@Test public void shouldOverrideDefaultTypeTranslationWithSomethingBonkers() { final String thingToSuffixAllStringsWith = "-why-would-anyone-do-this"; final String script = GroovyTranslator.of("g", x -> x instanceof String ? x + thingToSuffixAllStringsWith : x). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java -- diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java index 1d122c6..9cd7791 100644 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java @@ -22,7 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import groovy.json.StringEscapeUtils; import org.apache.commons.configuration.ConfigurationConverter; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.P; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
[1/7] tinkerpop git commit: TINKERPOP-2040 Updated changelog
Repository: tinkerpop Updated Branches: refs/heads/tp33 1faf7629c -> 2b4c993dd TINKERPOP-2040 Updated changelog Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/92c74c3d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/92c74c3d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/92c74c3d Branch: refs/heads/tp33 Commit: 92c74c3d7ffc25b234187ef2459f8d3d529ac8db Parents: e5c2e9c Author: Stephen Mallette Authored: Mon Oct 1 09:12:30 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- CHANGELOG.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/92c74c3d/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 6d9770f..9160d09 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[2/9] tinkerpop git commit: TINKERPOP-2040 Hooked up Customizer for TypeTranslator
TINKERPOP-2040 Hooked up Customizer for TypeTranslator Enables the Groovy GremlinScriptEngine to use custom TypeTranslators Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e5c2e9cd Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e5c2e9cd Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e5c2e9cd Branch: refs/heads/master Commit: e5c2e9cdc18751e755a21add02a75261c169cf32 Parents: 67e2ee8 Author: Stephen Mallette Authored: Tue Sep 25 17:29:49 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../groovy/jsr223/GroovyTranslatorTest.java | 23 +++- .../jsr223/GremlinGroovyScriptEngine.java | 15 ++-- .../gremlin/groovy/jsr223/GroovyTranslator.java | 8 ++--- 4 files changed, 76 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java new file mode 100644 index 000..4468255 --- /dev/null +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java @@ -0,0 +1,38 @@ +/* + * 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 language governing permissions and limitations + * under the License. + */ +package org.apache.tinkerpop.gremlin.jsr223; + +import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; + +/** + * Provides a way to customize and override {@link Bytecode} to script translation. Not all {@link GremlinScriptEngine} + * will support this capability as translation is optional. + * + * @author Stephen Mallette (http://stephen.genoprime.com) + */ +public interface TranslatorCustomizer extends Customizer { + +/** + * Construct a {@link Translator.ScriptTranslator.TypeTranslator} that will be used by a + * {@link Translator.ScriptTranslator} instance within the {@link GremlinScriptEngine} to translate + * {@link Bytecode} to a script. + */ +public Translator.ScriptTranslator.TypeTranslator createTypeTranslator(); +} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5c2e9cd/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index c224642..1622d3d 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.jsr223.TranslatorCustomizer; import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.Scope; @@ -59,9 +60,11 @@ import java.util.List; import java.util.UUID; import java.util.function.Function; +import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; /** @@ -224,7 +227,7 @@ public class GroovyTranslatorTest extends
[5/9] tinkerpop git commit: Merge branch 'tp33' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp33
Merge branch 'tp33' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1faf7629 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1faf7629 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1faf7629 Branch: refs/heads/master Commit: 1faf7629cb7b3882e91a8f437ad23197aba385dc Parents: 8ca2778 650f31f Author: Florian Hockmann Authored: Wed Oct 3 12:33:02 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:02 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[8/9] 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/master 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) -
[7/9] tinkerpop git commit: Merge branch 'TINKERPOP-2040' into tp32
Merge branch 'TINKERPOP-2040' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/88d6f778 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/88d6f778 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/88d6f778 Branch: refs/heads/master Commit: 88d6f778694e6c65ddde6fdcc18948327e01914a Parents: fcbce50 92c74c3 Author: Stephen Mallette Authored: Wed Oct 3 15:28:58 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 15:28:58 2018 -0400 -- CHANGELOG.asciidoc | 2 + .../gremlin/jsr223/TranslatorCustomizer.java| 38 .../gremlin/process/traversal/Translator.java | 34 +++ .../groovy/jsr223/GroovyTranslatorTest.java | 213 --- .../jsr223/GremlinGroovyScriptEngine.java | 15 +- .../gremlin/groovy/jsr223/GroovyTranslator.java | 34 ++- 6 files changed, 301 insertions(+), 35 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/88d6f778/CHANGELOG.asciidoc --
[3/9] tinkerpop git commit: TINKERPOP-2040 Added more tests to cover more GraphSON types
TINKERPOP-2040 Added more tests to cover more GraphSON types Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/67e2ee85 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/67e2ee85 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/67e2ee85 Branch: refs/heads/master Commit: 67e2ee85dd8048ca21a72889cf8a0218f2add081 Parents: 774371d Author: Stephen Mallette Authored: Tue Sep 25 13:46:38 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../groovy/jsr223/GroovyTranslatorTest.java | 30 .../gremlin/groovy/jsr223/GroovyTranslator.java | 4 +++ 2 files changed, 34 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 686c7bd..c224642 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Order; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; +import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; @@ -31,6 +34,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; +import org.apache.tinkerpop.gremlin.structure.Column; +import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.util.ElementHelper; @@ -185,6 +190,31 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { } @Test +public void shouldHandleColumn() { +assertTranslation("Column.keys", Column.keys); +} + +@Test +public void shouldHandleDirection() { +assertTranslation("Direction.BOTH", Direction.BOTH); +} + +@Test +public void shouldHandleOrder() { +assertTranslation("Order.decr", Order.decr); +} + +@Test +public void shouldHandlePop() { +assertTranslation("Pop.last", Pop.last); +} + +@Test +public void shouldHandleScope() { +assertTranslation("Scope.local", Scope.local); +} + +@Test public void shouldOverrideDefaultTypeTranslationWithSomethingBonkers() { final String thingToSuffixAllStringsWith = "-why-would-anyone-do-this"; final String script = GroovyTranslator.of("g", x -> x instanceof String ? x + thingToSuffixAllStringsWith : x). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67e2ee85/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java -- diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java index 1d122c6..9cd7791 100644 --- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java +++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslator.java @@ -22,7 +22,9 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import groovy.json.StringEscapeUtils; import org.apache.commons.configuration.ConfigurationConverter; import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; +import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.P; +import org.apache.tinkerpop.gremlin.process.traversal.Pop; import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
[1/9] tinkerpop git commit: TINKERPOP-2040 Updated changelog
Repository: tinkerpop Updated Branches: refs/heads/master 21d2444c6 -> 2ae8c5bec TINKERPOP-2040 Updated changelog Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/92c74c3d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/92c74c3d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/92c74c3d Branch: refs/heads/master Commit: 92c74c3d7ffc25b234187ef2459f8d3d529ac8db Parents: e5c2e9c Author: Stephen Mallette Authored: Mon Oct 1 09:12:30 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- CHANGELOG.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/92c74c3d/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 6d9770f..9160d09 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. * Improved escaping of special characters in strings passed to the `GroovyTranslator`. +* Improved ability of `GroovyTranslator` to handle more types supported by GraphSON. +* Improved ability of `GroovyTranslator` to handle custom types. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[9/9] tinkerpop git commit: Merge branch 'tp33'
Merge branch 'tp33' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2ae8c5be Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2ae8c5be Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2ae8c5be Branch: refs/heads/master Commit: 2ae8c5becc4318e45d6a48d32ea5e8f3eed451e5 Parents: 21d2444 2b4c993 Author: Stephen Mallette Authored: Wed Oct 3 16:09:48 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 16:09:48 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/2ae8c5be/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ae8c5be/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java --
[6/9] tinkerpop git commit: Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32
Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/fcbce509 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/fcbce509 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/fcbce509 Branch: refs/heads/master Commit: fcbce509fc2957bae74ef585875dd872322a9b21 Parents: b440742 76c9aba Author: Florian Hockmann Authored: Wed Oct 3 12:33:23 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:23 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[4/9] tinkerpop git commit: TINKERPOP-2040 Provide improved type handling for GroovyTranslator
TINKERPOP-2040 Provide improved type handling for GroovyTranslator Refactored testing and added support for UUID, Date, Timestamp as well as a method to override standard type handling. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/774371dc Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/774371dc Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/774371dc Branch: refs/heads/master Commit: 774371dc38d2d73be142eaa69c958226ac660892 Parents: 0403156 Author: Stephen Mallette Authored: Thu Sep 20 11:53:07 2018 -0400 Committer: Stephen Mallette Committed: Mon Oct 1 16:18:28 2018 -0400 -- .../gremlin/process/traversal/Translator.java | 34 .../groovy/jsr223/GroovyTranslatorTest.java | 162 +++ .../gremlin/groovy/jsr223/GroovyTranslator.java | 32 +++- 3 files changed, 195 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java index 7e97fb3..0346092 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java @@ -19,6 +19,8 @@ package org.apache.tinkerpop.gremlin.process.traversal; +import java.util.function.UnaryOperator; + /** * A Translator will translate {@link Bytecode} into another representation. That representation may be a * Java instance via {@link StepTranslator} or a String script in some language via {@link ScriptTranslator}. @@ -55,10 +57,42 @@ public interface Translator { /// +/** + * Translates bytecode to a string representation. + */ public interface ScriptTranslator extends Translator { +/** + * Provides a way to customize and override the standard translation process. A {@link ScriptTranslator} + * implementation can choose to expose a way to accept a {@code TypeTranslator} which will convert an incoming + * object to a different form which will then be normally processed or can return a {@link Handled} object + * with the already translated script. + */ +public interface TypeTranslator extends UnaryOperator { +public static TypeTranslator identity() { +return t -> t; +} +} + +/** + * Contains a completed type translation from the {@link TypeTranslator}. + */ +public class Handled { +private final String translation; + +public Handled(final String translation) { +this.translation = translation; +} + +public String getTranslation() { +return translation; +} +} } +/** + * Translates bytecode to actual steps. + */ public interface StepTranslator> extends Translator { } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/774371dc/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 942f1a5..686c7bd 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -22,6 +22,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223; import org.apache.commons.configuration.MapConfiguration; import org.apache.tinkerpop.gremlin.AbstractGremlinTest; import org.apache.tinkerpop.gremlin.LoadGraphWith; +import org.apache.tinkerpop.gremlin.process.traversal.Translator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; @@ -32,47 +33,56 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.Transl import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; +import
tinkerpop git commit: TINKERPOP-2041 Added IO tests for TextP
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2041 a2211c2c5 -> 3aad0b342 TINKERPOP-2041 Added IO tests for TextP Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/3aad0b34 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/3aad0b34 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/3aad0b34 Branch: refs/heads/TINKERPOP-2041 Commit: 3aad0b342116f58bc20940e37612d70e7fc7dfc0 Parents: a2211c2 Author: Stephen Mallette Authored: Wed Oct 3 15:01:40 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 15:01:40 2018 -0400 -- docs/src/dev/io/graphson.asciidoc | 26 .../scripts/generate-graphson-resources.groovy | 12 - .../tinkerpop/gremlin/structure/io/Model.java | 9 +++ .../io/AbstractTypedCompatibilityTest.java | 14 +++ .../io/graphson/_3_4_0/textp-v2d0-partial.json | 7 ++ .../io/graphson/_3_4_0/textp-v3d0.json | 7 ++ .../structure/io/gryo/_3_4_0/textp-v1d0.kryo| 1 + .../structure/io/gryo/_3_4_0/textp-v3d0.kryo| 1 + 8 files changed, 71 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aad0b34/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index d140a2f..1c9081c 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -3014,6 +3014,19 @@ The following `Bytecode` example represents the traversal of `g.V().hasLabel('pe } + TextP + +[source,json] + +{ + "@type" : "g:TextP", + "@value" : { +"predicate" : "containing", +"value" : "ark" + } +} + + TraversalMetrics [source,json] @@ -5392,6 +5405,19 @@ Please see <<_p,P>> for additional information on `within`. } + TextP + +[source,json] + +{ + "@type" : "g:TextP", + "@value" : { +"predicate" : "containing", +"value" : "ark" + } +} + + TraversalMetrics [source,json] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aad0b34/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy -- diff --git a/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy index 55b4fa6..03112ed 100644 --- a/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy +++ b/gremlin-tools/gremlin-io-test/scripts/generate-graphson-resources.groovy @@ -59,19 +59,19 @@ toJson = { o, type, mapper, comment = "", suffix = "" -> writeSupportedV1Objects = { writer, mapper -> writer.write("=== Graph Structure\n\n") -model.entries("Graph Structure").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { +model.entries("Graph Structure").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } writer.write("\n") writer.write("=== RequestMessage\n\n") - model.entries("RequestMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { + model.entries("RequestMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } writer.write("\n") writer.write("=== ResponseMessage\n\n") - model.entries("ResponseMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_3_0)}.each { + model.entries("ResponseMessage").findAll{it.isCompatibleWith(GraphSONCompatibility.V1D0_3_4_0)}.each { writer.write(toJsonV1d0NoTypes(it.getObject(), it.getTitle(), mapper, it.getDescription())) } } @@ -156,7 +156,7 @@ mapper = GraphSONMapper.build(). file = new File("${projectBuildDir}/dev-docs/out-graphson-2d0-partial.txt") if (file.exists()) file.delete() -file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0PartialTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_PARTIAL_3_3_1)}, v2ExtendedDescription) } +file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0PartialTypes, {it.isCompatibleWith(GraphSONCompatibility.V2D0_PARTIAL_3_4_0)}, v2ExtendedDescription) } mapper = GraphSONMapper.build(). addRegistry(TinkerIoRegistryV2d0.instance()). @@ -167,7 +167,7 @@ mapper = GraphSONMapper.build(). file = new File("${projectBuildDir}/dev-docs/out-graphson-2d0-no-type.txt") if (file.exists()) file.delete() -file.withWriter { writeSupportedV2V3Objects(it, mapper, toJsonV2d0NoTypes,
[5/8] 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/8ca27786 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8ca27786 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8ca27786 Branch: refs/heads/tp33 Commit: 8ca277863861699ca2fa7913735687f6e65b486b Parents: c10bde3 b440742 Author: Florian Hockmann Authored: Wed Oct 3 12:31:08 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:31:08 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 7 -- .../src/Gremlin.Net/Driver/GremlinClient.cs | 11 +++-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 51 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index 279c708,f63e20b..b79f0e6 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@@ -36,21 -37,21 +37,22 @@@ namespace Gremlin.Net.Drive { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; -private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); +private readonly JsonMessageSerializer _messageSerializer; private readonly Uri _uri; - private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); + private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, - GraphSONWriter graphSONWriter, string mimeType) -GraphSONWriter graphSONWriter, Action webSocketConfiguration) ++GraphSONWriter graphSONWriter, string mimeType, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_messageSerializer = new JsonMessageSerializer(mimeType); + _webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index e2ff5b7,8b14ed9..7a6c2d5 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@@ -30,22 -31,22 +31,24 @@@ namespace Gremlin.Net.Drive { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; + private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; +private readonly string _mimeType; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, - GraphSONWriter graphSONWriter, string mimeType) -GraphSONWriter graphSONWriter, Action webSocketConfiguration) ++GraphSONWriter graphSONWriter, string mimeType, Action webSocketConfiguration) { _gremlinServer = gremlinServer; -_graphSONReader = graphSONReader; -_graphSONWriter = graphSONWriter; +_mimeType = mimeType; +_graphSONReader = graphSONReader ?? throw new ArgumentNullException(nameof(graphSONReader)); +_graphSONWriter = graphSONWriter ?? throw new ArgumentNullException(nameof(graphSONWriter)); + _webSocketConfiguration = webSocketConfiguration; } public Connection CreateConnection() { return new Connection(_gremlinServer.Uri, _gremlinServer.Username, _gremlinServer.Password, _graphSONReader, - _graphSONWriter, _mimeType); -
[3/8] tinkerpop git commit: Expose WebSocket configuration TINKERPOP-2015
Expose WebSocket configuration TINKERPOP-2015 Users can now provide a delegate to the Gremlin.Net driver that will be used to configure WebSocket connections. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b4407423 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b4407423 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b4407423 Branch: refs/heads/tp33 Commit: b440742393135fdd88d4af18b09ade5f5011133e Parents: e7af98b Author: Florian Hockmann Authored: Sun Sep 9 14:49:03 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:08:14 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 8 +-- .../src/Gremlin.Net/Driver/GremlinClient.cs | 9 +-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 50 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..36a34f2 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Removed conflicting non-indy groovy core dependency * Bumped jython-standalone 2.7.1 +* Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection. * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. * Fixed problem with Gremlin Server sometimes returning an additional message after a failure. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index dbbd375..f63e20b 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@ -23,6 +23,7 @@ using System; using System.Collections.Generic; +using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Gremlin.Net.Driver.Messages; @@ -38,18 +39,19 @@ namespace Gremlin.Net.Driver private readonly GraphSONWriter _graphSONWriter; private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); private readonly Uri _uri; -private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); +private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index 0041a67..8b14ed9 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@ -21,6 +21,8 @@ #endregion +using System; +using System.Net.WebSockets; using Gremlin.Net.Structure.IO.GraphSON; namespace Gremlin.Net.Driver @@ -29,20 +31,22 @@ namespace Gremlin.Net.Driver { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; +private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _gremlinServer = gremlinServer; _graphSONReader = graphSONReader;
[6/8] tinkerpop git commit: Merge branch 'tp33'
Merge branch 'tp33' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/21d2444c Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/21d2444c Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/21d2444c Branch: refs/heads/master Commit: 21d2444c6f404d24ed47d08f03806d73244b5691 Parents: 7ac00a1 8ca2778 Author: Florian Hockmann Authored: Wed Oct 3 12:31:48 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:31:48 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 7 -- .../src/Gremlin.Net/Driver/GremlinClient.cs | 11 +++-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 51 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index 822fc65,b79f0e6..92e0d35 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@@ -51,9 -52,10 +52,10 @@@ namespace Gremlin.Net.Drive _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; _messageSerializer = new JsonMessageSerializer(mimeType); + _webSocketConnection = new WebSocketConnection(webSocketConfiguration); } -public async Task> SubmitAsync(RequestMessage requestMessage) +public async Task> SubmitAsync(RequestMessage requestMessage) { await SendAsync(requestMessage).ConfigureAwait(false); return await ReceiveAsync().ConfigureAwait(false); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/gremlin-dotnet/src/Gremlin.Net/Driver/GremlinClient.cs -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/21d2444c/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/GremlinClientTests.cs --
[8/8] tinkerpop git commit: Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32
Merge branch 'tp32' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/fcbce509 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/fcbce509 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/fcbce509 Branch: refs/heads/tp32 Commit: fcbce509fc2957bae74ef585875dd872322a9b21 Parents: b440742 76c9aba Author: Florian Hockmann Authored: Wed Oct 3 12:33:23 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:23 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[2/8] tinkerpop git commit: Expose WebSocket configuration TINKERPOP-2015
Expose WebSocket configuration TINKERPOP-2015 Users can now provide a delegate to the Gremlin.Net driver that will be used to configure WebSocket connections. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b4407423 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b4407423 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b4407423 Branch: refs/heads/tp32 Commit: b440742393135fdd88d4af18b09ade5f5011133e Parents: e7af98b Author: Florian Hockmann Authored: Sun Sep 9 14:49:03 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:08:14 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 8 +-- .../src/Gremlin.Net/Driver/GremlinClient.cs | 9 +-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 50 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..36a34f2 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Removed conflicting non-indy groovy core dependency * Bumped jython-standalone 2.7.1 +* Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection. * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. * Fixed problem with Gremlin Server sometimes returning an additional message after a failure. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index dbbd375..f63e20b 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@ -23,6 +23,7 @@ using System; using System.Collections.Generic; +using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Gremlin.Net.Driver.Messages; @@ -38,18 +39,19 @@ namespace Gremlin.Net.Driver private readonly GraphSONWriter _graphSONWriter; private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); private readonly Uri _uri; -private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); +private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index 0041a67..8b14ed9 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@ -21,6 +21,8 @@ #endregion +using System; +using System.Net.WebSockets; using Gremlin.Net.Structure.IO.GraphSON; namespace Gremlin.Net.Driver @@ -29,20 +31,22 @@ namespace Gremlin.Net.Driver { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; +private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _gremlinServer = gremlinServer; _graphSONReader = graphSONReader;
[1/8] tinkerpop git commit: Expose WebSocket configuration TINKERPOP-2015
Repository: tinkerpop Updated Branches: refs/heads/master 7ac00a13b -> 21d2444c6 refs/heads/tp32 76c9aba94 -> fcbce509f refs/heads/tp33 650f31f1b -> 1faf7629c Expose WebSocket configuration TINKERPOP-2015 Users can now provide a delegate to the Gremlin.Net driver that will be used to configure WebSocket connections. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b4407423 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b4407423 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b4407423 Branch: refs/heads/master Commit: b440742393135fdd88d4af18b09ade5f5011133e Parents: e7af98b Author: Florian Hockmann Authored: Sun Sep 9 14:49:03 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:08:14 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 8 +-- .../src/Gremlin.Net/Driver/GremlinClient.cs | 9 +-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 50 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..36a34f2 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Removed conflicting non-indy groovy core dependency * Bumped jython-standalone 2.7.1 +* Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection. * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. * Fixed problem with Gremlin Server sometimes returning an additional message after a failure. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index dbbd375..f63e20b 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@ -23,6 +23,7 @@ using System; using System.Collections.Generic; +using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Gremlin.Net.Driver.Messages; @@ -38,18 +39,19 @@ namespace Gremlin.Net.Driver private readonly GraphSONWriter _graphSONWriter; private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); private readonly Uri _uri; -private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); +private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index 0041a67..8b14ed9 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@ -21,6 +21,8 @@ #endregion +using System; +using System.Net.WebSockets; using Gremlin.Net.Structure.IO.GraphSON; namespace Gremlin.Net.Driver @@ -29,20 +31,22 @@ namespace Gremlin.Net.Driver { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; +private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +
[7/8] tinkerpop git commit: Merge branch 'tp33' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp33
Merge branch 'tp33' of https://git-wip-us.apache.org/repos/asf/tinkerpop into tp33 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1faf7629 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1faf7629 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1faf7629 Branch: refs/heads/tp33 Commit: 1faf7629cb7b3882e91a8f437ad23197aba385dc Parents: 8ca2778 650f31f Author: Florian Hockmann Authored: Wed Oct 3 12:33:02 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:33:02 2018 +0200 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[4/8] 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/8ca27786 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8ca27786 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8ca27786 Branch: refs/heads/master Commit: 8ca277863861699ca2fa7913735687f6e65b486b Parents: c10bde3 b440742 Author: Florian Hockmann Authored: Wed Oct 3 12:31:08 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:31:08 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 7 -- .../src/Gremlin.Net/Driver/GremlinClient.cs | 11 +++-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 51 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/CHANGELOG.asciidoc -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index 279c708,f63e20b..b79f0e6 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@@ -36,21 -37,21 +37,22 @@@ namespace Gremlin.Net.Drive { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; -private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); +private readonly JsonMessageSerializer _messageSerializer; private readonly Uri _uri; - private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); + private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, - GraphSONWriter graphSONWriter, string mimeType) -GraphSONWriter graphSONWriter, Action webSocketConfiguration) ++GraphSONWriter graphSONWriter, string mimeType, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_messageSerializer = new JsonMessageSerializer(mimeType); + _webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ca27786/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --cc gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index e2ff5b7,8b14ed9..7a6c2d5 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@@ -30,22 -31,22 +31,24 @@@ namespace Gremlin.Net.Drive { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; + private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; +private readonly string _mimeType; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, - GraphSONWriter graphSONWriter, string mimeType) -GraphSONWriter graphSONWriter, Action webSocketConfiguration) ++GraphSONWriter graphSONWriter, string mimeType, Action webSocketConfiguration) { _gremlinServer = gremlinServer; -_graphSONReader = graphSONReader; -_graphSONWriter = graphSONWriter; +_mimeType = mimeType; +_graphSONReader = graphSONReader ?? throw new ArgumentNullException(nameof(graphSONReader)); +_graphSONWriter = graphSONWriter ?? throw new ArgumentNullException(nameof(graphSONWriter)); + _webSocketConfiguration = webSocketConfiguration; } public Connection CreateConnection() { return new Connection(_gremlinServer.Uri, _gremlinServer.Username, _gremlinServer.Password, _graphSONReader, - _graphSONWriter, _mimeType); -
[14/26] tinkerpop git commit: TINKERPOP-2045 removed duplicate non-indy groovy core dep
TINKERPOP-2045 removed duplicate non-indy groovy core dep Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/6e320daa Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6e320daa Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6e320daa Branch: refs/heads/TINKERPOP-2015 Commit: 6e320daa57a9ec9acb19a213f6dd2081e70e2e26 Parents: abfe968 Author: Robert Dale Authored: Tue Sep 25 07:40:50 2018 -0400 Committer: Robert Dale Committed: Tue Sep 25 07:40:50 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-driver/pom.xml | 14 ++ gremlin-groovy/pom.xml | 21 + 3 files changed, 36 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6e320daa/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 6d9770f..e93c1c9 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -23,6 +23,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima [[release-3-2-10]] === TinkerPop 3.2.10 (Release Date: NOT OFFICIALLY RELEASED YET) +* Removed conflicting non-indy groovy core dependency * Bumped jython-standalone 2.7.1 * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6e320daa/gremlin-driver/pom.xml -- diff --git a/gremlin-driver/pom.xml b/gremlin-driver/pom.xml index a7835ab..3f891ba 100644 --- a/gremlin-driver/pom.xml +++ b/gremlin-driver/pom.xml @@ -47,12 +47,26 @@ limitations under the License. groovy-json ${groovy.version} indy + + + +org.codehaus.groovy +groovy + + org.codehaus.groovy groovy-sql ${groovy.version} indy + + + +org.codehaus.groovy +groovy + + org.apache.commons http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6e320daa/gremlin-groovy/pom.xml -- diff --git a/gremlin-groovy/pom.xml b/gremlin-groovy/pom.xml index 3c7a122..9653e93 100644 --- a/gremlin-groovy/pom.xml +++ b/gremlin-groovy/pom.xml @@ -47,18 +47,39 @@ limitations under the License. groovy-groovysh ${groovy.version} indy + + + +org.codehaus.groovy +groovy + + org.codehaus.groovy groovy-json ${groovy.version} indy + + + +org.codehaus.groovy +groovy + + org.codehaus.groovy groovy-jsr223 ${groovy.version} indy + + + +org.codehaus.groovy +groovy + + org.apache.commons
[13/26] tinkerpop git commit: Updated changelog CTR
Updated changelog CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/abfe968c Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/abfe968c Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/abfe968c Branch: refs/heads/TINKERPOP-2015 Commit: abfe968c762199ef5fa6b8f300c9de060ef75a24 Parents: aff2037 Author: Stephen Mallette Authored: Mon Sep 24 16:13:39 2018 -0400 Committer: Stephen Mallette Committed: Mon Sep 24 16:13:39 2018 -0400 -- CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/abfe968c/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 9431d98..6d9770f 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -36,6 +36,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. * Added `Triple` to Gryo 1.0 registrations. +* Improved escaping of special characters in strings passed to the `GroovyTranslator`. * Added better internal processing of `Column` in `by(Function)`. * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`.
[16/26] tinkerpop git commit: Merge branch 'TINKERPOP-2035' into tp32
Merge branch 'TINKERPOP-2035' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d516c682 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d516c682 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d516c682 Branch: refs/heads/TINKERPOP-2015 Commit: d516c68289c666a1b8f11dc3fe9dd1e75315596f Parents: abfe968 54ad5f4 Author: Jorge Bay Gondra Authored: Thu Sep 27 12:59:31 2018 +0200 Committer: Jorge Bay Gondra Committed: Thu Sep 27 12:59:31 2018 +0200 -- .../gremlin-javascript/lib/driver/driver-remote-connection.js | 2 ++ 1 file changed, 2 insertions(+) --
[17/26] tinkerpop git commit: Updated nuget URL CTR
Updated nuget URL CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/07ab226c Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/07ab226c Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/07ab226c Branch: refs/heads/TINKERPOP-2015 Commit: 07ab226ce2b7a5357a8367ccefadf959c2c07ec7 Parents: d516c68 Author: Stephen Mallette Authored: Thu Sep 27 11:01:28 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 11:01:45 2018 -0400 -- gremlin-dotnet/src/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/07ab226c/gremlin-dotnet/src/pom.xml -- diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml index 664522a..aca3875 100644 --- a/gremlin-dotnet/src/pom.xml +++ b/gremlin-dotnet/src/pom.xml @@ -186,10 +186,10 @@ limitations under the License. the "ConfigFile" option to nuget. --> -https://www.nuget.org/api/v2/package -ConfigFile ${user.home}/.config/NuGet/NuGet.Config"/> +https://api.nuget.org/v3/index.json -ConfigFile ${user.home}/.config/NuGet/NuGet.Config"/> -https://www.nuget.org/api/v2/package -ConfigFile ${user.home}/.config/NuGet/NuGet.Config"/> +https://api.nuget.org/v3/index.json -ConfigFile ${user.home}/.config/NuGet/NuGet.Config"/>
[12/26] tinkerpop git commit: Apply StringEscapeUtils in GroovyTranslator#convertToString(String)
Apply StringEscapeUtils in GroovyTranslator#convertToString(String) Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/aff2037b Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/aff2037b Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/aff2037b Branch: refs/heads/TINKERPOP-2015 Commit: aff2037b5973c62c0292ab3065761e923899aa57 Parents: 207c660 Author: Justin Chu <15710241+justinch...@users.noreply.github.com> Authored: Fri Sep 21 15:12:26 2018 -0400 Committer: Justin Chu <15710241+justinch...@users.noreply.github.com> Committed: Mon Sep 24 11:22:52 2018 -0400 -- .../groovy/jsr223/GroovyTranslatorTest.java | 69 .../gremlin/groovy/jsr223/GroovyTranslator.java | 4 +- 2 files changed, 72 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aff2037b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java -- diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java index 56f9699..942f1a5 100644 --- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java +++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GroovyTranslatorTest.java @@ -30,7 +30,10 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategy; import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; +import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge; +import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex; import org.apache.tinkerpop.gremlin.util.function.Lambda; import org.junit.Test; @@ -116,6 +119,17 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { assertEquals(7, sacks.get(5).intValue()); // assertEquals(24, t.getSideEffects().get("lengthSum").intValue()); + +final String script = GroovyTranslator.of("g").translate(t.getBytecode()); +assertEquals("g.withSideEffect(\"lengthSum\",(int) 0).withSack((int) 1)" + +".V()" + +".filter({it.get().label().equals('person')})" + +".flatMap({it.get().vertices(Direction.OUT)})" + +".map({it.get().value('name').length()})" + +".sideEffect({ x -> x.sideEffects(\"lengthSum\", x.sideEffects('lengthSum') + x.get()) })" + +".order().by({a,b -> a <=> b})" + +".sack({ a,b -> a + b })", +script); } @Test @@ -141,4 +155,59 @@ public class GroovyTranslatorTest extends AbstractGremlinTest { public void shouldHaveValidToString() { assertEquals("translator[h:gremlin-groovy]", GroovyTranslator.of("h").toString()); } + +@Test +public void shouldEscapeStrings() { +final GraphTraversalSource g = graph.traversal(); +final String script = GroovyTranslator.of("g").translate(g.addV("customer") +.property("customer_id", 501L) +.property("name", "Foo\u0020Bar") +.property("age", 25) +.property("special", "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?") +.asAdmin().getBytecode()); + +assertEquals("g.addV(\"customer\")" + +".property(\"customer_id\",501L)" + +".property(\"name\",\"Foo Bar\")" + +".property(\"age\",(int) 25)" + + ".property(\"special\",\"\"\"`~!@#\\$%^&*()-_=+[{]}|;:'\\\",<.>/?\"\"\")", +script); +} + +@Test +public void shouldHandleVertexAndEdge() { +final GraphTraversalSource g = graph.traversal(); + +final Object id1 = "customer:10:foo\u0020bar\u0020\u0024100#90"; // customer:10:foo bar $100#90 +final Vertex vertex1 = DetachedVertex.build().setLabel("customer").setId(id1) +.create(); +final String script1 = GroovyTranslator.of("g").translate(g.V(vertex1).asAdmin().getBytecode()); +assertEquals("g.V(new org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex(" + +"\"customer:10:foo
[18/26] tinkerpop git commit: Remove release artifact SHA1 checksums and generate SHA512 checksums instead.
Remove release artifact SHA1 checksums and generate SHA512 checksums instead. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0278c157 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0278c157 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0278c157 Branch: refs/heads/TINKERPOP-2015 Commit: 0278c1576c165ec1217eb616995e9280509c8e67 Parents: 07ab226 Author: Daniel Kuppitz Authored: Mon Sep 24 08:47:27 2018 -0700 Committer: Daniel Kuppitz Committed: Thu Sep 27 08:05:18 2018 -0700 -- bin/validate-distribution.sh| 3 ++- docs/src/dev/developer/release.asciidoc | 3 ++- pom.xml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0278c157/bin/validate-distribution.sh -- diff --git a/bin/validate-distribution.sh b/bin/validate-distribution.sh index 3622905..1fff5b5 100755 --- a/bin/validate-distribution.sh +++ b/bin/validate-distribution.sh @@ -85,11 +85,12 @@ fi echo -n "* downloading ${COMPONENT} (${ZIP_FILENAME})... " curl -Lsf ${URL} -o ${ZIP_FILENAME} || { echo "Failed to download ${COMPONENT}" ; exit 1; } -for ext in "asc" "sha1" +for ext in "asc" "sha512" do curl -Lsf ${URL}.${ext} -o ${ZIP_FILENAME}.${ext} || { echo "Failed to download ${COMPONENT} (${ext})" ; exit 1 ; } done curl -Lsf ${URL}.md5 -o ${ZIP_FILENAME}.md5 && { echo "MD5 checksums should not be released (${ZIP_FILENAME}.md5)" ; exit 1 ; } +curl -Lsf ${URL}.sha1 -o ${ZIP_FILENAME}.sha1 && { echo "SHA1 checksums should not be released (${ZIP_FILENAME}.sha1)" ; exit 1 ; } echo "OK" # validate zip file http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0278c157/docs/src/dev/developer/release.asciidoc -- diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc index eeb4679..f48e20c 100644 --- a/docs/src/dev/developer/release.asciidoc +++ b/docs/src/dev/developer/release.asciidoc @@ -215,8 +215,9 @@ for generating javadoc and without that the binary distributions won't contain t .. `cp ~/.m2/repository/org/apache/tinkerpop/gremlin-console/xx.yy.zz/gremlin-console-xx.yy.zz-distribution.zip* dev/xx.yy.zz` .. `cp ~/.m2/repository/org/apache/tinkerpop/gremlin-server/xx.yy.zz/gremlin-server-xx.yy.zz-distribution.zip* dev/xx.yy.zz` .. `cp ~/.m2/repository/org/apache/tinkerpop/tinkerpop/xx.yy.zz/tinkerpop-xx.yy.zz-source-release.zip* dev/xx.yy.zz` -.. `rm -f dev/*.md5` .. `cd dev/xx.yy.zz` +.. `rm -f *.md5` +.. `for file in *.sha1 ; do artifact=$(basename ${file} .sha1); sha512sum $artifact | awk '{print $1}' > ${artifact}.sha512; rm ${file}; done` .. pass:[ls * | xargs -n1 -I {} echo "mv apache-tinkerpop-{} {}" | sed -e 's/distribution/bin/' -e 's/source-release/src/' -e 's/tinkerpop-tinkerpop/tinkerpop/' -e s'/^\(.*\) \(.*\) \(.*\)$/\1 \3 \2/' | /bin/bash] .. `cd ..; svn add xx.yy.zz/; svn ci -m "TinkerPop xx.yy.zz release"` . Execute `bin/validate-distribution.sh` and any other relevant testing. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0278c157/pom.xml -- diff --git a/pom.xml b/pom.xml index d13f60e..6b254a2 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ limitations under the License. org.apache apache -19 +21 org.apache.tinkerpop tinkerpop
[19/26] tinkerpop git commit: Force travis to wait longer for output from spark tests before killing CTR
Force travis to wait longer for output from spark tests before killing CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/05c7dafc Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/05c7dafc Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/05c7dafc Branch: refs/heads/TINKERPOP-2015 Commit: 05c7dafc7d55d5c4927bb967f56358f81f7926ef Parents: 07ab226 Author: Stephen Mallette Authored: Thu Sep 27 14:46:21 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 14:47:21 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05c7dafc/.travis.yml -- diff --git a/.travis.yml b/.travis.yml index 8ca1346..1cedfa0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,4 +30,4 @@ jobs: - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet" - script: "touch gremlin-python/.glv && mvn clean install -q -DskipTests && mvn verify -pl gremlin-python" - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript" -- script: "mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false" +- script: "travis_wait 30 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"
[15/26] tinkerpop git commit: Pass custom headers to the websocket connection
Pass custom headers to the websocket connection In order to authorize to the gremlin server (in this case AWS Neptune) i need to pass custom headers for authorization to the service. the PR will allow to send any headers (like an API key or signature) and pass them to the Websocket function. While there can be many use cases for this, in my case i pass the Authorization & x-amz-date required for Signature V4 (IAM) authentication. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/54ad5f45 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/54ad5f45 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/54ad5f45 Branch: refs/heads/TINKERPOP-2015 Commit: 54ad5f45e73bae05b957b89539cb6a61d557f445 Parents: abfe968 Author: Lior Pollack Authored: Mon Sep 10 22:16:38 2018 +0300 Committer: Jorge Bay Gondra Committed: Thu Sep 27 12:58:44 2018 +0200 -- .../gremlin-javascript/lib/driver/driver-remote-connection.js | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/54ad5f45/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js -- diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js index 15836ba..ca059cf 100644 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js @@ -49,12 +49,14 @@ class DriverRemoteConnection extends RemoteConnection { * @param {String} [options.traversalSource] The traversal source. Defaults to: 'g'. * @param {GraphSONWriter} [options.writer] The writer to use. * @param {Authenticator} [options.authenticator] The authentication handler to use. + * @param {Object} [options.headers] An associative array containing the additional header key/values for the initial request. * @constructor */ constructor(url, options) { super(url); options = options || {}; this._ws = new WebSocket(url, { + headers: options.headers, ca: options.ca, cert: options.cert, pfx: options.pfx,
[5/5] tinkerpop git commit: Merge branch 'tp33'
Merge branch 'tp33' Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7ac00a13 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7ac00a13 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7ac00a13 Branch: refs/heads/master Commit: 7ac00a13b4bfce60bc62e5c8d952681027ffebed Parents: b788201 650f31f Author: Stephen Mallette Authored: Wed Oct 3 06:13:04 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:13:04 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7ac00a13/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java --
[1/5] tinkerpop git commit: optmizes collection copy with Collections addAll
Repository: tinkerpop Updated Branches: refs/heads/master b788201bf -> 7ac00a13b optmizes collection copy with Collections addAll Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0e34073d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0e34073d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0e34073d Branch: refs/heads/master Commit: 0e34073d8a756a52eda571bd9ddac0b94b42d54a Parents: ca3a343 Author: Otavio Santana Authored: Wed Aug 22 16:45:19 2018 -0300 Committer: Otavio Santana Committed: Wed Aug 22 16:54:16 2018 -0300 -- .../traversal/dsl/graph/GraphTraversal.java| 17 + .../step/sideEffect/SideEffectCapStep.java | 4 +--- 2 files changed, 6 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e34073d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java -- 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 1dccead..5ba7823 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 @@ -149,6 +149,7 @@ import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -1484,16 +1485,12 @@ public interface GraphTraversal extends Traversal { else { final List ids = new ArrayList<>(); if (id instanceof Object[]) { -for (final Object i : (Object[]) id) { -ids.add(i); -} +Collections.addAll(ids, (Object[]) id); } else ids.add(id); for (final Object i : otherIds) { if (i.getClass().isArray()) { -for (final Object ii : (Object[]) i) { -ids.add(ii); -} +Collections.addAll(ids, (Object[]) i); } else ids.add(i); } @@ -1559,16 +1556,12 @@ public interface GraphTraversal extends Traversal { else { final List values = new ArrayList<>(); if (value instanceof Object[]) { -for (final Object v : (Object[]) value) { -values.add(v); -} +Collections.addAll(values, (Object[]) value); } else values.add(value); for (final Object v : otherValues) { if (v instanceof Object[]) { -for (final Object vv : (Object[]) v) { -values.add(vv); -} +Collections.addAll(values, (Object[]) v); } else values.add(v); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e34073d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java index 5ac5b27..337dbe4 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java @@ -46,9 +46,7 @@ public final class SideEffectCapStep extends SupplyingBarrierStep { super(traversal); this.sideEffectKeys = new ArrayList<>(1 + sideEffectKeys.length); this.sideEffectKeys.add(sideEffectKey); -for (final String key : sideEffectKeys) { -this.sideEffectKeys.add(key); -} +Collections.addAll(this.sideEffectKeys, sideEffectKeys); } @Override
[1/4] tinkerpop git commit: optmizes collection copy with Collections addAll
Repository: tinkerpop Updated Branches: refs/heads/tp33 c10bde339 -> 650f31f1b optmizes collection copy with Collections addAll Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0e34073d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0e34073d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0e34073d Branch: refs/heads/tp33 Commit: 0e34073d8a756a52eda571bd9ddac0b94b42d54a Parents: ca3a343 Author: Otavio Santana Authored: Wed Aug 22 16:45:19 2018 -0300 Committer: Otavio Santana Committed: Wed Aug 22 16:54:16 2018 -0300 -- .../traversal/dsl/graph/GraphTraversal.java| 17 + .../step/sideEffect/SideEffectCapStep.java | 4 +--- 2 files changed, 6 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e34073d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java -- 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 1dccead..5ba7823 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 @@ -149,6 +149,7 @@ import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -1484,16 +1485,12 @@ public interface GraphTraversal extends Traversal { else { final List ids = new ArrayList<>(); if (id instanceof Object[]) { -for (final Object i : (Object[]) id) { -ids.add(i); -} +Collections.addAll(ids, (Object[]) id); } else ids.add(id); for (final Object i : otherIds) { if (i.getClass().isArray()) { -for (final Object ii : (Object[]) i) { -ids.add(ii); -} +Collections.addAll(ids, (Object[]) i); } else ids.add(i); } @@ -1559,16 +1556,12 @@ public interface GraphTraversal extends Traversal { else { final List values = new ArrayList<>(); if (value instanceof Object[]) { -for (final Object v : (Object[]) value) { -values.add(v); -} +Collections.addAll(values, (Object[]) value); } else values.add(value); for (final Object v : otherValues) { if (v instanceof Object[]) { -for (final Object vv : (Object[]) v) { -values.add(vv); -} +Collections.addAll(values, (Object[]) v); } else values.add(v); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e34073d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java index 5ac5b27..337dbe4 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectCapStep.java @@ -46,9 +46,7 @@ public final class SideEffectCapStep extends SupplyingBarrierStep { super(traversal); this.sideEffectKeys = new ArrayList<>(1 + sideEffectKeys.length); this.sideEffectKeys.add(sideEffectKey); -for (final String key : sideEffectKeys) { -this.sideEffectKeys.add(key); -} +Collections.addAll(this.sideEffectKeys, sideEffectKeys); } @Override
[2/3] tinkerpop git commit: fixes traversal
fixes traversal Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b34bf4da Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b34bf4da Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b34bf4da Branch: refs/heads/tp32 Commit: b34bf4da9bf4829d6474ccdb9397a30b705bd01d Parents: 0e34073 Author: Otavio Santana Authored: Tue Sep 25 15:57:52 2018 -0300 Committer: Otavio Santana Committed: Tue Sep 25 15:57:52 2018 -0300 -- .../traversal/dsl/graph/GraphTraversal.java | 37 ++-- 1 file changed, 27 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b34bf4da/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java -- 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 5ba7823..ba09a7c 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 @@ -1480,22 +1480,39 @@ public interface GraphTraversal extends Traversal { * @since 3.2.2 */ public default GraphTraversal hasId(final Object id, final Object... otherIds) { -if (id instanceof P) +if (id instanceof P) { return this.hasId((P) id); +} else { -final List ids = new ArrayList<>(); +Object[] ids; if (id instanceof Object[]) { -Collections.addAll(ids, (Object[]) id); -} else -ids.add(id); +ids = (Object[]) id; +} else { +ids = new Object[] {id}; +} +int size = ids.length; +int capacity = size; for (final Object i : otherIds) { if (i.getClass().isArray()) { -Collections.addAll(ids, (Object[]) i); -} else -ids.add(i); +final Object[] tmp = (Object[]) i; +int newLength = size + tmp.length; +if (capacity < newLength) { +ids = Arrays.copyOf(ids, capacity = size + tmp.length); +} +System.arraycopy(tmp, 0, ids, size, tmp.length); +size = newLength; +} else { +if (capacity == size) { +ids = Arrays.copyOf(ids, capacity = size * 2); +} +ids[size++] = i; +} +} +if (capacity > size) { +ids = Arrays.copyOf(ids, size); } -this.asAdmin().getBytecode().addStep(Symbols.hasId, ids.toArray()); -return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), ids.size() == 1 ? P.eq(ids.get(0)) : P.within(ids))); +this.asAdmin().getBytecode().addStep(Symbols.hasId, ids); +return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), ids.length == 1 ? P.eq(ids[0]) : P.within(ids))); } }
[3/3] tinkerpop git commit: Merge branch 'pr-920' into tp32
Merge branch 'pr-920' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/76c9aba9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/76c9aba9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/76c9aba9 Branch: refs/heads/tp32 Commit: 76c9aba94f0f5c464fe4be975809c7dce9c7b92b Parents: e7af98b b34bf4d Author: Stephen Mallette Authored: Wed Oct 3 06:12:43 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:43 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[4/4] 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/650f31f1 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/650f31f1 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/650f31f1 Branch: refs/heads/tp33 Commit: 650f31f1b8bee2ddfcda56afd41612a2e3d36b6a Parents: c10bde3 76c9aba Author: Stephen Mallette Authored: Wed Oct 3 06:12:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:56 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650f31f1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java --
[4/5] 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/650f31f1 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/650f31f1 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/650f31f1 Branch: refs/heads/master Commit: 650f31f1b8bee2ddfcda56afd41612a2e3d36b6a Parents: c10bde3 76c9aba Author: Stephen Mallette Authored: Wed Oct 3 06:12:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:56 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/650f31f1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java --
[3/5] tinkerpop git commit: Merge branch 'pr-920' into tp32
Merge branch 'pr-920' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/76c9aba9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/76c9aba9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/76c9aba9 Branch: refs/heads/master Commit: 76c9aba94f0f5c464fe4be975809c7dce9c7b92b Parents: e7af98b b34bf4d Author: Stephen Mallette Authored: Wed Oct 3 06:12:43 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:43 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[2/4] tinkerpop git commit: fixes traversal
fixes traversal Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b34bf4da Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b34bf4da Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b34bf4da Branch: refs/heads/tp33 Commit: b34bf4da9bf4829d6474ccdb9397a30b705bd01d Parents: 0e34073 Author: Otavio Santana Authored: Tue Sep 25 15:57:52 2018 -0300 Committer: Otavio Santana Committed: Tue Sep 25 15:57:52 2018 -0300 -- .../traversal/dsl/graph/GraphTraversal.java | 37 ++-- 1 file changed, 27 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b34bf4da/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java -- 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 5ba7823..ba09a7c 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 @@ -1480,22 +1480,39 @@ public interface GraphTraversal extends Traversal { * @since 3.2.2 */ public default GraphTraversal hasId(final Object id, final Object... otherIds) { -if (id instanceof P) +if (id instanceof P) { return this.hasId((P) id); +} else { -final List ids = new ArrayList<>(); +Object[] ids; if (id instanceof Object[]) { -Collections.addAll(ids, (Object[]) id); -} else -ids.add(id); +ids = (Object[]) id; +} else { +ids = new Object[] {id}; +} +int size = ids.length; +int capacity = size; for (final Object i : otherIds) { if (i.getClass().isArray()) { -Collections.addAll(ids, (Object[]) i); -} else -ids.add(i); +final Object[] tmp = (Object[]) i; +int newLength = size + tmp.length; +if (capacity < newLength) { +ids = Arrays.copyOf(ids, capacity = size + tmp.length); +} +System.arraycopy(tmp, 0, ids, size, tmp.length); +size = newLength; +} else { +if (capacity == size) { +ids = Arrays.copyOf(ids, capacity = size * 2); +} +ids[size++] = i; +} +} +if (capacity > size) { +ids = Arrays.copyOf(ids, size); } -this.asAdmin().getBytecode().addStep(Symbols.hasId, ids.toArray()); -return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), ids.size() == 1 ? P.eq(ids.get(0)) : P.within(ids))); +this.asAdmin().getBytecode().addStep(Symbols.hasId, ids); +return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), ids.length == 1 ? P.eq(ids[0]) : P.within(ids))); } }
[2/5] tinkerpop git commit: fixes traversal
fixes traversal Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b34bf4da Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b34bf4da Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b34bf4da Branch: refs/heads/master Commit: b34bf4da9bf4829d6474ccdb9397a30b705bd01d Parents: 0e34073 Author: Otavio Santana Authored: Tue Sep 25 15:57:52 2018 -0300 Committer: Otavio Santana Committed: Tue Sep 25 15:57:52 2018 -0300 -- .../traversal/dsl/graph/GraphTraversal.java | 37 ++-- 1 file changed, 27 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b34bf4da/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java -- 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 5ba7823..ba09a7c 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 @@ -1480,22 +1480,39 @@ public interface GraphTraversal extends Traversal { * @since 3.2.2 */ public default GraphTraversal hasId(final Object id, final Object... otherIds) { -if (id instanceof P) +if (id instanceof P) { return this.hasId((P) id); +} else { -final List ids = new ArrayList<>(); +Object[] ids; if (id instanceof Object[]) { -Collections.addAll(ids, (Object[]) id); -} else -ids.add(id); +ids = (Object[]) id; +} else { +ids = new Object[] {id}; +} +int size = ids.length; +int capacity = size; for (final Object i : otherIds) { if (i.getClass().isArray()) { -Collections.addAll(ids, (Object[]) i); -} else -ids.add(i); +final Object[] tmp = (Object[]) i; +int newLength = size + tmp.length; +if (capacity < newLength) { +ids = Arrays.copyOf(ids, capacity = size + tmp.length); +} +System.arraycopy(tmp, 0, ids, size, tmp.length); +size = newLength; +} else { +if (capacity == size) { +ids = Arrays.copyOf(ids, capacity = size * 2); +} +ids[size++] = i; +} +} +if (capacity > size) { +ids = Arrays.copyOf(ids, size); } -this.asAdmin().getBytecode().addStep(Symbols.hasId, ids.toArray()); -return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), ids.size() == 1 ? P.eq(ids.get(0)) : P.within(ids))); +this.asAdmin().getBytecode().addStep(Symbols.hasId, ids); +return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), ids.length == 1 ? P.eq(ids[0]) : P.within(ids))); } }
[3/4] tinkerpop git commit: Merge branch 'pr-920' into tp32
Merge branch 'pr-920' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/76c9aba9 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/76c9aba9 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/76c9aba9 Branch: refs/heads/tp33 Commit: 76c9aba94f0f5c464fe4be975809c7dce9c7b92b Parents: e7af98b b34bf4d Author: Stephen Mallette Authored: Wed Oct 3 06:12:43 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 06:12:43 2018 -0400 -- .../traversal/dsl/graph/GraphTraversal.java | 48 .../step/sideEffect/SideEffectCapStep.java | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) --
[05/26] tinkerpop git commit: Merge branch 'TINKERPOP-1921' into tp32
Merge branch 'TINKERPOP-1921' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/67879780 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/67879780 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/67879780 Branch: refs/heads/TINKERPOP-2015 Commit: 67879780b03e031c5f36fdc97769874a18b76495 Parents: ec0e685 9dbd2d2 Author: Stephen Mallette Authored: Fri Sep 14 09:30:21 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 14 09:30:21 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-python/glv/TraversalSource.template | 40 .../jython/gremlin_python/process/traversal.py | 40 .../driver/test_driver_remote_connection.py | 39 +++ 4 files changed, 120 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/67879780/CHANGELOG.asciidoc -- diff --cc CHANGELOG.asciidoc index 8e36d6d,8f14b8e..116c79d --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@@ -32,9 -32,8 +32,10 @@@ image::https://raw.githubusercontent.co * Added an system error code for failed plugin installs for Gremlin Server `-i` option. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. +* Added synchronized `Map` to Gryo 1.0 registrations. +* Added `Triple` to Gryo 1.0 registrations. * Added better internal processing of `Column` in `by(Function)`. + * Added `hasNext()` support on `Traversal` for `gremlin-python`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`. * Fixed bug in Java driver where an disorderly shutdown of the server would cause the client to hang. * Added a dotnet template project that should make it easier to get started with Gremlin.Net.
[10/26] tinkerpop git commit: Updated changelog CTR
Updated changelog CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0426797a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0426797a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0426797a Branch: refs/heads/TINKERPOP-2015 Commit: 0426797a5a3da5b05a35cbbf075dc4100d5d5412 Parents: 4bdf0d2 Author: Stephen Mallette Authored: Fri Sep 21 15:15:50 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:15:50 2018 -0400 -- CHANGELOG.asciidoc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0426797a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 948f8df..c1e8b56 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -46,6 +46,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in `branch()` where reducing steps as options would produce incorrect results. * Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors. * Improved performance of `TraversalVertexProgram` and related infrastructure. +* Checked web socket state before closing connection in the .NET driver. * Deprecated `BulkLoaderVertexProgram` and related infrastructure. * Deprecated `BulkDumperVertexProgram` with the more aptly named `CloneVertexProgram`. * Added `createGratefulDead()` to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
[03/26] tinkerpop git commit: TINKERPOP-2032 bump jython-standalone 2.7.1
TINKERPOP-2032 bump jython-standalone 2.7.1 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f7774913 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f7774913 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f7774913 Branch: refs/heads/TINKERPOP-2015 Commit: f77749132b2e535acd917a46fdd72defe5683d92 Parents: c029eef Author: Robert Dale Authored: Tue Sep 11 08:35:33 2018 -0400 Committer: Robert Dale Committed: Tue Sep 11 08:38:40 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-python/pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f7774913/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 158cc7a..8909e78 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -23,6 +23,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima [[release-3-2-10]] === TinkerPop 3.2.10 (Release Date: NOT OFFICIALLY RELEASED YET) +* Bumped jython-standalone 2.7.1 * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. * Fixed problem with Gremlin Server sometimes returning an additional message after a failure. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f7774913/gremlin-python/pom.xml -- diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml index 13c3454..ccd85b5 100644 --- a/gremlin-python/pom.xml +++ b/gremlin-python/pom.xml @@ -34,7 +34,7 @@ limitations under the License. org.python jython-standalone -2.7.1b2 +2.7.1
[20/26] tinkerpop git commit: Merge branch 'travis-wait' into tp32
Merge branch 'travis-wait' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2250a85e Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2250a85e Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2250a85e Branch: refs/heads/TINKERPOP-2015 Commit: 2250a85e18e4065d3021973c94fe9f2fc201305b Parents: 0278c15 05c7daf Author: Stephen Mallette Authored: Thu Sep 27 15:35:57 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 15:35:57 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[26/26] tinkerpop git commit: Expose WebSocket configuration TINKERPOP-2015
Expose WebSocket configuration TINKERPOP-2015 Users can now provide a delegate to the Gremlin.Net driver that will be used to configure WebSocket connections. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b4407423 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b4407423 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b4407423 Branch: refs/heads/TINKERPOP-2015 Commit: b440742393135fdd88d4af18b09ade5f5011133e Parents: e7af98b Author: Florian Hockmann Authored: Sun Sep 9 14:49:03 2018 +0200 Committer: Florian Hockmann Committed: Wed Oct 3 12:08:14 2018 +0200 -- CHANGELOG.asciidoc | 1 + .../src/Gremlin.Net/Driver/Connection.cs| 6 +++-- .../src/Gremlin.Net/Driver/ConnectionFactory.cs | 8 +-- .../src/Gremlin.Net/Driver/GremlinClient.cs | 9 +-- .../Gremlin.Net/Driver/WebSocketConnection.cs | 9 +-- .../Driver/GremlinClientTests.cs| 25 6 files changed, 50 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e93c1c9..36a34f2 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Removed conflicting non-indy groovy core dependency * Bumped jython-standalone 2.7.1 +* Added a delegate to the Gremlin.Net driver that can be used to configure the WebSocket connection. * SSL security enhancements * Added Gremlin version to Gremlin Server startup logging output. * Fixed problem with Gremlin Server sometimes returning an additional message after a failure. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs index dbbd375..f63e20b 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Connection.cs @@ -23,6 +23,7 @@ using System; using System.Collections.Generic; +using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Gremlin.Net.Driver.Messages; @@ -38,18 +39,19 @@ namespace Gremlin.Net.Driver private readonly GraphSONWriter _graphSONWriter; private readonly JsonMessageSerializer _messageSerializer = new JsonMessageSerializer(); private readonly Uri _uri; -private readonly WebSocketConnection _webSocketConnection = new WebSocketConnection(); +private readonly WebSocketConnection _webSocketConnection; private readonly string _username; private readonly string _password; public Connection(Uri uri, string username, string password, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _uri = uri; _username = username; _password = password; _graphSONReader = graphSONReader; _graphSONWriter = graphSONWriter; +_webSocketConnection = new WebSocketConnection(webSocketConfiguration); } public async Task> SubmitAsync(RequestMessage requestMessage) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b4407423/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs index 0041a67..8b14ed9 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/ConnectionFactory.cs @@ -21,6 +21,8 @@ #endregion +using System; +using System.Net.WebSockets; using Gremlin.Net.Structure.IO.GraphSON; namespace Gremlin.Net.Driver @@ -29,20 +31,22 @@ namespace Gremlin.Net.Driver { private readonly GraphSONReader _graphSONReader; private readonly GraphSONWriter _graphSONWriter; +private readonly Action _webSocketConfiguration; private readonly GremlinServer _gremlinServer; public ConnectionFactory(GremlinServer gremlinServer, GraphSONReader graphSONReader, -GraphSONWriter graphSONWriter) +GraphSONWriter graphSONWriter, Action webSocketConfiguration) { _gremlinServer = gremlinServer; _graphSONReader = graphSONReader;
[09/26] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32
Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4bdf0d21 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4bdf0d21 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4bdf0d21 Branch: refs/heads/TINKERPOP-2015 Commit: 4bdf0d212af4eba5f841ce27e751dfd9f1b8a9bc Parents: af73f45 4965803 Author: Stephen Mallette Authored: Fri Sep 21 15:12:29 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 15:12:29 2018 -0400 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) --
[01/26] tinkerpop git commit: Make closing of connections robust TINKERPOP-2026 [Forced Update!]
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2015 828b0503e -> b44074239 (forced update) Make closing of connections robust TINKERPOP-2026 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4965803a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4965803a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4965803a Branch: refs/heads/TINKERPOP-2015 Commit: 4965803ae8e9283817e0171e1c463014c9166970 Parents: 3afc576 Author: Florian Hockmann Authored: Sat Sep 1 17:02:23 2018 +0200 Committer: Florian Hockmann Committed: Sat Sep 1 17:02:23 2018 +0200 -- .../Gremlin.Net/Driver/WebSocketConnection.cs| 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4965803a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs -- diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs index 9672606..b5a4cc8 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs @@ -43,11 +43,24 @@ namespace Gremlin.Net.Driver public async Task CloseAsync() { -await -_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) -.ConfigureAwait(false); +if (CloseAlreadyInitiated) return; + +try +{ +await +_client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) +.ConfigureAwait(false); +} +catch (Exception) +{ +// Swallow exceptions silently as there is nothing to do when closing fails +} } +private bool CloseAlreadyInitiated => _client.State == WebSocketState.Closed || +_client.State == WebSocketState.Aborted || +_client.State == WebSocketState.CloseSent; + public async Task SendMessageAsync(byte[] message) { await
[24/26] tinkerpop git commit: Merge branch 'TINKERPOP-2045' into tp32
Merge branch 'TINKERPOP-2045' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d0659bd4 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d0659bd4 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d0659bd4 Branch: refs/heads/TINKERPOP-2015 Commit: d0659bd4334f69810cee20d05a6f329d3673220e Parents: 0403156 6e320da Author: Robert Dale Authored: Tue Oct 2 03:47:28 2018 -0400 Committer: Robert Dale Committed: Tue Oct 2 03:47:28 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-driver/pom.xml | 14 ++ gremlin-groovy/pom.xml | 21 + 3 files changed, 36 insertions(+) --
[08/26] tinkerpop git commit: Fixed bad links in javadoc CTR
Fixed bad links in javadoc CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/af73f45a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/af73f45a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/af73f45a Branch: refs/heads/TINKERPOP-2015 Commit: af73f45ad1afd94d984bd144523060fc948cb234 Parents: 0eec0c5 Author: Stephen Mallette Authored: Thu Sep 20 15:47:58 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 20 15:47:58 2018 -0400 -- .../java/org/apache/tinkerpop/gremlin/driver/Cluster.java | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/af73f45a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 7ae8d2d..33ff574 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -656,7 +656,7 @@ public final class Cluster { /** * File location for a SSL Certificate Chain to use when SSL is enabled. If this value is not provided and * SSL is enabled, the default {@link TrustManager} will be used. - * @deprecated As of release 3.2.10, replaced by {@link trustStore} + * @deprecated As of release 3.2.10, replaced by {@link #trustStore} */ @Deprecated public Builder trustCertificateChainFile(final String certificateChainFile) { @@ -676,7 +676,7 @@ public final class Cluster { /** * The X.509 certificate chain file in PEM format. - * @deprecated As of release 3.2.10, replaced by {@link keyStore} + * @deprecated As of release 3.2.10, replaced by {@link #keyStore} */ @Deprecated public Builder keyCertChainFile(final String keyCertChainFile) { @@ -686,7 +686,7 @@ public final class Cluster { /** * The PKCS#8 private key file in PEM format. - * @deprecated As of release 3.2.10, replaced by {@link keyStore} + * @deprecated As of release 3.2.10, replaced by {@link #keyStore} */ @Deprecated public Builder keyFile(final String keyFile) { @@ -696,7 +696,7 @@ public final class Cluster { /** * The password of the {@link #keyFile}, or {@code null} if it's not password-protected. - * @deprecated As of release 3.2.10, replaced by {@link keyStorePassword} + * @deprecated As of release 3.2.10, replaced by {@link #keyStorePassword} */ @Deprecated public Builder keyPassword(final String keyPassword) { @@ -738,7 +738,7 @@ public final class Cluster { } /** - * The format of the {@link keyStore}, either {@code JKS} or {@code PKCS12} + * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ public Builder keyStoreType(final String keyStoreType) { this.keyStoreType = keyStoreType;
[06/26] tinkerpop git commit: Merge branch 'TINKERPOP-2032' into tp32
Merge branch 'TINKERPOP-2032' into tp32 Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a4945162 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a4945162 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a4945162 Branch: refs/heads/TINKERPOP-2015 Commit: a4945162fd969d6c47f69a138d60d266fb88564d Parents: 6787978 f777491 Author: Robert Dale Authored: Wed Sep 19 08:43:10 2018 -0400 Committer: Robert Dale Committed: Wed Sep 19 08:43:10 2018 -0400 -- CHANGELOG.asciidoc | 1 + gremlin-python/pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a4945162/CHANGELOG.asciidoc --
[04/26] tinkerpop git commit: TINKERPOP-2034 Registered synchronizedMap() with Gryo CTR
TINKERPOP-2034 Registered synchronizedMap() with Gryo CTR This has no real effect here, but is relevant to continued compatibility with Gryo 1.0 in 3.4.0. Also added Triplet to Gryo as it was added in 3.4.0 as part of repeat() CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ec0e6856 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ec0e6856 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ec0e6856 Branch: refs/heads/TINKERPOP-2015 Commit: ec0e6856e9355b3b46be4c7e104a2b55d57d766d Parents: c029eef Author: Stephen Mallette Authored: Wed Sep 12 10:28:03 2018 -0400 Committer: Stephen Mallette Committed: Wed Sep 12 10:28:03 2018 -0400 -- CHANGELOG.asciidoc | 2 ++ .../gremlin/structure/io/gryo/GryoVersion.java | 14 - .../structure/io/gryo/UtilSerializers.java | 33 3 files changed, 48 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec0e6856/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 158cc7a..8e36d6d 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -32,6 +32,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Added an system error code for failed plugin installs for Gremlin Server `-i` option. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. +* Added synchronized `Map` to Gryo 1.0 registrations. +* Added `Triple` to Gryo 1.0 registrations. * Added better internal processing of `Column` in `by(Function)`. * Added support for additional extended types in Gremlin.Net with `decimal`, `TimeSpan`, `BigInteger`, `byte`, `byte[]`, `char` and `short`. * Fixed bug in Java driver where an disorderly shutdown of the server would cause the client to hang. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec0e6856/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java -- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java index 6d5e99a..5f973e3 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java @@ -84,6 +84,7 @@ import org.apache.tinkerpop.gremlin.util.function.MultiComparator; import org.apache.tinkerpop.shaded.kryo.KryoSerializable; import org.apache.tinkerpop.shaded.kryo.serializers.JavaSerializer; import org.javatuples.Pair; +import org.javatuples.Triplet; import java.math.BigDecimal; import java.math.BigInteger; @@ -191,6 +192,7 @@ public enum GryoVersion { add(GryoTypeReg.of(Collections.singleton(null).getClass(), 54)); add(GryoTypeReg.of(Collections.singletonList(null).getClass(), 24)); add(GryoTypeReg.of(Collections.singletonMap(null, null).getClass(), 23)); +add(GryoTypeReg.of(Types.COLLECTIONS_SYNCHRONIZED_MAP, 185, new UtilSerializers.SynchronizedMapSerializer())); // ***LAST ID*** add(GryoTypeReg.of(Contains.class, 49)); add(GryoTypeReg.of(Currency.class, 40)); add(GryoTypeReg.of(Date.class, 38)); @@ -280,6 +282,7 @@ public enum GryoVersion { add(GryoTypeReg.of(MapReduce.NullObject.class, 74)); add(GryoTypeReg.of(AtomicLong.class, 79)); add(GryoTypeReg.of(Pair.class, 88, new UtilSerializers.PairSerializer())); +add(GryoTypeReg.of(Triplet.class, 183, new UtilSerializers.TripletSerializer())); add(GryoTypeReg.of(TraversalExplanation.class, 106, new JavaSerializer())); add(GryoTypeReg.of(Duration.class, 93, new JavaTimeSerializers.DurationSerializer())); @@ -308,7 +311,7 @@ public enum GryoVersion { add(GryoTypeReg.of(OrderGlobalStep.OrderBiOperator.class, 118, new JavaSerializer())); add(GryoTypeReg.of(ProfileStep.ProfileBiOperator.class, 119)); // skip 171, 172 to sync with tp33 - add(GryoTypeReg.of(IndexedTraverserSet.VertexIndexedTraverserSet.class, 173)); // ***LAST ID*** + add(GryoTypeReg.of(IndexedTraverserSet.VertexIndexedTraverserSet.class, 173)); }}; } @@ -332,6 +335,8 @@ public enum GryoVersion { private static final Class HASH_MAP_TREE_NODE; +private static final Class
[07/26] tinkerpop git commit: Fixed javadoc links CTR
Fixed javadoc links CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0eec0c53 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0eec0c53 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0eec0c53 Branch: refs/heads/TINKERPOP-2015 Commit: 0eec0c53a9759096d5ff594af7986f46c7c27e1a Parents: a494516 Author: Stephen Mallette Authored: Wed Sep 19 13:31:32 2018 -0400 Committer: Stephen Mallette Committed: Wed Sep 19 13:31:32 2018 -0400 -- .../org/apache/tinkerpop/gremlin/server/Settings.java | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0eec0c53/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java -- diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java index 4acfea0..a87362b 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java @@ -459,7 +459,7 @@ public class Settings { /** * The X.509 certificate chain file in PEM format. * - * @deprecated As of release 3.2.10, replaced by {@link keyStore} + * @deprecated As of release 3.2.10, replaced by {@link #keyStore} */ @Deprecated public String keyCertChainFile = null; @@ -467,7 +467,7 @@ public class Settings { /** * The PKCS#8 private key file in PEM format. * - * @deprecated As of release 3.2.10, replaced by {@link keyStore} + * @deprecated As of release 3.2.10, replaced by {@link #keyStore} */ @Deprecated public String keyFile = null; @@ -476,7 +476,7 @@ public class Settings { * The password of the {@link #keyFile}, or {@code null} if it's not * password-protected. * - * @deprecated As of release 3.2.10, replaced by {@link keyStorePassword} + * @deprecated As of release 3.2.10, replaced by {@link #keyStorePassword} */ @Deprecated public String keyPassword = null; @@ -486,7 +486,7 @@ public class Settings { * file should contain an X.509 certificate chain in PEM format. {@code null} * uses the system default. * - * @deprecated As of release 3.2.10, replaced by {@link trustStore} + * @deprecated As of release 3.2.10, replaced by {@link #trustStore} */ @Deprecated public String trustCertChainFile = null; @@ -513,7 +513,7 @@ public class Settings { public String trustStorePassword; /** - * The format of the {@link keyStore}, either {@code JKS} or {@code PKCS12} + * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ public String keyStoreType;
[21/26] tinkerpop git commit: Incremented timeout for travis CTR
Incremented timeout for travis CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e55b0d81 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e55b0d81 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e55b0d81 Branch: refs/heads/TINKERPOP-2015 Commit: e55b0d81437c5e8729b47153993de497b32c3932 Parents: 2250a85 Author: Stephen Mallette Authored: Thu Sep 27 16:52:42 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 16:52:42 2018 -0400 -- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e55b0d81/.travis.yml -- diff --git a/.travis.yml b/.travis.yml index 1cedfa0..1188940 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,4 +30,4 @@ jobs: - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet" - script: "touch gremlin-python/.glv && mvn clean install -q -DskipTests && mvn verify -pl gremlin-python" - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript" -- script: "travis_wait 30 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false" +- script: "travis_wait 60 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"
[22/26] tinkerpop git commit: Multi-line the travis spark integration script job CTR
Multi-line the travis spark integration script job CTR Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/03c3e48e Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/03c3e48e Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/03c3e48e Branch: refs/heads/TINKERPOP-2015 Commit: 03c3e48ef0e9f7ef103b2722e5f7acae97c7ee40 Parents: e55b0d8 Author: Stephen Mallette Authored: Thu Sep 27 20:56:23 2018 -0400 Committer: Stephen Mallette Committed: Thu Sep 27 20:56:23 2018 -0400 -- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/03c3e48e/.travis.yml -- diff --git a/.travis.yml b/.travis.yml index 1188940..46a99cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,4 +30,6 @@ jobs: - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet" - script: "touch gremlin-python/.glv && mvn clean install -q -DskipTests && mvn verify -pl gremlin-python" - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript" -- script: "travis_wait 60 mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false" +- script: + - "mvn clean install -q -DskipTests" + - "travis_wait 60 mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"
[11/26] tinkerpop git commit: TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue
TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/207c660a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/207c660a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/207c660a Branch: refs/heads/TINKERPOP-2015 Commit: 207c660a17a45df79c154720ba088d1852d80b4e Parents: 0426797 Author: Stephen Mallette Authored: Thu Sep 20 16:25:34 2018 -0400 Committer: Stephen Mallette Committed: Fri Sep 21 21:39:19 2018 -0400 -- CHANGELOG.asciidoc | 1 + .../tinkerpop/gremlin/driver/Cluster.java | 23 +++- 2 files changed, 14 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/CHANGELOG.asciidoc -- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c1e8b56..9431d98 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Fixed bug in traversals that used Python lambdas with strategies in `gremlin-python`. * Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts. * Added an system error code for failed plugin installs for Gremlin Server `-i` option. +* Fixed bug in keep-alive requests from over-queuing cancelled jobs. * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type). * Added support for GraphSON serialization of `Date` in Javascript. * Added synchronized `Map` to Gryo 1.0 registrations. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java -- diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java index 33ff574..9adaaa1 100644 --- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java +++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java @@ -62,6 +62,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -703,7 +704,7 @@ public final class Cluster { this.keyPassword = keyPassword; return this; } - + /** * The file location of the private key in JKS or PKCS#12 format. */ @@ -711,7 +712,7 @@ public final class Cluster { this.keyStore = keyStore; return this; } - + /** * The password of the {@link #keyStore}, or {@code null} if it's not password-protected. */ @@ -719,7 +720,7 @@ public final class Cluster { this.keyStorePassword = keyStorePassword; return this; } - + /** * The file location for a SSL Certificate Chain to use when SSL is enabled. If * this value is not provided and SSL is enabled, the default {@link TrustManager} will be used. @@ -728,7 +729,7 @@ public final class Cluster { this.trustStore = trustStore; return this; } - + /** * The password of the {@link #trustStore}, or {@code null} if it's not password-protected. */ @@ -736,7 +737,7 @@ public final class Cluster { this.trustStorePassword = trustStorePassword; return this; } - + /** * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12} */ @@ -744,7 +745,7 @@ public final class Cluster { this.keyStoreType = keyStoreType; return this; } - + /** * A list of SSL protocols to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE_Protocols;>JSSE @@ -754,7 +755,7 @@ public final class Cluster { this.sslEnabledProtocols = sslEnabledProtocols; return this; } - + /** * A list of cipher suites to enable. @see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites;>Cipher @@ -764,7 +765,7 @@ public final class Cluster { this.sslCipherSuites = sslCipherSuites; return this; } -
tinkerpop git commit: TINKERPOP-2055 Updated IO docs to include special numbers
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2055 b54202782 -> a083fbff6 TINKERPOP-2055 Updated IO docs to include special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a083fbff Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a083fbff Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a083fbff Branch: refs/heads/TINKERPOP-2055 Commit: a083fbff62fcc38a3dae9b138f56b0d052e0c143 Parents: b542027 Author: Stephen Mallette Authored: Wed Oct 3 05:30:27 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:30:27 2018 -0400 -- docs/src/dev/io/graphson.asciidoc | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a083fbff/docs/src/dev/io/graphson.asciidoc -- diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index c120634..064ac2e 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -1491,6 +1491,8 @@ types. By default, TinkerPop types will have the namespace "g" (or "gx" for "ext Double +While the `@value` is expected to be a JSON number, it might also be a `String` of `NaN`, `Infinity` or `-Infinity`. + [source,json] {
[1/2] tinkerpop git commit: TINKERPOP-2055 Added special number handling in javascript
Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-2055 854914e6e -> b54202782 TINKERPOP-2055 Added special number handling in javascript Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2d3041f2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2d3041f2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2d3041f2 Branch: refs/heads/TINKERPOP-2055 Commit: 2d3041f226310379c966214461c79cf47432f4c9 Parents: 854914e Author: Stephen Mallette Authored: Wed Oct 3 04:33:40 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 04:33:40 2018 -0400 -- .../lib/structure/io/type-serializers.js| 30 ++- .../test/unit/graphson-test.js | 39 2 files changed, 67 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js -- diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js index fdf049f..5583c47 100644 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/type-serializers.js @@ -49,11 +49,37 @@ class TypeSerializer { class NumberSerializer extends TypeSerializer { serialize(item) { -return item; +if (isNaN(item)) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'NaN' + }; +} else if (item === Number.POSITIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: 'Infinity' + }; +} else if (item === Number.NEGATIVE_INFINITY) { + return { +[typeKey]: 'g:Double', +[valueKey]: '-Infinity' + }; +} else { + return item; +} } deserialize(obj) { -return parseFloat(obj[valueKey]); +var val = obj[valueKey]; +if (val === 'NaN') { + return NaN; +} else if (val === 'Infinity') { + return Number.POSITIVE_INFINITY; +} else if (val === '-Infinity') { + return Number.NEGATIVE_INFINITY; +} else { + return parseFloat(val); +} } canBeUsedFor(value) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d3041f2/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js -- diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js index b459407..a1ac0d6 100644 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/graphson-test.js @@ -46,6 +46,30 @@ describe('GraphSONReader', function () { assert.strictEqual(result, item[1]); }); }); + it('should parse GraphSON Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "NaN" + }); + assert.ok(isNaN(result)); + }); + it('should parse GraphSON -Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "-Infinity" + }); + assert.strictEqual(result, Number.NEGATIVE_INFINITY); + }); + it('should parse GraphSON Infinity and Nan from GraphSON', function () { + const reader = new GraphSONReader(); + var result = reader.read({ +"@type": "g:Double", +"@value": "Infinity" + }); + assert.strictEqual(result, Number.POSITIVE_INFINITY); + }); it('should parse Date', function() { const obj = { "@type" : "g:Date", "@value" : 1481750076295 }; const reader = new GraphSONReader(); @@ -102,6 +126,21 @@ describe('GraphSONWriter', function () { const writer = new GraphSONWriter(); assert.strictEqual(writer.write(2), '2'); }); + it('should write NaN', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "NaN" }); +assert.strictEqual(writer.write(NaN), expected); + }); + it('should write Infinity', function () { +const writer = new GraphSONWriter(); +const expected = JSON.stringify({ "@type" : "g:Double", "@value" : "Infinity" }); +
[2/2] tinkerpop git commit: TINKERPOP-2055 Added tests for .Net on special numbers
TINKERPOP-2055 Added tests for .Net on special numbers Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b5420278 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b5420278 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b5420278 Branch: refs/heads/TINKERPOP-2055 Commit: b542027825fe905c0c46b81a00fe7dfd5275e8c6 Parents: 2d3041f Author: Stephen Mallette Authored: Wed Oct 3 05:11:56 2018 -0400 Committer: Stephen Mallette Committed: Wed Oct 3 05:11:56 2018 -0400 -- .../IO/GraphSON/GraphSONReaderTests.cs | 38 ++-- .../IO/GraphSON/GraphSONWriterTests.cs | 30 2 files changed, 66 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs index 74bf385..08a91ae 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs @@ -24,11 +24,9 @@ using System; using System.Collections.Generic; using System.Numerics; -using Gremlin.Net.Process.Traversal; using Gremlin.Net.Structure; using Gremlin.Net.Structure.IO.GraphSON; using Moq; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Xunit; @@ -178,6 +176,42 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldDeserializeNaN() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'NaN'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NaN, deserializedValue); +} + +[Fact] +public void ShouldDeserializePositiveInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.PositiveInfinity, deserializedValue); +} + +[Fact] +public void ShouldDeserializeNegativeInfinity() +{ +var serializedValue = "{\"@type\":\"g:Double\",\"@value\":'-Infinity'}"; +var reader = CreateStandardGraphSONReader(); + +var jObject = JObject.Parse(serializedValue); +var deserializedValue = reader.ToObject(jObject); + +Assert.Equal(Double.NegativeInfinity, deserializedValue); +} + +[Fact] public void ShouldDeserializeDecimal() { var serializedValue = "{\"@type\":\"gx:BigDecimal\",\"@value\":-8.201}"; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5420278/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs -- diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs index a544fb3..13fbddc 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs @@ -81,6 +81,36 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON } [Fact] +public void ShouldSerializeNaN() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NaN); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"NaN\"}", graphSon); +} + +[Fact] +public void ShouldSerializePositiveInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.PositiveInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"Infinity\"}", graphSon); +} + +[Fact] +public void ShouldSerializeNegativeInfinity() +{ +var writer = CreateStandardGraphSONWriter(); + +var graphSon = writer.WriteObject(Double.NegativeInfinity); + +Assert.Equal("{\"@type\":\"g:Double\",\"@value\":\"-Infinity\"}", graphSon); +} + +