You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/07/10 09:56:56 UTC

[tinkerpop] branch master updated (c982841 -> 508981c)

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

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git.


    from c982841  Merge branch 'tp34'
     new e23baf7  Expanded server tests to better cover all binary serializers CTR
     new 6c755e8  Deprecated some gryo related fields tied to server operations CTR
     new 508981c  Merge branch 'tp34'

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc                                 |   2 +
 .../tinkerpop/gremlin/driver/ser/SerTokens.java    |  19 +++-
 .../tinkerpop/gremlin/driver/ser/Serializers.java  |  16 ++++
 .../server/GremlinResultSetIntegrateTest.java      | 101 +++++++++++----------
 4 files changed, 87 insertions(+), 51 deletions(-)


[tinkerpop] 02/03: Deprecated some gryo related fields tied to server operations CTR

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 6c755e884f0037712aff6792e1d24517d97cbde4
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Jul 10 05:55:43 2019 -0400

    Deprecated some gryo related fields tied to server operations CTR
---
 CHANGELOG.asciidoc                                    |  2 ++
 .../tinkerpop/gremlin/driver/ser/SerTokens.java       | 19 ++++++++++++++++++-
 .../tinkerpop/gremlin/driver/ser/Serializers.java     | 16 ++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index af8bc58..3855f96 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,8 @@ This release also includes changes from <<release-3-3-8, 3.3.8>>.
 * Added a `toString()` serializer for GraphBinary.
 * Configured the Gremlin Console to use GraphBinary by default.
 * Deprecated `MessageSerializer` implementations for Gryo in Gremlin Server.
