[3/3] tinkerpop git commit: TINKERPOP-1950 Cached global strategy lookups during traversal construction

2018-04-20 Thread spmallette
TINKERPOP-1950 Cached global strategy lookups during traversal construction

This change leads to a 1.5x to 2x speed improvement in traversal construction. 
It is especially effective when processing traversals that have many child 
traversals within them as this method is called for not only the parent 
traversal but all the children as well.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d7d0aafc
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d7d0aafc
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d7d0aafc

Branch: refs/heads/TINKERPOP-1950
Commit: d7d0aafc08cf8600b03d4d9d79ce52056d694a4f
Parents: 682f298
Author: Stephen Mallette 
Authored: Fri Apr 20 16:18:13 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:38:37 2018 -0400

--
 .../process/traversal/TraversalStrategies.java  | 29 ++--
 1 file changed, 21 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d7d0aafc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
index c7ee5bf..7ca5b61 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
@@ -63,6 +63,8 @@ import java.util.stream.Collectors;
  */
 public interface TraversalStrategies extends Serializable, Cloneable {
 
+static Set LOADED = new HashSet<>();
+
 static List STRATEGY_CATEGORIES = 
Collections.unmodifiableList(Arrays.asList(TraversalStrategy.DecorationStrategy.class,
 TraversalStrategy.OptimizationStrategy.class, 
TraversalStrategy.ProviderOptimizationStrategy.class, 
TraversalStrategy.FinalizationStrategy.class, 
TraversalStrategy.VerificationStrategy.class));
 
 /**
@@ -244,20 +246,31 @@ public interface TraversalStrategies extends 
Serializable, Cloneable {
 public static TraversalStrategies getStrategies(final Class 
graphOrGraphComputerClass) {
 try {
 // be sure to load the class so that its static{} traversal 
strategy registration component is loaded.
-// this is more important for GraphComputer classes as they 
are typically not instantiated prior to strategy usage like Graph classes.
-final String graphComputerClassName = null != 
graphOrGraphComputerClass.getDeclaringClass() ?
+// this is more important for GraphComputer classes as they 
are typically not instantiated prior to
+// strategy usage like Graph classes.
+if (!LOADED.contains(graphOrGraphComputerClass)) {
+final String graphComputerClassName = null != 
graphOrGraphComputerClass.getDeclaringClass() ?
 
graphOrGraphComputerClass.getCanonicalName().replace("." + 
graphOrGraphComputerClass.getSimpleName(), "$" + 
graphOrGraphComputerClass.getSimpleName()) :
 graphOrGraphComputerClass.getCanonicalName();
-Class.forName(graphComputerClassName);
+Class.forName(graphComputerClassName);
+
+// keep track of stuff we already loaded once - stuff in 
this if/statement isn't cheap and this
+// method gets called a lot, basically every time a new 
traversal gets spun up (that includes
+// child traversals.
+LOADED.add(graphOrGraphComputerClass);
+}
 } catch (final ClassNotFoundException e) {
 throw new IllegalStateException(e.getMessage(), e);
 }
-if (Graph.class.isAssignableFrom(graphOrGraphComputerClass)) {
-final TraversalStrategies traversalStrategies = 
GRAPH_CACHE.get(graphOrGraphComputerClass);
-return null == traversalStrategies ? 
GRAPH_CACHE.get(Graph.class) : traversalStrategies;
+
+if (GRAPH_CACHE.containsKey(graphOrGraphComputerClass)) {
+return GRAPH_CACHE.get(graphOrGraphComputerClass);
+} else if 
(Graph.class.isAssignableFrom(graphOrGraphComputerClass)) {
+return GRAPH_CACHE.get(Graph.class);
+} else if 
(GRAPH_COMPUTER_CACHE.containsKey(graphOrGraphComputerClass)) {
+return GRAPH_COMPUTER_CACHE.get(graphOrGraphComputerClass);
 } else if 

[1/3] tinkerpop git commit: Make ResponseExceptions constructor public CTR [Forced Update!]

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1950 b8c44bf12 -> d7d0aafc0 (forced update)


Make ResponseExceptions constructor public CTR

This makes the ResponseException easier to use in tests for users of
Gremlin.Net.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/25913023
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/25913023
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/25913023

Branch: refs/heads/TINKERPOP-1950
Commit: 25913023561f76043e11ff0813b2c8ece57274b5
Parents: b99c56a
Author: Florian Hockmann 
Authored: Thu Apr 19 16:08:03 2018 +0200
Committer: Florian Hockmann 
Committed: Thu Apr 19 16:08:03 2018 +0200

--
 .../src/Gremlin.Net/Driver/Exceptions/ResponseException.cs | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25913023/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
--
diff --git 
a/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs 
b/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
index 4706723..8d26106 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
@@ -30,7 +30,11 @@ namespace Gremlin.Net.Driver.Exceptions
 /// 
 public class ResponseException : Exception
 {
-internal ResponseException(string message) : base(message)
+/// 
+/// Initializes a new instance of the  class.
+/// 
+/// The error message string.
+public ResponseException(string message) : base(message)
 {
 }
 }



[2/3] tinkerpop git commit: TINKERPOP-1936 Improved performance of Bytecode deserialization.

2018-04-20 Thread spmallette
TINKERPOP-1936 Improved performance of Bytecode deserialization.

GraphSON deserialization of Bytecode was using generic List deserialization 
which became especially costly for Jackson in 2.5.x because of changes that 
synchronized access to the deserialization cache and because the collection 
deserialization were no longer cacheable when type deserialization was in play. 
This change removed the use of generic type lists in deserialization and more 
directly handled the parsing of the lists thus bypassing the collection 
deserializer for this specific case.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/682f298c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/682f298c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/682f298c

Branch: refs/heads/TINKERPOP-1950
Commit: 682f298cc82d66fd7040cb29a7d3b769be5e2794
Parents: 2591302
Author: Stephen Mallette 
Authored: Thu Apr 12 10:25:20 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:29:02 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0f3a71a..51c9f68 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Bumped to httpclient 4.5.5.
+* Improved performance of GraphSON deserialization of `Bytecode`.
 
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index a696280..040fd1d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -248,8 +248,6 @@ final class TraversalSerializersV2d0 {
 //
 
 final static class BytecodeJacksonDeserializer extends 
StdDeserializer {
-private static final JavaType listJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
Object.class);
-private static final JavaType listListJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
listJavaType);
 
 public BytecodeJacksonDeserializer() {
 super(Bytecode.class);
@@ -260,17 +258,30 @@ final class TraversalSerializersV2d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+jsonParser.nextToken();
+
+

tinkerpop git commit: TINKERPOP-1936 Improved performance of Bytecode deserialization.

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/tp32 259130235 -> 682f298cc


TINKERPOP-1936 Improved performance of Bytecode deserialization.

GraphSON deserialization of Bytecode was using generic List deserialization 
which became especially costly for Jackson in 2.5.x because of changes that 
synchronized access to the deserialization cache and because the collection 
deserialization were no longer cacheable when type deserialization was in play. 
This change removed the use of generic type lists in deserialization and more 
directly handled the parsing of the lists thus bypassing the collection 
deserializer for this specific case.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/682f298c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/682f298c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/682f298c

Branch: refs/heads/tp32
Commit: 682f298cc82d66fd7040cb29a7d3b769be5e2794
Parents: 2591302
Author: Stephen Mallette 
Authored: Thu Apr 12 10:25:20 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:29:02 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0f3a71a..51c9f68 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Bumped to httpclient 4.5.5.
+* Improved performance of GraphSON deserialization of `Bytecode`.
 
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index a696280..040fd1d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -248,8 +248,6 @@ final class TraversalSerializersV2d0 {
 //
 
 final static class BytecodeJacksonDeserializer extends 
StdDeserializer {
-private static final JavaType listJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
Object.class);
-private static final JavaType listListJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
listJavaType);
 
 public BytecodeJacksonDeserializer() {
 super(Bytecode.class);
@@ -260,17 +258,30 @@ final class TraversalSerializersV2d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+

[1/3] tinkerpop git commit: TINKERPOP-1936 Improved performance of Bytecode deserialization.

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master a09843788 -> a187ce11c


TINKERPOP-1936 Improved performance of Bytecode deserialization.

GraphSON deserialization of Bytecode was using generic List deserialization 
which became especially costly for Jackson in 2.5.x because of changes that 
synchronized access to the deserialization cache and because the collection 
deserialization were no longer cacheable when type deserialization was in play. 
This change removed the use of generic type lists in deserialization and more 
directly handled the parsing of the lists thus bypassing the collection 
deserializer for this specific case.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/682f298c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/682f298c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/682f298c

Branch: refs/heads/master
Commit: 682f298cc82d66fd7040cb29a7d3b769be5e2794
Parents: 2591302
Author: Stephen Mallette 
Authored: Thu Apr 12 10:25:20 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:29:02 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0f3a71a..51c9f68 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Bumped to httpclient 4.5.5.
+* Improved performance of GraphSON deserialization of `Bytecode`.
 
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index a696280..040fd1d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -248,8 +248,6 @@ final class TraversalSerializersV2d0 {
 //
 
 final static class BytecodeJacksonDeserializer extends 
StdDeserializer {
-private static final JavaType listJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
Object.class);
-private static final JavaType listListJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
listJavaType);
 
 public BytecodeJacksonDeserializer() {
 super(Bytecode.class);
@@ -260,17 +258,30 @@ final class TraversalSerializersV2d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+   

[3/3] tinkerpop git commit: Merge branch 'tp33'

2018-04-20 Thread spmallette
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/a187ce11
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a187ce11
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a187ce11

Branch: refs/heads/master
Commit: a187ce11c96077d143afb54bffbb5fc636c065eb
Parents: a098437 81add60
Author: Stephen Mallette 
Authored: Fri Apr 20 19:29:27 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:29:27 2018 -0400

--

--




[2/2] tinkerpop git commit: Merge branch 'tp32' into tp33

2018-04-20 Thread spmallette
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/81add608
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/81add608
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/81add608

Branch: refs/heads/tp33
Commit: 81add608549846e5f45e4e1a504e5e3cea6e03f9
Parents: 7e6e985 682f298
Author: Stephen Mallette 
Authored: Fri Apr 20 19:29:17 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:29:17 2018 -0400

--

--




[1/2] tinkerpop git commit: TINKERPOP-1936 Improved performance of Bytecode deserialization.

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/tp33 7e6e98548 -> 81add6085


TINKERPOP-1936 Improved performance of Bytecode deserialization.

GraphSON deserialization of Bytecode was using generic List deserialization 
which became especially costly for Jackson in 2.5.x because of changes that 
synchronized access to the deserialization cache and because the collection 
deserialization were no longer cacheable when type deserialization was in play. 
This change removed the use of generic type lists in deserialization and more 
directly handled the parsing of the lists thus bypassing the collection 
deserializer for this specific case.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/682f298c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/682f298c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/682f298c

Branch: refs/heads/tp33
Commit: 682f298cc82d66fd7040cb29a7d3b769be5e2794
Parents: 2591302
Author: Stephen Mallette 
Authored: Thu Apr 12 10:25:20 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:29:02 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0f3a71a..51c9f68 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Bumped to httpclient 4.5.5.
+* Improved performance of GraphSON deserialization of `Bytecode`.
 
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/682f298c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index a696280..040fd1d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -248,8 +248,6 @@ final class TraversalSerializersV2d0 {
 //
 
 final static class BytecodeJacksonDeserializer extends 
StdDeserializer {
-private static final JavaType listJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
Object.class);
-private static final JavaType listListJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
listJavaType);
 
 public BytecodeJacksonDeserializer() {
 super(Bytecode.class);
@@ -260,17 +258,30 @@ final class TraversalSerializersV2d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+

[2/4] tinkerpop git commit: Merge branch 'TINKERPOP-1936' into tp32

2018-04-20 Thread spmallette
Merge branch 'TINKERPOP-1936' into tp32


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/6b259f72
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6b259f72
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6b259f72

Branch: refs/heads/tp33
Commit: 6b259f729137033a240254ade36e4726809b46e7
Parents: b99c56a e68df44
Author: Stephen Mallette 
Authored: Fri Apr 20 19:03:20 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:03:20 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--




[4/4] tinkerpop git commit: TINKERPOP-1936 Implemented bytecode serialization performance enhancement for GraphSON 3.0

2018-04-20 Thread spmallette
TINKERPOP-1936 Implemented bytecode serialization performance enhancement for 
GraphSON 3.0


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7e6e9854
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7e6e9854
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7e6e9854

Branch: refs/heads/tp33
Commit: 7e6e98548625c83ad419737166fe6c679d204468
Parents: b8b46b0
Author: Stephen Mallette 
Authored: Fri Apr 20 19:26:05 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:26:05 2018 -0400

--
 .../io/graphson/TraversalSerializersV3d0.java   | 33 ++--
 1 file changed, 23 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7e6e9854/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
index fd11f25..eaa7b0f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
@@ -252,17 +252,30 @@ final class TraversalSerializersV3d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+jsonParser.nextToken();
+
+final String stepName = jsonParser.getText();
+
+// iterate through the rest of the list for arguments 
until it gets to the end
+final List arguments = new ArrayList<>();
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+// we don't know the types here, so let the 
deserializer figure that business out
+
arguments.add(deserializationContext.readValue(jsonParser, Object.class));
+}
+
+// if it's not a "source" then it must be a "step"
+if (current.equals(GraphSONTokens.SOURCE))
+bytecode.addSource(stepName, arguments.toArray());
+else
+bytecode.addStep(stepName, arguments.toArray());
 }
 }
 }



[3/4] tinkerpop git commit: Merge branch 'tp32' into tp33

2018-04-20 Thread spmallette
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/b8b46b06
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b8b46b06
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b8b46b06

Branch: refs/heads/tp33
Commit: b8b46b06a26c58395ef2d878c2c2ed0665c0e788
Parents: 4705c04 6b259f7
Author: Stephen Mallette 
Authored: Fri Apr 20 19:03:42 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:03:42 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b8b46b06/CHANGELOG.asciidoc
--



[3/5] tinkerpop git commit: Merge branch 'tp32' into tp33

2018-04-20 Thread spmallette
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/b8b46b06
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b8b46b06
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b8b46b06

Branch: refs/heads/master
Commit: b8b46b06a26c58395ef2d878c2c2ed0665c0e788
Parents: 4705c04 6b259f7
Author: Stephen Mallette 
Authored: Fri Apr 20 19:03:42 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:03:42 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b8b46b06/CHANGELOG.asciidoc
--



[1/5] tinkerpop git commit: TINKERPOP-1936 Improved performance of Bytecode deserialization.

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master cfa14e2a1 -> a09843788


TINKERPOP-1936 Improved performance of Bytecode deserialization.

GraphSON deserialization of Bytecode was using generic List deserialization 
which became especially costly for Jackson in 2.5.x because of changes that 
synchronized access to the deserialization cache and because the collection 
deserialization were no longer cacheable when type deserialization was in play. 
This change removed the use of generic type lists in deserialization and more 
directly handled the parsing of the lists thus bypassing the collection 
deserializer for this specific case.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e68df44c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e68df44c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e68df44c

Branch: refs/heads/master
Commit: e68df44caaafd9f4037da8e03be660a4124555eb
Parents: a7c8ea1
Author: Stephen Mallette 
Authored: Thu Apr 12 10:25:20 2018 -0400
Committer: Stephen Mallette 
Committed: Mon Apr 16 13:47:35 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e68df44c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0f3a71a..51c9f68 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Bumped to httpclient 4.5.5.
+* Improved performance of GraphSON deserialization of `Bytecode`.
 
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e68df44c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index a696280..040fd1d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -248,8 +248,6 @@ final class TraversalSerializersV2d0 {
 //
 
 final static class BytecodeJacksonDeserializer extends 
StdDeserializer {
-private static final JavaType listJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
Object.class);
-private static final JavaType listListJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
listJavaType);
 
 public BytecodeJacksonDeserializer() {
 super(Bytecode.class);
@@ -260,17 +258,30 @@ final class TraversalSerializersV2d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+   

[1/4] tinkerpop git commit: TINKERPOP-1936 Improved performance of Bytecode deserialization.

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/tp33 4705c0416 -> 7e6e98548


TINKERPOP-1936 Improved performance of Bytecode deserialization.

GraphSON deserialization of Bytecode was using generic List deserialization 
which became especially costly for Jackson in 2.5.x because of changes that 
synchronized access to the deserialization cache and because the collection 
deserialization were no longer cacheable when type deserialization was in play. 
This change removed the use of generic type lists in deserialization and more 
directly handled the parsing of the lists thus bypassing the collection 
deserializer for this specific case.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e68df44c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e68df44c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e68df44c

Branch: refs/heads/tp33
Commit: e68df44caaafd9f4037da8e03be660a4124555eb
Parents: a7c8ea1
Author: Stephen Mallette 
Authored: Thu Apr 12 10:25:20 2018 -0400
Committer: Stephen Mallette 
Committed: Mon Apr 16 13:47:35 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e68df44c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0f3a71a..51c9f68 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Bumped to httpclient 4.5.5.
+* Improved performance of GraphSON deserialization of `Bytecode`.
 
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e68df44c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index a696280..040fd1d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -248,8 +248,6 @@ final class TraversalSerializersV2d0 {
 //
 
 final static class BytecodeJacksonDeserializer extends 
StdDeserializer {
-private static final JavaType listJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
Object.class);
-private static final JavaType listListJavaType = 
TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, 
listJavaType);
 
 public BytecodeJacksonDeserializer() {
 super(Bytecode.class);
@@ -260,17 +258,30 @@ final class TraversalSerializersV2d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+

[5/5] tinkerpop git commit: Merge branch 'tp33'

2018-04-20 Thread spmallette
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/a0984378
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a0984378
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a0984378

Branch: refs/heads/master
Commit: a098437886e05142a551d8574142052963726dac
Parents: cfa14e2 7e6e985
Author: Stephen Mallette 
Authored: Fri Apr 20 19:26:44 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:26:44 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 .../io/graphson/TraversalSerializersV3d0.java   | 33 --
 3 files changed, 47 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a0984378/CHANGELOG.asciidoc
--



[4/5] tinkerpop git commit: TINKERPOP-1936 Implemented bytecode serialization performance enhancement for GraphSON 3.0

2018-04-20 Thread spmallette
TINKERPOP-1936 Implemented bytecode serialization performance enhancement for 
GraphSON 3.0


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7e6e9854
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7e6e9854
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7e6e9854

Branch: refs/heads/master
Commit: 7e6e98548625c83ad419737166fe6c679d204468
Parents: b8b46b0
Author: Stephen Mallette 
Authored: Fri Apr 20 19:26:05 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:26:05 2018 -0400

--
 .../io/graphson/TraversalSerializersV3d0.java   | 33 ++--
 1 file changed, 23 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7e6e9854/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
index fd11f25..eaa7b0f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3d0.java
@@ -252,17 +252,30 @@ final class TraversalSerializersV3d0 {
 final Bytecode bytecode = new Bytecode();
 
 while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-if (jsonParser.getCurrentName().equals(GraphSONTokens.SOURCE)) 
{
+final String current = jsonParser.getCurrentName();
+if (current.equals(GraphSONTokens.SOURCE) || 
current.equals(GraphSONTokens.STEP)) {
 jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addSource((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
-}
-} else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.STEP)) {
-jsonParser.nextToken();
-final List instructions = 
deserializationContext.readValue(jsonParser, listListJavaType);
-for (final List instruction : instructions) {
-bytecode.addStep((String) instruction.get(0), 
Arrays.copyOfRange(instruction.toArray(), 1, instruction.size()));
+
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+
+// there should be a list now and the first item in 
the list is always string and is the step name
+// skip the start array
+jsonParser.nextToken();
+
+final String stepName = jsonParser.getText();
+
+// iterate through the rest of the list for arguments 
until it gets to the end
+final List arguments = new ArrayList<>();
+while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
+// we don't know the types here, so let the 
deserializer figure that business out
+
arguments.add(deserializationContext.readValue(jsonParser, Object.class));
+}
+
+// if it's not a "source" then it must be a "step"
+if (current.equals(GraphSONTokens.SOURCE))
+bytecode.addSource(stepName, arguments.toArray());
+else
+bytecode.addStep(stepName, arguments.toArray());
 }
 }
 }



[2/5] tinkerpop git commit: Merge branch 'TINKERPOP-1936' into tp32

2018-04-20 Thread spmallette
Merge branch 'TINKERPOP-1936' into tp32


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/6b259f72
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6b259f72
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6b259f72

Branch: refs/heads/master
Commit: 6b259f729137033a240254ade36e4726809b46e7
Parents: b99c56a e68df44
Author: Stephen Mallette 
Authored: Fri Apr 20 19:03:20 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 19:03:20 2018 -0400

--
 CHANGELOG.asciidoc  |  1 +
 .../io/graphson/TraversalSerializersV2d0.java   | 35 +---
 2 files changed, 24 insertions(+), 12 deletions(-)
--




tinkerpop git commit: Cleaner/anti-aliased version of the 3.4.x logo

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master 5df1ce77a -> cfa14e2a1


Cleaner/anti-aliased version of the 3.4.x logo


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/cfa14e2a
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/cfa14e2a
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/cfa14e2a

Branch: refs/heads/master
Commit: cfa14e2a106a408984208f33a7d6574e813c122b
Parents: 5df1ce7
Author: Joshua Shinavier 
Authored: Fri Apr 20 15:41:26 2018 -0700
Committer: Joshua Shinavier 
Committed: Fri Apr 20 15:41:26 2018 -0700

--
 docs/static/images/avant-gremlin-simple.png | Bin 57676 -> 85749 bytes
 docs/static/images/avant-gremlin.png| Bin 117645 -> 127052 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cfa14e2a/docs/static/images/avant-gremlin-simple.png
--
diff --git a/docs/static/images/avant-gremlin-simple.png 
b/docs/static/images/avant-gremlin-simple.png
index 0c3ebaf..350af11 100644
Binary files a/docs/static/images/avant-gremlin-simple.png and 
b/docs/static/images/avant-gremlin-simple.png differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cfa14e2a/docs/static/images/avant-gremlin.png
--
diff --git a/docs/static/images/avant-gremlin.png 
b/docs/static/images/avant-gremlin.png
index 55a318a..08659b7 100644
Binary files a/docs/static/images/avant-gremlin.png and 
b/docs/static/images/avant-gremlin.png differ



tinkerpop git commit: TINKERPOP-1950 Cached global strategy lookups during traversal construction

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1950 [created] b8c44bf12


TINKERPOP-1950 Cached global strategy lookups during traversal construction

This change leads to a 1.5x to 2x speed improvement in traversal construction. 
It is especially effective when processing traversals that have many child 
traversals within them as this method is called for not only the parent 
traversal but all the children as well.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b8c44bf1
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b8c44bf1
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b8c44bf1

Branch: refs/heads/TINKERPOP-1950
Commit: b8c44bf126986031cf168f5c78b9ff04b779c652
Parents: b99c56a
Author: Stephen Mallette 
Authored: Fri Apr 20 16:18:13 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 16:18:13 2018 -0400

--
 .../process/traversal/TraversalStrategies.java  | 29 ++--
 1 file changed, 21 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b8c44bf1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
index c7ee5bf..7ca5b61 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
@@ -63,6 +63,8 @@ import java.util.stream.Collectors;
  */
 public interface TraversalStrategies extends Serializable, Cloneable {
 
+static Set LOADED = new HashSet<>();
+
 static List STRATEGY_CATEGORIES = 
Collections.unmodifiableList(Arrays.asList(TraversalStrategy.DecorationStrategy.class,
 TraversalStrategy.OptimizationStrategy.class, 
TraversalStrategy.ProviderOptimizationStrategy.class, 
TraversalStrategy.FinalizationStrategy.class, 
TraversalStrategy.VerificationStrategy.class));
 
 /**
@@ -244,20 +246,31 @@ public interface TraversalStrategies extends 
Serializable, Cloneable {
 public static TraversalStrategies getStrategies(final Class 
graphOrGraphComputerClass) {
 try {
 // be sure to load the class so that its static{} traversal 
strategy registration component is loaded.
-// this is more important for GraphComputer classes as they 
are typically not instantiated prior to strategy usage like Graph classes.
-final String graphComputerClassName = null != 
graphOrGraphComputerClass.getDeclaringClass() ?
+// this is more important for GraphComputer classes as they 
are typically not instantiated prior to
+// strategy usage like Graph classes.
+if (!LOADED.contains(graphOrGraphComputerClass)) {
+final String graphComputerClassName = null != 
graphOrGraphComputerClass.getDeclaringClass() ?
 
graphOrGraphComputerClass.getCanonicalName().replace("." + 
graphOrGraphComputerClass.getSimpleName(), "$" + 
graphOrGraphComputerClass.getSimpleName()) :
 graphOrGraphComputerClass.getCanonicalName();
-Class.forName(graphComputerClassName);
+Class.forName(graphComputerClassName);
+
+// keep track of stuff we already loaded once - stuff in 
this if/statement isn't cheap and this
+// method gets called a lot, basically every time a new 
traversal gets spun up (that includes
+// child traversals.
+LOADED.add(graphOrGraphComputerClass);
+}
 } catch (final ClassNotFoundException e) {
 throw new IllegalStateException(e.getMessage(), e);
 }
-if (Graph.class.isAssignableFrom(graphOrGraphComputerClass)) {
-final TraversalStrategies traversalStrategies = 
GRAPH_CACHE.get(graphOrGraphComputerClass);
-return null == traversalStrategies ? 
GRAPH_CACHE.get(Graph.class) : traversalStrategies;
+
+if (GRAPH_CACHE.containsKey(graphOrGraphComputerClass)) {
+return GRAPH_CACHE.get(graphOrGraphComputerClass);
+} else if 
(Graph.class.isAssignableFrom(graphOrGraphComputerClass)) {
+return GRAPH_CACHE.get(Graph.class);
+} else if 
(GRAPH_COMPUTER_CACHE.containsKey(graphOrGraphComputerClass)) {
+return 

tinkerpop git commit: Shutdown server in test to try to ensure log flush for assertion

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/tp33 1daf3f122 -> 4705c0416


Shutdown server in test to try to ensure log flush for assertion

Tests that check logs for assertions tend to randomly fail despite a number of 
attempt to try to harden them. In this attempt I shutdown the server prior to 
log assertion in the hopes that it will flush everything through and prevent 
failures. CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4705c041
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4705c041
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4705c041

Branch: refs/heads/tp33
Commit: 4705c0416d522cce4d8c6ec498215f7f446fee4d
Parents: 1daf3f1
Author: Stephen Mallette 
Authored: Fri Apr 20 10:56:34 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 10:56:34 2018 -0400

--
 .../tinkerpop/gremlin/server/GremlinServerIntegrateTest.java  | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4705c041/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
--
diff --git 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 6454ad5..a1689e9 100644
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@ -327,9 +327,12 @@ public class GremlinServerIntegrateTest extends 
AbstractGremlinServerIntegration
 // there record
 Thread.sleep(3000);
 
-assertThat(recordingAppender.logContainsAny(".*Checking channel - 
sending ping to client after idle period of .*$"), is(true));
-
 client.close();
+
+// stop the server to be sure that logs flush
+stopServer();
+
+assertThat(recordingAppender.logContainsAny(".*Checking channel - 
sending ping to client after idle period of .*$"), is(true));
 }
 
 @Test



[1/2] tinkerpop git commit: Shutdown server in test to try to ensure log flush for assertion

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master f4b4d867a -> 5df1ce77a


Shutdown server in test to try to ensure log flush for assertion

Tests that check logs for assertions tend to randomly fail despite a number of 
attempt to try to harden them. In this attempt I shutdown the server prior to 
log assertion in the hopes that it will flush everything through and prevent 
failures. CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4705c041
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4705c041
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4705c041

Branch: refs/heads/master
Commit: 4705c0416d522cce4d8c6ec498215f7f446fee4d
Parents: 1daf3f1
Author: Stephen Mallette 
Authored: Fri Apr 20 10:56:34 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 10:56:34 2018 -0400

--
 .../tinkerpop/gremlin/server/GremlinServerIntegrateTest.java  | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4705c041/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
--
diff --git 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 6454ad5..a1689e9 100644
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@ -327,9 +327,12 @@ public class GremlinServerIntegrateTest extends 
AbstractGremlinServerIntegration
 // there record
 Thread.sleep(3000);
 
-assertThat(recordingAppender.logContainsAny(".*Checking channel - 
sending ping to client after idle period of .*$"), is(true));
-
 client.close();
+
+// stop the server to be sure that logs flush
+stopServer();
+
+assertThat(recordingAppender.logContainsAny(".*Checking channel - 
sending ping to client after idle period of .*$"), is(true));
 }
 
 @Test



[2/2] tinkerpop git commit: Merge branch 'tp33'

2018-04-20 Thread spmallette
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/5df1ce77
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5df1ce77
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5df1ce77

Branch: refs/heads/master
Commit: 5df1ce77a4ae4b0af831081664e9e5d73ee9cc4f
Parents: f4b4d86 4705c04
Author: Stephen Mallette 
Authored: Fri Apr 20 10:58:26 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 10:58:26 2018 -0400

--
 .../tinkerpop/gremlin/server/GremlinServerIntegrateTest.java  | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5df1ce77/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
--



[2/2] tinkerpop git commit: Merge branch 'pr-845'

2018-04-20 Thread spmallette
Merge branch 'pr-845'


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f4b4d867
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f4b4d867
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f4b4d867

Branch: refs/heads/master
Commit: f4b4d867add811c3527a0eebe7f138b6a16e2572
Parents: e2fce7b 70a3723
Author: Stephen Mallette 
Authored: Fri Apr 20 10:08:35 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 10:08:35 2018 -0400

--
 CHANGELOG.asciidoc  |   4 ++--
 docs/src/upgrade/release-3.4.x.asciidoc |   4 ++--
 docs/static/images/avant-gremlin-simple.png | Bin 0 -> 57676 bytes
 docs/static/images/avant-gremlin.png| Bin 0 -> 117645 bytes
 4 files changed, 4 insertions(+), 4 deletions(-)
--




[1/2] tinkerpop git commit: Add name and logo for Gremlin 3.4.x

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master e2fce7bef -> f4b4d867a


Add name and logo for Gremlin 3.4.x


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/70a3723f
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/70a3723f
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/70a3723f

Branch: refs/heads/master
Commit: 70a3723f5563ff68ff8c9332a4278eb9e8f726ae
Parents: 9525626
Author: Joshua Shinavier 
Authored: Thu Apr 19 19:38:58 2018 -0700
Committer: Joshua Shinavier 
Committed: Thu Apr 19 19:38:58 2018 -0700

--
 CHANGELOG.asciidoc  |   4 ++--
 docs/src/upgrade/release-3.4.x.asciidoc |   4 ++--
 docs/static/images/avant-gremlin-simple.png | Bin 0 -> 57676 bytes
 docs/static/images/avant-gremlin.png| Bin 0 -> 117645 bytes
 4 files changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/70a3723f/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 5a3f1aa..8420372 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -16,9 +16,9 @@ limitations under the License.
 
 = TinkerPop3 CHANGELOG
 
-== TinkerPop 3.4.0 (NOT NAMED YET)
+== TinkerPop 3.4.0 (Avant-Gremlin Construction #3 for Theremin and Flowers)
 
-NEED AND IMAGE
+image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/avant-gremlin.png[width=185]
 
 [[release-3-4-0]]
 === TinkerPop 3.4.0 (Release Date: NOT OFFICIALLY RELEASED YET)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/70a3723f/docs/src/upgrade/release-3.4.x.asciidoc
--
diff --git a/docs/src/upgrade/release-3.4.x.asciidoc 
b/docs/src/upgrade/release-3.4.x.asciidoc
index 5a3da78..f673c47 100644
--- a/docs/src/upgrade/release-3.4.x.asciidoc
+++ b/docs/src/upgrade/release-3.4.x.asciidoc
@@ -17,9 +17,9 @@ limitations under the License.
 
 = TinkerPop 3.4.0
 
-NEED AN IMAGE
+image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/avant-gremlin.png[width=225]
 
-*NOT NAMED YET*
+*Avant-Gremlin Construction #3 for Theremin and Flowers*
 
 == TinkerPop 3.4.0
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/70a3723f/docs/static/images/avant-gremlin-simple.png
--
diff --git a/docs/static/images/avant-gremlin-simple.png 
b/docs/static/images/avant-gremlin-simple.png
new file mode 100644
index 000..0c3ebaf
Binary files /dev/null and b/docs/static/images/avant-gremlin-simple.png differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/70a3723f/docs/static/images/avant-gremlin.png
--
diff --git a/docs/static/images/avant-gremlin.png 
b/docs/static/images/avant-gremlin.png
new file mode 100644
index 000..55a318a
Binary files /dev/null and b/docs/static/images/avant-gremlin.png differ



tinkerpop git commit: TINKERPOP-1946 Removed old version of Credentials DSL

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1946 [created] 9458641c7


TINKERPOP-1946 Removed old version of Credentials DSL

This was deprecated on 3.3.3 - it can be removed for 3.4.0


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9458641c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9458641c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9458641c

Branch: refs/heads/TINKERPOP-1946
Commit: 9458641c77605a9518bf885eadb6716646ce4006
Parents: e2fce7b
Author: Stephen Mallette 
Authored: Fri Apr 20 10:02:54 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 10:02:54 2018 -0400

--
 CHANGELOG.asciidoc  |   1 +
 .../jsr223/dsl/credential/CredentialGraph.java  | 123 ---
 .../CredentialGraphGremlinPlugin.java   |   2 -
 .../dsl/credential/CredentialGraphTest.java | 122 --
 4 files changed, 1 insertion(+), 247 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9458641c/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 5a3f1aa..d903000 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -30,6 +30,7 @@ This release also includes changes from <>.
 * `hadoop-gremlin` no longer generates a test artifact.
 * Fixed a bug in `ReducingBarrierStep`, that returned the provided seed value 
despite no elements being available.
 * Changed the order of `select()` scopes. The order is now: maps, 
side-effects, paths.
+* Removed previously deprecated Credentials DSL infrastructure.
 * Moved `TraversalEngine` to `gremlin-test` as it has long been only used in 
testing infrastructure.
 * Removed previously deprecated `rebindings` options from the Java driver API.
 * Removed support for Giraph.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9458641c/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/dsl/credential/CredentialGraph.java
--
diff --git 
a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/dsl/credential/CredentialGraph.java
 
b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/dsl/credential/CredentialGraph.java
deleted file mode 100644
index 0ae8e00..000
--- 
a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/dsl/credential/CredentialGraph.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * 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.groovy.jsr223.dsl.credential;
-
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.structure.Graph;
-import org.apache.tinkerpop.gremlin.structure.T;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.mindrot.jbcrypt.BCrypt;
-
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.drop;
-
-/**
- * A DSL for managing a "credentials graph" used by Gremlin Server for simple 
authentication functions.  If the
- * {@link Graph} is transactional, new transactions will be started for each 
method call.
- *
- * @author Stephen Mallette (http://stephen.genoprime.com)
- * @deprecated As of release 3.3.3, replaced by {@link  
CredentialTraversalDsl}.
- */
-@Deprecated
-public class CredentialGraph {
-
-private final int BCRYPT_ROUNDS = 4;
-private final Graph graph;
-private final GraphTraversalSource g;
-private final boolean supportsTransactions;
-
-public CredentialGraph(final Graph graph) {
-this.graph = graph;
-g = graph.traversal();
-supportsTransactions = graph.features().graph().supportsTransactions();
-}
-
-/**
- * Finds a user by username and return {@code null} if one 

[1/2] tinkerpop git commit: Refactored SimpleAuthenticator to use the revised Credentials DSL

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master f2a59544b -> e2fce7bef


Refactored SimpleAuthenticator to use the revised Credentials DSL

This should have been done on TINKERPOP-1903 but was missed CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1daf3f12
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1daf3f12
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1daf3f12

Branch: refs/heads/master
Commit: 1daf3f12243a9a29ba3a00729a3fe4f2f76eccdd
Parents: 38b85d2
Author: Stephen Mallette 
Authored: Fri Apr 20 09:26:14 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 09:26:14 2018 -0400

--
 .../server/auth/SimpleAuthenticator.java| 32 +---
 1 file changed, 15 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1daf3f12/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
--
diff --git 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
index 8d90bf8..88e4e70 100644
--- 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
+++ 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
@@ -18,17 +18,17 @@
  */
 package org.apache.tinkerpop.gremlin.server.auth;
 
-import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialGraph;
+import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialTraversal;
+import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialTraversalDsl;
+import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.tinkerpop.gremlin.structure.io.IoCore;
 import org.apache.tinkerpop.gremlin.structure.util.GraphFactory;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
 import org.mindrot.jbcrypt.BCrypt;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
 import java.net.InetAddress;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
@@ -40,14 +40,14 @@ import static 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.Credenti
 
 /**
  * A simple implementation of an {@link Authenticator} that uses a {@link 
Graph} instance as a credential store.
- * Management of the credential store can be handled through the {@link 
CredentialGraph} DSL.
+ * Management of the credential store can be handled through the {@link 
CredentialTraversalDsl} DSL.
  *
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 public class SimpleAuthenticator implements Authenticator {
 private static final Logger logger = 
LoggerFactory.getLogger(SimpleAuthenticator.class);
 private static final byte NUL = 0;
-private CredentialGraph credentialStore;
+private CredentialTraversalSource credentialStore;
 
 /**
  * The location of the configuration file that contains the credentials 
database.
@@ -82,7 +82,7 @@ public class SimpleAuthenticator implements Authenticator {
 tinkerGraph.createIndex(PROPERTY_USERNAME, Vertex.class);
 }
 
-credentialStore = CredentialGraph.credentials(graph);
+credentialStore = graph.traversal(CredentialTraversalSource.class);
 logger.info("CredentialGraph initialized at {}", credentialStore);
 }
 
@@ -98,17 +98,15 @@ public class SimpleAuthenticator implements Authenticator {
 
 final String username = credentials.get(PROPERTY_USERNAME);
 final String password = credentials.get(PROPERTY_PASSWORD);
-try {
-user = credentialStore.findUser(username);
-} catch (IllegalStateException ex) {
-// typically thrown when there are multiple users with the same 
name in the credential store
-logger.warn(ex.getMessage());
-throw new AuthenticationException("Username and/or password are 
incorrect", ex);
-} catch (Exception ex) {
-throw new AuthenticationException("Username and/or password are 
incorrect", ex);
-}
+final CredentialTraversal t = 
credentialStore.users(username);
+if (!t.hasNext())
+throw new AuthenticationException("Username and/or password are 
incorrect");
 
-if (null == user)  throw new AuthenticationException("Username and/or 
password are incorrect");
+user 

tinkerpop git commit: Refactored SimpleAuthenticator to use the revised Credentials DSL

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/tp33 38b85d2f0 -> 1daf3f122


Refactored SimpleAuthenticator to use the revised Credentials DSL

This should have been done on TINKERPOP-1903 but was missed CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1daf3f12
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1daf3f12
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1daf3f12

Branch: refs/heads/tp33
Commit: 1daf3f12243a9a29ba3a00729a3fe4f2f76eccdd
Parents: 38b85d2
Author: Stephen Mallette 
Authored: Fri Apr 20 09:26:14 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 09:26:14 2018 -0400

--
 .../server/auth/SimpleAuthenticator.java| 32 +---
 1 file changed, 15 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1daf3f12/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
--
diff --git 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
index 8d90bf8..88e4e70 100644
--- 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
+++ 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
@@ -18,17 +18,17 @@
  */
 package org.apache.tinkerpop.gremlin.server.auth;
 
-import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialGraph;
+import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialTraversal;
+import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialTraversalDsl;
+import 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.CredentialTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.tinkerpop.gremlin.structure.io.IoCore;
 import org.apache.tinkerpop.gremlin.structure.util.GraphFactory;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
 import org.mindrot.jbcrypt.BCrypt;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
 import java.net.InetAddress;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
@@ -40,14 +40,14 @@ import static 
org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.Credenti
 
 /**
  * A simple implementation of an {@link Authenticator} that uses a {@link 
Graph} instance as a credential store.
- * Management of the credential store can be handled through the {@link 
CredentialGraph} DSL.
+ * Management of the credential store can be handled through the {@link 
CredentialTraversalDsl} DSL.
  *
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 public class SimpleAuthenticator implements Authenticator {
 private static final Logger logger = 
LoggerFactory.getLogger(SimpleAuthenticator.class);
 private static final byte NUL = 0;
-private CredentialGraph credentialStore;
+private CredentialTraversalSource credentialStore;
 
 /**
  * The location of the configuration file that contains the credentials 
database.
@@ -82,7 +82,7 @@ public class SimpleAuthenticator implements Authenticator {
 tinkerGraph.createIndex(PROPERTY_USERNAME, Vertex.class);
 }
 
-credentialStore = CredentialGraph.credentials(graph);
+credentialStore = graph.traversal(CredentialTraversalSource.class);
 logger.info("CredentialGraph initialized at {}", credentialStore);
 }
 
@@ -98,17 +98,15 @@ public class SimpleAuthenticator implements Authenticator {
 
 final String username = credentials.get(PROPERTY_USERNAME);
 final String password = credentials.get(PROPERTY_PASSWORD);
-try {
-user = credentialStore.findUser(username);
-} catch (IllegalStateException ex) {
-// typically thrown when there are multiple users with the same 
name in the credential store
-logger.warn(ex.getMessage());
-throw new AuthenticationException("Username and/or password are 
incorrect", ex);
-} catch (Exception ex) {
-throw new AuthenticationException("Username and/or password are 
incorrect", ex);
-}
+final CredentialTraversal t = 
credentialStore.users(username);
+if (!t.hasNext())
+throw new AuthenticationException("Username and/or password are 
incorrect");
 
-if (null == user)  throw new AuthenticationException("Username and/or 
password are incorrect");
+user = 

[2/2] tinkerpop git commit: Merge branch 'tp33'

2018-04-20 Thread spmallette
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/e2fce7be
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e2fce7be
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e2fce7be

Branch: refs/heads/master
Commit: e2fce7bef715a1d6c18c788e8046c186254165ce
Parents: f2a5954 1daf3f1
Author: Stephen Mallette 
Authored: Fri Apr 20 09:27:46 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 09:27:46 2018 -0400

--
 .../server/auth/SimpleAuthenticator.java| 32 +---
 1 file changed, 15 insertions(+), 17 deletions(-)
--




tinkerpop git commit: JavaScript GLV: Document lack of GraphSON3 support

2018-04-20 Thread jorgebg
Repository: tinkerpop
Updated Branches:
  refs/heads/js-doc-graphson3 [created] 7d0d83705


JavaScript GLV: Document lack of GraphSON3 support


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/7d0d8370
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/7d0d8370
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/7d0d8370

Branch: refs/heads/js-doc-graphson3
Commit: 7d0d83705d515896dae604137f2dec73d786034e
Parents: 38b85d2
Author: Jorge Bay Gondra 
Authored: Fri Apr 20 14:15:02 2018 +0200
Committer: Jorge Bay Gondra 
Committed: Fri Apr 20 14:15:02 2018 +0200

--
 docs/src/reference/gremlin-variants.asciidoc | 13 +
 1 file changed, 13 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7d0d8370/docs/src/reference/gremlin-variants.asciidoc
--
diff --git a/docs/src/reference/gremlin-variants.asciidoc 
b/docs/src/reference/gremlin-variants.asciidoc
index f731702..2ba9966 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -499,6 +499,19 @@ Very similar to Gremlin-Python and Gremlin-Java, there are 
various ways to submi
 * `Traversal.next()`
 * `Traversal.toList()`
 
+=== GraphSON3 Support
+
+GraphSON3, which is the default serialization format in Gremlin Server 3.3+, 
is not yet supported in Gremlin-JavaScript.
+We are planning to support it in the upcoming versions. In the meantime, if 
you want to use Gremlin-JavaScript against
+the Gremlin Server 3.3 you must include the GraphSON2 serializer.
+
+In the server yaml configuration file, add the following line under 
`serializers`:
+
+[source]
+
+  - { className: 
org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, 
config: { ioRegistries: 
[org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0] }}
+
+
 === Static Enums and Methods
 
 Gremlin has various tokens (e.g. `t`, `P`, `order`, `direction`, etc.) that 
are represented in Gremlin-JavaScript as



tinkerpop git commit: Fix JavaScript Gremlin documentation

2018-04-20 Thread jorgebg
Repository: tinkerpop
Updated Branches:
  refs/heads/js-doc-fixes [created] b6aa8302e


Fix JavaScript Gremlin documentation

Several fixes to the JavaScript GLV documentation:
- Use 'gremlin' package name
- Include information regarding Promises
- Reference DriverRemoteConnection not exported
- Fix method names


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b6aa8302
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b6aa8302
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b6aa8302

Branch: refs/heads/js-doc-fixes
Commit: b6aa8302ed10277f8c5b3892b7b6ddb9c56c452c
Parents: 2591302
Author: Jorge Bay Gondra 
Authored: Fri Apr 20 14:04:10 2018 +0200
Committer: Jorge Bay Gondra 
Committed: Fri Apr 20 14:04:10 2018 +0200

--
 docs/src/reference/gremlin-variants.asciidoc | 45 +++
 1 file changed, 37 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b6aa8302/docs/src/reference/gremlin-variants.asciidoc
--
diff --git a/docs/src/reference/gremlin-variants.asciidoc 
b/docs/src/reference/gremlin-variants.asciidoc
index d929b3c..1632e59 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -458,17 +458,32 @@ their Java counterparts which makes it possible to use 
lambdas with Gremlin.Net
 == Gremlin-JavaScript
 
 image:gremlin-js.png[width=130,float=right] Apache TinkerPop's 
Gremlin-JavaScript implements Gremlin within the
-JavaScript language. It targets Node.js runtime and can be used on different 
operating systems on any Node.js 4 or
+JavaScript language. It targets Node.js runtime and can be used on different 
operating systems on any Node.js 6 or
 above. Since the JavaScript naming conventions are very similar to that of 
Java, it should be very easy to switch
 between Gremlin-Java and Gremlin-JavaScript.
 
 [source,bash]
-npm install gremlin-javascript
+npm install gremlin
 
 The Gremlin-JavaScript provides `GraphTraversalSource`, `GraphTraversal`, and 
`__` which mirror the respective classes
 in Gremlin-Java. The `GraphTraversalSource` requires a RemoteConnection 
implementation in order to communicate with
 <>.
 
+[source,javascript]
+
+const gremlin = require('gremlin');
+const Graph = gremlin.structure.Graph;
+
+
+The `DriverRemoteConnection` class is not exported due to a bug in the 
implementation as detailed in
+link:https://issues.apache.org/jira/browse/TINKERPOP-1944[the ticket 
TINKERPOP-1944], that is going to be fixed in
+the upcoming version of the GLV. In the meantime, you can import the 
`DriverRemoteConnection` class by using:
+
+[source,javascript]
+
+const DriverRemoteConnection = 
require('./node_modules/gremlin/lib/driver/driver-remote-connection');
+
+
 A traversal source can be spawned with `RemoteStrategy` from an empty `Graph`.
 
 [source,javascript]
@@ -489,27 +504,41 @@ IMPORTANT: Gremlin-JavaScript’s `Traversal` base class 
supports the standard G
 
 === RemoteConnection Submission
 
-Very similar to Gremlin-Python and Gremlin-Java, there are various ways to 
submit a traversal to a
+In a similar way as in other GLVs, there are various ways to submit a 
traversal to a
 `RemoteConnection` using terminal/action methods off of `Traversal`.
 
 * `Traversal.next()`
 * `Traversal.toList()`
 
+Given that I/O operations in Node.js are asynchronous by default, this 
terminal methods return a Promise. For example:
+
+[source,javascript]
+
+g.V().hasLabel('person').values('name').toList()
+  .then(names => console.log(names));
+
+
+You can `await` the promises if you are using `async` functions.
+
+[source,javascript]
+
+const names = await g.V().hasLabel('person').values('name').toList();
+console.log(names);
+
+
 === Static Enums and Methods
 
 Gremlin has various tokens (e.g. `t`, `P`, `order`, `direction`, etc.) that 
are represented in Gremlin-JavaScript as
 objects.
 
-These can be used analogously to how they are used in Gremlin-Java.
-
 [source,javascript]
-g.V().hasLabel("person").has("age",P.gt(30)).Order().By("age", 
order.decr).toList()
+g.V().hasLabel('person').has('age', P.gt(30)).order().by('age', 
order.decr).toList()
 
 These objects must be required manually from the `process` namespace:
 
 [source,javascript]
 
-const gremlin = require('gremlin-javascript');
+const gremlin = require('gremlin');
 const P = gremlin.process.P;
 
 
@@ -517,7 +546,7 @@ Finally, using static `__` anonymous traversals like 
`__.out()` can be expressed
 
 [source,javascript]
 
-const gremlin = require('gremlin-javascript');
+const gremlin = 

svn commit: r1829646 - in /tinkerpop/site: downloads.html gremlin.html index.html providers.html

2018-04-20 Thread spmallette
Author: spmallette
Date: Fri Apr 20 11:08:45 2018
New Revision: 1829646

URL: http://svn.apache.org/viewvc?rev=1829646=rev
Log:
Deploy TinkerPop homepage

Modified:
tinkerpop/site/downloads.html
tinkerpop/site/gremlin.html
tinkerpop/site/index.html
tinkerpop/site/providers.html

Modified: tinkerpop/site/downloads.html
URL: 
http://svn.apache.org/viewvc/tinkerpop/site/downloads.html?rev=1829646=1829645=1829646=diff
==
--- tinkerpop/site/downloads.html (original)
+++ tinkerpop/site/downloads.html Fri Apr 20 11:08:45 2018
@@ -629,7 +629,7 @@ limitations under the License.
 
 Note that upgrade documentation was only introduced at 
3.1.1-incubating which is why there are no links "upgrade" links in versions 
prior to that one.
 Verifying Downloads
-All downloads have associated PGP and MD5 signatures to help verify a 
distribution provided by a mirror. To verify a distribution via PGP or GPG 
first download the
+All downloads have associated PGP and SHA1 signatures to help verify a 
distribution provided by a mirror. To verify a distribution via PGP or GPG 
first download the
https://www.apache.org/dist/tinkerpop/KEYS;>KEYS file (it 
is important to use the linked file which is from the main distribution 
directory and not a
mirror. Next download the appropriate "asc" signature file for the 
relevant distribution (again, this file should come from the https://www.apache.org/dist/tinkerpop/;>main
distribution directory - note that older releases will have such 
files in the https://archive.apache.org/dist/tinkerpop/;>archives 
or if released under Apache
@@ -655,7 +655,7 @@ limitations under the License.
   gpg --verify apache-gremlin-console-x.y.z-bin.zip.asc 
apache-gremlin-console-x.y.z-bin.zip
   
 
-Alternatively, consider verifying the MD5 signature on the files. An 
MD5 signature consists of 32 hex characters, and a SHA1 signature consists of 
40 hex characters.
+Alternatively, consider verifying the SHA1 signature on the files. An 
SHA1 signature consists of 40 hex characters.
Ensure that the generated signature string matches the signature string 
published in the files above.
  
 

Modified: tinkerpop/site/gremlin.html
URL: 
http://svn.apache.org/viewvc/tinkerpop/site/gremlin.html?rev=1829646=1829645=1829646=diff
==
--- tinkerpop/site/gremlin.html (original)
+++ tinkerpop/site/gremlin.html Fri Apr 20 11:08:45 2018
@@ -478,7 +478,7 @@ GraphTraversalSource g;
 g = graph.traversal(); 
// local OLTP
 g = graph.traversal().withRemote(DriverRemoteConnection.using("server.yaml"))  
// remote OLTP
 g = graph.traversal().withComputer(SparkGraphComputer.class);  
// distributed OLAP/code>
-
+  


 
@@ -529,6 +529,8 @@ g = graph.traversal().withComputer(Spark
   });

 
+
+
  
 
   

Modified: tinkerpop/site/index.html
URL: 
http://svn.apache.org/viewvc/tinkerpop/site/index.html?rev=1829646=1829645=1829646=diff
==
--- tinkerpop/site/index.html (original)
+++ tinkerpop/site/index.html Fri Apr 20 11:08:45 2018
@@ -385,6 +385,7 @@ limitations under the License.
 http://syncleus.com/Ferma/;>Ferma (java/dsl) - An 
ORM / OGM for Apache TinkerPop.
 https://github.com/davebshow/goblin;>Goblin 
(python/dsl) - Goblin OGM for the TinkerPop 3 Gremlin Server.
 http://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet;>Gremlin.Net
 (.NET - C#/variant) - Gremlin hosted in C# for use with any .NET-based VM.
+http://tinkerpop.apache.org/docs/current/reference/#gremlin-javascript;>gremlin-javascript
 (js) - Gremlin hosted in JavaScript for use with Node.js.
 https://github.com/gremlin-orm/gremlin-orm;>gremlin-orm (javascript) 
Gremlin ORM for Node.js.
 http://tinkerpop.apache.org/docs/current/reference/#gremlin-python;>gremlin-python
 (python/variant) - Gremlin hosted in Python for use with any Python-based 
VM.
 https://github.com/emehrkay/gremlinpy;>gremlin-py 
(python/variant) - Write pure Python Gremlin that can be sent to Gremlin 
Server.
@@ -403,7 +404,6 @@ limitations under the License.
 https://github.com/davebshow/gremlinclient;>gremlinclient (python) - 
An asynchronous Python 2/3 client for Gremlin Server that allows for flexible 
coroutine syntax - Trollius, Tornado, Asyncio.
 https://github.com/marcelocf/gremlin_client;>gremlin_client (ruby) - 
A Gremlin Server driver for Ruby.
 http://tinkerpop.apache.org/docs/current/reference/#connecting-via-java;>gremlin-driver
 (java) - A Gremlin Server driver for Java.
-

tinkerpop git commit: TINKERPOP-1949 Fixed some formatting problems on the web site CTR

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master 12d2aef84 -> f2a59544b


TINKERPOP-1949 Fixed some formatting problems on the web site CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f2a59544
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f2a59544
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f2a59544

Branch: refs/heads/master
Commit: f2a59544b3a38e447a84aee81cf54db4edaf7daf
Parents: 12d2aef
Author: Stephen Mallette 
Authored: Fri Apr 20 07:07:14 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 07:07:14 2018 -0400

--
 docs/site/home/gremlin.html   | 4 +++-
 docs/site/home/providers.html | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2a59544/docs/site/home/gremlin.html
--
diff --git a/docs/site/home/gremlin.html b/docs/site/home/gremlin.html
index a9e224b..3b1a86b 100644
--- a/docs/site/home/gremlin.html
+++ b/docs/site/home/gremlin.html
@@ -340,7 +340,7 @@ GraphTraversalSource g;
 g = graph.traversal(); 
// local OLTP
 g = graph.traversal().withRemote(DriverRemoteConnection.using("server.yaml"))  
// remote OLTP
 g = graph.traversal().withComputer(SparkGraphComputer.class);  
// distributed OLAP/code>
-
+  


 
@@ -391,5 +391,7 @@ g = 
graph.traversal().withComputer(SparkGraphComputer.class);  /
   });

 
+
+
  
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2a59544/docs/site/home/providers.html
--
diff --git a/docs/site/home/providers.html b/docs/site/home/providers.html
index 7a2396d..6738831 100644
--- a/docs/site/home/providers.html
+++ b/docs/site/home/providers.html
@@ -373,4 +373,6 @@ WHERE(Created.by(Friends.of("gremlin")))
  });
   

+   
+   
 



tinkerpop git commit: Moved gremlin-javascript to "languages" in the index and pointed it at our docs CTR

2018-04-20 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/master 952562609 -> 12d2aef84


Moved gremlin-javascript to "languages" in the index and pointed it at our docs 
CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/12d2aef8
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/12d2aef8
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/12d2aef8

Branch: refs/heads/master
Commit: 12d2aef8425b6d322637d85177e878c92bf1242e
Parents: 9525626
Author: Stephen Mallette 
Authored: Fri Apr 20 06:47:30 2018 -0400
Committer: Stephen Mallette 
Committed: Fri Apr 20 06:47:30 2018 -0400

--
 docs/site/home/index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/12d2aef8/docs/site/home/index.html
--
diff --git a/docs/site/home/index.html b/docs/site/home/index.html
index c28a012..9c74b5d 100644
--- a/docs/site/home/index.html
+++ b/docs/site/home/index.html
@@ -247,6 +247,7 @@ limitations under the License.
 http://syncleus.com/Ferma/;>Ferma (java/dsl) - An 
ORM / OGM for Apache TinkerPop.
 https://github.com/davebshow/goblin;>Goblin 
(python/dsl) - Goblin OGM for the TinkerPop 3 Gremlin Server.
 http://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet;>Gremlin.Net
 (.NET - C#/variant) - Gremlin hosted in C# for use with any .NET-based VM.
+http://tinkerpop.apache.org/docs/current/reference/#gremlin-javascript;>gremlin-javascript
 (js) - Gremlin hosted in JavaScript for use with Node.js.
 https://github.com/gremlin-orm/gremlin-orm;>gremlin-orm (javascript) 
Gremlin ORM for Node.js.
 http://tinkerpop.apache.org/docs/current/reference/#gremlin-python;>gremlin-python
 (python/variant) - Gremlin hosted in Python for use with any Python-based 
VM.
 https://github.com/emehrkay/gremlinpy;>gremlin-py 
(python/variant) - Write pure Python Gremlin that can be sent to Gremlin 
Server.
@@ -265,7 +266,6 @@ limitations under the License.
 https://github.com/davebshow/gremlinclient;>gremlinclient (python) - 
An asynchronous Python 2/3 client for Gremlin Server that allows for flexible 
coroutine syntax - Trollius, Tornado, Asyncio.
 https://github.com/marcelocf/gremlin_client;>gremlin_client (ruby) - 
A Gremlin Server driver for Ruby.
 http://tinkerpop.apache.org/docs/current/reference/#connecting-via-java;>gremlin-driver
 (java) - A Gremlin Server driver for Java.
-https://github.com/jbmusso/gremlin-javascript;>gremlin-javascript 
(js) - A Gremlin Server driver for JavaScript.
 https://github.com/qasaur/gremgo;>gremgo (go) - A 
Gremlin Server driver for Go.
 http://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet;>Gremlin.Net
 (.NET - C#) - Gremlin Server driver for .NET.
 https://github.com/PommeVerte/gremlin-php;>gremlin-php (php) - A 
Gremlin Server driver for PHP.