+* Deprecated `Serializers` enum values of `GRYO_V1D0` and `GRYO_V3D0`.
+* Deprecated `SerTokens` values of `MIME_GRYO_V1D0` and `MIME_GRYO_V3D0`.
 * Added a Docker command to start Gremlin Server with the standard GLV test configurations.
 * Added `aggregate(Scope,String)` and deprecated `store()` in favor of `aggregate(local)`.
 * Modified `NumberHelper` to better ignore `Double.NaN` in `min()` and `max()` comparisons.
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/SerTokens.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/SerTokens.java
index f3de78e..5ccb8dd 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/SerTokens.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/SerTokens.java
@@ -18,10 +18,12 @@
  */
 package org.apache.tinkerpop.gremlin.driver.ser;
 
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy;
+
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
-public final  class SerTokens {
+public final class SerTokens {
     private SerTokens() {}
 
     public static final String TOKEN_ATTRIBUTES = "attributes";
@@ -40,8 +42,23 @@ public final  class SerTokens {
     public static final String MIME_GRAPHSON_V1D0 = "application/vnd.gremlin-v1.0+json";
     public static final String MIME_GRAPHSON_V2D0 = "application/vnd.gremlin-v2.0+json";
     public static final String MIME_GRAPHSON_V3D0 = "application/vnd.gremlin-v3.0+json";
+
+    /**
+     * @deprecated As of release 3.4.3, replaced by {@link #MIME_GRAPHBINARY_V1D0}.
+     */
+    @Deprecated
     public static final String MIME_GRYO_V1D0 = "application/vnd.gremlin-v1.0+gryo";
+
+    /**
+     * @deprecated As of release 3.4.3, replaced by {@link #MIME_GRAPHBINARY_V1D0}.
+     */
+    @Deprecated
     public static final String MIME_GRYO_V3D0 = "application/vnd.gremlin-v3.0+gryo";
+
+    /**
+     * @deprecated As of release 3.2.6, not directly replaced - supported through {@link HaltedTraverserStrategy}.
+     */
+    @Deprecated
     public static final String MIME_GRYO_LITE_V1D0 = "application/vnd.gremlin-v1.0+gryo-lite";
     public static final String MIME_GRAPHBINARY_V1D0 = "application/vnd.graphbinary-v1.0";
 }
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
index 3cf32e9..378087f 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
@@ -19,6 +19,7 @@
 package org.apache.tinkerpop.gremlin.driver.ser;
 
 import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy;
 
 /**
  * An enum of the default serializers.
@@ -34,8 +35,23 @@ public enum Serializers {
     GRAPHSON_V2D0(SerTokens.MIME_GRAPHSON_V2D0),
     GRAPHSON_V3D0(SerTokens.MIME_GRAPHSON_V3D0),
     GRAPHBINARY_V1D0(SerTokens.MIME_GRAPHBINARY_V1D0),
+
+    /**
+     * @deprecated As of release 3.4.3, replaced by {@link #GRAPHBINARY_V1D0}.
+     */
+    @Deprecated
     GRYO_V1D0(SerTokens.MIME_GRYO_V1D0),
+
+    /**
+     * @deprecated As of release 3.4.3, replaced by {@link #GRAPHBINARY_V1D0}.
+     */
+    @Deprecated
     GRYO_V3D0(SerTokens.MIME_GRYO_V3D0),
+
+    /**
+     * @deprecated As of release 3.2.6, not directly replaced - supported through {@link HaltedTraverserStrategy}.
+     */
+    @Deprecated
     GRYO_LITE_V1D0(SerTokens.MIME_GRYO_LITE_V1D0);
 
     private String value;


[tinkerpop] 01/03: Expanded server tests to better cover all binary serializers CTR

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e23baf7c4538ff879daeed274a719d5f2998ef08
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Jul 10 05:55:12 2019 -0400

    Expanded server tests to better cover all binary serializers CTR
---
 .../server/GremlinResultSetIntegrateTest.java      | 101 +++++++++++----------
 1 file changed, 51 insertions(+), 50 deletions(-)

diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
index 2f3090a..b002d36 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
@@ -24,9 +24,10 @@ import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
 import org.apache.tinkerpop.gremlin.driver.Result;
 import org.apache.tinkerpop.gremlin.driver.ResultSet;
 import org.apache.tinkerpop.gremlin.driver.Tokens;
+import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1;
+import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0;
 import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0;
 import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
-import org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin;
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -36,51 +37,75 @@ import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.io.IoTest;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedPath;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedProperty;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexProperty;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceEdge;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferencePath;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceProperty;
 import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertexProperty;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0;
-import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.hamcrest.CoreMatchers;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
-import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
 
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
+@RunWith(Parameterized.class)
 public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrationTest {
 
     private Cluster cluster;
     private Client client;
 
+    @Parameterized.Parameters(name = "{0}")
+    public static Iterable<Object[]> data() {
+        final MessageSerializer graphBinaryMessageSerializerV1 = new GraphBinaryMessageSerializerV1();
+
+        // must configure Gryo with "custom" since it's configured on the server
+        final MessageSerializer gryoMessageSerializerV3d0 = new GryoMessageSerializerV3d0();
+        final Map<String,Object> gryoV3d0Config = new HashMap<>();
+        gryoV3d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
+        gryoV3d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
+        gryoMessageSerializerV3d0.configure(gryoV3d0Config, null);
+
+        final MessageSerializer gryoMessageSerializerV1d0 = new GryoMessageSerializerV1d0();
+        final Map<String,Object> gryoV1d0Config = new HashMap<>();
+        gryoV1d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
+        gryoV1d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
+        gryoMessageSerializerV1d0.configure(gryoV1d0Config, null);
+
+        return Arrays.asList(new Object[][]{
+                {Serializers.GRAPHBINARY_V1D0, graphBinaryMessageSerializerV1},
+                {Serializers.GRYO_V3D0, gryoMessageSerializerV3d0},
+                {Serializers.GRYO_V1D0, gryoMessageSerializerV1d0}
+        });
+    }
+
+    @Parameterized.Parameter(value = 0)
+    public Serializers name;
+
+    @Parameterized.Parameter(value = 1)
+    public MessageSerializer messageSerializer;
+
     @Before
     public void beforeTest() {
-        final MessageSerializer serializer = new GryoMessageSerializerV3d0();
-        final Map<String,Object> c = new HashMap<>();
-        c.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
-        c.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
-
-        serializer.configure(c, null);
-        cluster = TestClientFactory.build().serializer(serializer).create();
+        cluster = TestClientFactory.build().serializer(messageSerializer).create();
         client = cluster.connect();
     }
 
@@ -135,19 +160,9 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
 
     @Test
     public void shouldHandleVertexResult() throws Exception {
-        final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).V(1).next()");
+        final ResultSet results = client.submit("gmodern.V(1).next()");
         final Vertex v = results.all().get().get(0).getVertex();
-        assertThat(v, instanceOf(DetachedVertex.class));
-
-        assertEquals("marko", v.properties("name").next().value());
-        v.properties().forEachRemaining(p -> {
-            if (p.key().equals("name"))
-                assertEquals("marko", p.value());
-            else if (p.key().equals("age"))
-                assertEquals(29, p.value());
-            else
-                fail("Should not have any other keys besides 'name' and 'age'");
-        });
+        assertThat(v, instanceOf(ReferenceVertex.class));
     }
 
     @Test
@@ -160,35 +175,34 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
 
         assertEquals(1, v.id());
         assertEquals("person", v.label());
-        assertEquals(0, IteratorUtils.count(v.properties()));
     }
 
     @Test
     public void shouldHandleVertexPropertyResult() throws Exception {
-        final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).V().properties('name').next()");
+        final ResultSet results = client.submit("gmodern.V().properties('name').next()");
         final VertexProperty<String> v = results.all().get().get(0).getVertexProperty();
-        assertThat(v, instanceOf(DetachedVertexProperty.class));
+        assertThat(v, instanceOf(ReferenceVertexProperty.class));
     }
 
     @Test
     public void shouldHandleEdgeResult() throws Exception {
-        final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).E().next()");
+        final ResultSet results = client.submit("gmodern.E().next()");
         final Edge e = results.all().get().get(0).getEdge();
-        assertThat(e, instanceOf(DetachedEdge.class));
+        assertThat(e, instanceOf(ReferenceEdge.class));
     }
 
     @Test
     public void shouldHandlePropertyResult() throws Exception {
-        final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).E().properties('weight').next()");
+        final ResultSet results = client.submit("gmodern.E().properties('weight').next()");
         final Property<Double> p = results.all().get().get(0).getProperty();
-        assertThat(p, instanceOf(DetachedProperty.class));
+        assertThat(p, instanceOf(ReferenceProperty.class));
     }
 
     @Test
     public void shouldHandlePathResult() throws Exception {
-        final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).V().out().path()");
+        final ResultSet results = client.submit("gmodern.V().out().path()");
         final Path p = results.all().get().get(0).getPath();
-        assertThat(p, instanceOf(DetachedPath.class));
+        assertThat(p, instanceOf(ReferencePath.class));
     }
 
     @Test
@@ -211,17 +225,4 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
         assertEquals(3L, m.get(1L));
         assertEquals(3L, m.get(3L));
     }
-
-    @Test
-    public void shouldHandleMapObjectResult() throws Exception {
-        final ResultSet results = client.submit("gmodern.V().groupCount().by(bothE().count()).next()");
-        final List<Result> resultList = results.all().get();
-        assertEquals(2, resultList.size());
-        final Map.Entry firstEntry = resultList.get(0).get(HashMap.Entry.class);
-        final Map.Entry secondEntry = resultList.get(1).get(HashMap.Entry.class);
-        assertThat(firstEntry.getKey(), anyOf(is(3L), is(1L)));
-        assertThat(firstEntry.getValue(), is(3L));
-        assertThat(secondEntry.getKey(), anyOf(is(3L), is(1L)));
-        assertThat(secondEntry.getValue(), is(3L));
-    }
 }


[tinkerpop] 03/03: Merge branch 'tp34'

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 508981c72065fe3f488a98ad533102f1af0946d9
Merge: c982841 6c755e8
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Jul 10 05:56:44 2019 -0400

    Merge branch 'tp34'

 CHANGELOG.asciidoc                                 |   2 +
 .../tinkerpop/gremlin/driver/ser/SerTokens.java    |  19 +++-
 .../tinkerpop/gremlin/driver/ser/Serializers.java  |  16 ++++
 .../server/GremlinResultSetIntegrateTest.java      | 101 +++++++++++----------
 4 files changed, 87 insertions(+), 51 deletions(-)