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/09/04 13:22:30 UTC
[tinkerpop] 20/40: Added graphbinary test files in gremlin-io-test
for 3.4.3
This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch TINKERPOP-2279
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 915462f2749623294574d6392102661c4dd3bd2b
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Fri Aug 2 10:50:00 2019 -0400
Added graphbinary test files in gremlin-io-test for 3.4.3
---
.../jython/gremlin_python/process/traversal.py | 2 +-
gremlin-tools/gremlin-io-test/pom.xml | 26 ++++++
.../scripts/generate-graphbinary-resources.groovy | 81 +++++++++++++++++++
.../tinkerpop/gremlin/structure/io/Model.java | 16 +++-
.../io/graphbinary/GraphBinaryCompatibility.java | 86 ++++++++++++++++++++
.../structure/io/AbstractCompatibilityTest.java | 51 +++++++-----
.../graphbinary/GraphBinaryCompatibilityTest.java | 90 +++++++++++++++++++++
.../io/graphbinary/_3_4_3/barrier-v1.gbin | Bin 0 -> 16 bytes
.../io/graphbinary/_3_4_3/bigdecimal-v1.gbin | Bin 0 -> 25 bytes
.../io/graphbinary/_3_4_3/biginteger-v1.gbin | Bin 0 -> 21 bytes
.../io/graphbinary/_3_4_3/binding-v1.gbin | Bin 0 -> 13 bytes
.../io/graphbinary/_3_4_3/bulkset-v1.gbin | Bin 0 -> 43 bytes
.../structure/io/graphbinary/_3_4_3/byte-v1.gbin | Bin 0 -> 3 bytes
.../io/graphbinary/_3_4_3/bytebuffer-v1.gbin | Bin 0 -> 24 bytes
.../io/graphbinary/_3_4_3/bytecode-v1.gbin | Bin 0 -> 80 bytes
.../io/graphbinary/_3_4_3/cardinality-v1.gbin | Bin 0 -> 12 bytes
.../structure/io/graphbinary/_3_4_3/char-v1.gbin | Bin 0 -> 3 bytes
.../structure/io/graphbinary/_3_4_3/class-v1.gbin | Bin 0 -> 18 bytes
.../structure/io/graphbinary/_3_4_3/column-v1.gbin | Bin 0 -> 12 bytes
.../structure/io/graphbinary/_3_4_3/date-v1.gbin | Bin 0 -> 10 bytes
.../io/graphbinary/_3_4_3/direction-v1.gbin | Bin 0 -> 11 bytes
.../structure/io/graphbinary/_3_4_3/double-v1.gbin | Bin 0 -> 10 bytes
.../io/graphbinary/_3_4_3/duration-v1.gbin | Bin 0 -> 14 bytes
.../structure/io/graphbinary/_3_4_3/edge-v1.gbin | Bin 0 -> 58 bytes
.../structure/io/graphbinary/_3_4_3/float-v1.gbin | Bin 0 -> 6 bytes
.../io/graphbinary/_3_4_3/inetaddress-v1.gbin | Bin 0 -> 10 bytes
.../io/graphbinary/_3_4_3/instant-v1.gbin | Bin 0 -> 14 bytes
.../io/graphbinary/_3_4_3/integer-v1.gbin | Bin 0 -> 6 bytes
.../structure/io/graphbinary/_3_4_3/lambda-v1.gbin | Bin 0 -> 40 bytes
.../structure/io/graphbinary/_3_4_3/list-v1.gbin | Bin 0 -> 27 bytes
.../io/graphbinary/_3_4_3/localdate-v1.gbin | Bin 0 -> 8 bytes
.../io/graphbinary/_3_4_3/localdatetime-v1.gbin | Bin 0 -> 16 bytes
.../io/graphbinary/_3_4_3/localtime-v1.gbin | Bin 0 -> 10 bytes
.../structure/io/graphbinary/_3_4_3/long-v1.gbin | Bin 0 -> 10 bytes
.../structure/io/graphbinary/_3_4_3/map-v1.gbin | Bin 0 -> 75 bytes
.../io/graphbinary/_3_4_3/metrics-v1.gbin | Bin 0 -> 307 bytes
.../io/graphbinary/_3_4_3/monthday-v1.gbin | Bin 0 -> 4 bytes
.../io/graphbinary/_3_4_3/offsetdatetime-v1.gbin | Bin 0 -> 20 bytes
.../io/graphbinary/_3_4_3/offsettime-v1.gbin | Bin 0 -> 14 bytes
.../io/graphbinary/_3_4_3/operator-v1.gbin | Bin 0 -> 11 bytes
.../structure/io/graphbinary/_3_4_3/order-v1.gbin | Bin 0 -> 15 bytes
.../structure/io/graphbinary/_3_4_3/p-v1.gbin | Bin 0 -> 18 bytes
.../structure/io/graphbinary/_3_4_3/pand-v1.gbin | Bin 0 -> 49 bytes
.../structure/io/graphbinary/_3_4_3/path-v1.gbin | Bin 0 -> 96 bytes
.../structure/io/graphbinary/_3_4_3/period-v1.gbin | Bin 0 -> 14 bytes
.../structure/io/graphbinary/_3_4_3/pick-v1.gbin | Bin 0 -> 11 bytes
.../structure/io/graphbinary/_3_4_3/pop-v1.gbin | Bin 0 -> 11 bytes
.../structure/io/graphbinary/_3_4_3/por-v1.gbin | Bin 0 -> 64 bytes
.../io/graphbinary/_3_4_3/property-v1.gbin | Bin 0 -> 19 bytes
.../io/graphbinary/_3_4_3/pwithin-v1.gbin | Bin 0 -> 22 bytes
.../io/graphbinary/_3_4_3/pwithout-v1.gbin | Bin 0 -> 29 bytes
.../structure/io/graphbinary/_3_4_3/scope-v1.gbin | Bin 0 -> 13 bytes
.../structure/io/graphbinary/_3_4_3/set-v1.gbin | Bin 0 -> 27 bytes
.../structure/io/graphbinary/_3_4_3/short-v1.gbin | Bin 0 -> 4 bytes
.../structure/io/graphbinary/_3_4_3/t-v1.gbin | Bin 0 -> 13 bytes
.../structure/io/graphbinary/_3_4_3/textp-v1.gbin | Bin 0 -> 29 bytes
.../io/graphbinary/_3_4_3/timestamp-v1.gbin | Bin 0 -> 10 bytes
.../io/graphbinary/_3_4_3/tinkergraph-v1.gbin | Bin 0 -> 2264 bytes
.../io/graphbinary/_3_4_3/traversalmetrics-v1.gbin | Bin 0 -> 593 bytes
.../io/graphbinary/_3_4_3/traverser-v1.gbin | Bin 0 -> 30 bytes
.../structure/io/graphbinary/_3_4_3/uuid-v1.gbin | Bin 0 -> 18 bytes
.../structure/io/graphbinary/_3_4_3/vertex-v1.gbin | Bin 0 -> 20 bytes
.../io/graphbinary/_3_4_3/vertexproperty-v1.gbin | Bin 0 -> 35 bytes
.../structure/io/graphbinary/_3_4_3/year-v1.gbin | Bin 0 -> 6 bytes
.../io/graphbinary/_3_4_3/yearmonth-v1.gbin | Bin 0 -> 7 bytes
.../io/graphbinary/_3_4_3/zoneddatetime-v1.gbin | Bin 0 -> 20 bytes
.../io/graphbinary/_3_4_3/zoneoffset-v1.gbin | Bin 0 -> 6 bytes
pom.xml | 1 +
68 files changed, 330 insertions(+), 23 deletions(-)
diff --git a/gremlin-python/src/main/jython/gremlin_python/process/traversal.py b/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
index dbc470f..4fb9f8c 100644
--- a/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
+++ b/gremlin-python/src/main/jython/gremlin_python/process/traversal.py
@@ -678,7 +678,7 @@ class Bindings(object):
class Binding(object):
- def __init__(self,key,value):
+ def __init__(self, key, value):
self.key = key
self.value = value
diff --git a/gremlin-tools/gremlin-io-test/pom.xml b/gremlin-tools/gremlin-io-test/pom.xml
index fc0e2a5..dcef57c 100644
--- a/gremlin-tools/gremlin-io-test/pom.xml
+++ b/gremlin-tools/gremlin-io-test/pom.xml
@@ -147,6 +147,32 @@
</configuration>
</execution>
<execution>
+ <id>generate-io-files-graphbinary</id>
+ <phase>generate-test-resources</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <properties>
+ <property>
+ <name>projectBuildDir</name>
+ <value>${project.build.directory}</value>
+ </property>
+ <property>
+ <name>projectBaseDir</name>
+ <value>${project.build.directory}</value>
+ </property>
+ <property>
+ <name>projectVersion</name>
+ <value>${project.version}</value>
+ </property>
+ </properties>
+ <scripts>
+ <script>${project.basedir}/scripts/generate-graphbinary-resources.groovy</script>
+ </scripts>
+ </configuration>
+ </execution>
+ <execution>
<id>generate-io-model-csv</id>
<phase>generate-test-resources</phase>
<goals>
diff --git a/gremlin-tools/gremlin-io-test/scripts/generate-graphbinary-resources.groovy b/gremlin-tools/gremlin-io-test/scripts/generate-graphbinary-resources.groovy
new file mode 100644
index 0000000..43eeb0d
--- /dev/null
+++ b/gremlin-tools/gremlin-io-test/scripts/generate-graphbinary-resources.groovy
@@ -0,0 +1,81 @@
+/*
+ * 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.
+ */
+
+import io.netty.buffer.ByteBufAllocator
+import org.apache.tinkerpop.gremlin.driver.ser.binary.GraphBinaryWriter
+import org.apache.tinkerpop.gremlin.tinkergraph.structure.*
+import org.apache.tinkerpop.gremlin.structure.*
+import org.apache.tinkerpop.gremlin.structure.io.*
+import org.apache.commons.configuration.BaseConfiguration
+
+new File("${projectBuildDir}/test-case-data/io/graphbinary").mkdirs()
+
+conf = new BaseConfiguration()
+conf.setProperty(TinkerGraph.GREMLIN_TINKERGRAPH_DEFAULT_VERTEX_PROPERTY_CARDINALITY, VertexProperty.Cardinality.list.name())
+graph = TinkerGraph.open(conf)
+TinkerFactory.generateTheCrew(graph)
+g = graph.traversal()
+
+model = Model.instance()
+
+allocator = ByteBufAllocator.DEFAULT
+
+toGraphBinary = { o, type, mapper, suffix = "" ->
+ def fileToWriteTo = new File("${projectBuildDir}/test-case-data/io/graphbinary/" + type.title.toLowerCase().replace(" ","") + "-" + suffix + ".gbin")
+ if (fileToWriteTo.exists()) fileToWriteTo.delete()
+ filestream = new FileOutputStream(fileToWriteTo)
+ try {
+ buffer = allocator.buffer()
+ writer.write(o, buffer)
+ buffer.readerIndex(0)
+ buffer.readBytes(filestream, buffer.readableBytes())
+ } catch (Exception ex) {
+ if (ex.message == "Serializer for type org.apache.tinkerpop.gremlin.driver.message.RequestMessage not found" ||
+ ex.message == "Serializer for type org.apache.tinkerpop.gremlin.driver.message.ResponseMessage not found" )
+ fileToWriteTo.delete()
+ else
+ throw ex
+ } finally {
+ filestream.close()
+ }
+}
+
+toGraphBinaryV1d0 = { o, type, mapper ->
+ toGraphBinary(o, type, mapper, "v1")
+}
+
+writeSupportedObjects = { mapper, toGraphBinaryFunction ->
+ model.entries().findAll{it.hasGraphBinaryCompatibility()}.each {
+ toGraphBinaryFunction(it.getObject(), it, mapper)
+ }
+}
+
+writer = new GraphBinaryWriter()
+
+writeSupportedObjects(writer, toGraphBinaryV1d0)
+
+def ver = "_" + "${projectVersion}".replace(".","_").replace("-SNAPSHOT","")
+def target = "${projectBaseDir}/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/" + ver
+def targetDir = new File(target)
+if (!targetDir.exists()) targetDir.mkdirs()
+new File("${projectBuildDir}/test-case-data/io/graphbinary/").listFiles().each {
+ def copyTo = new File(target + "/" + it.name)
+ if (copyTo.exists()) copyTo.delete()
+ java.nio.file.Files.copy(it.toPath(), new File(target + "/" + it.name).toPath())
+}
diff --git a/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java b/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
index 4cea315..ef939c4 100644
--- a/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
+++ b/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
@@ -40,6 +40,7 @@ import org.apache.tinkerpop.gremlin.structure.Column;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.structure.io.graphbinary.GraphBinaryCompatibility;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONCompatibility;
import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoCompatibility;
import org.apache.tinkerpop.gremlin.structure.util.star.StarGraph;
@@ -92,6 +93,7 @@ public class Model {
private static final List<Compatibility> ALL = Collections.unmodifiableList(new ArrayList<Compatibility>() {{
addAll(Arrays.asList(GraphSONCompatibility.values()));
addAll(Arrays.asList(GryoCompatibility.values()));
+ addAll(Arrays.asList(GraphBinaryCompatibility.values()));
}});
private static final Model model = new Model();
@@ -105,6 +107,10 @@ public class Model {
TinkerFactory.generateTheCrew(graph);
final GraphTraversalSource g = graph.traversal();
+ // TODO: gotta fix graphbinary
+ final Compatibility[] noTypeGraphSONPlusBrokenGraphBinary = Compatibilities.with(GraphSONCompatibility.class)
+ .configuredAs(".*no-types|v1d0").join(Compatibilities.with(GraphBinaryCompatibility.class)).matchToArray();
+
final Compatibility[] noTypeGraphSONPlusGryo3_2_3 = Compatibilities.with(GryoCompatibility.class).beforeRelease("3.2.4").join(Compatibilities.UNTYPED_GRAPHSON).matchToArray();
final Compatibility[] noTypeGraphSONPlusGryo3_3_0 = Compatibilities.with(GryoCompatibility.class).beforeRelease("3.3.0").join(Compatibilities.UNTYPED_GRAPHSON).matchToArray();
@@ -253,7 +259,7 @@ public class Model {
addExtendedEntry(new Short("100"), "Short", "", Compatibilities.UNTYPED_GRAPHSON.matchToArray());
addExtendedEntry(Year.of(2016), "Year", "The following example is of the `Year` \"2016\".", Compatibilities.UNTYPED_GRAPHSON.matchToArray());
addExtendedEntry(YearMonth.of(2016, 6), "YearMonth", "The following example is a `YearMonth` of \"June 2016\"", Compatibilities.UNTYPED_GRAPHSON.matchToArray());
- addExtendedEntry(ZonedDateTime.of(2016, 12, 23, 12, 12, 24, 36, ZoneId.of("GMT+2")), "ZonedDateTime", "", Compatibilities.UNTYPED_GRAPHSON.matchToArray());
+ addExtendedEntry(ZonedDateTime.of(2016, 12, 23, 12, 12, 24, 36, ZoneId.of("GMT+2")), "ZonedDateTime", "", noTypeGraphSONPlusBrokenGraphBinary);
addExtendedEntry(ZoneOffset.ofHoursMinutesSeconds(3, 6, 9), "ZoneOffset", "The following example is a `ZoneOffset` of three hours, six minutes, and nine seconds.", Compatibilities.UNTYPED_GRAPHSON.matchToArray());
}
@@ -338,6 +344,7 @@ public class Model {
private void addRequestMessageEntry(final Object obj, final String title, final String description) {
final List<Compatibility> incompatibilityList = Compatibilities.with(GryoCompatibility.class)
.before("3.0")
+ .join(Compatibilities.with(GraphBinaryCompatibility.class))
.match();
final Compatibility[] incompatibilities = new Compatibility[incompatibilityList.size()];
@@ -348,6 +355,7 @@ public class Model {
private void addResponseMessageEntry(final Object obj, final String title, final String description) {
final List<Compatibility> incompatibilityList = Compatibilities.with(GryoCompatibility.class)
.before("3.0")
+ .join(Compatibilities.with(GraphBinaryCompatibility.class))
.match();
// TODO: temporary problem? seems to be something breaking in vertex serialization
@@ -421,6 +429,8 @@ public class Model {
return "gryo-" + ((GryoCompatibility) c).name();
else if (c instanceof GraphSONCompatibility)
return "graphson-" + ((GraphSONCompatibility) c).name();
+ else if (c instanceof GraphBinaryCompatibility)
+ return "graphbinary-" + ((GraphBinaryCompatibility) c).name();
else
throw new IllegalStateException("No support for the provided Compatibility type");
}).collect(Collectors.toList()));
@@ -485,5 +495,9 @@ public class Model {
public boolean hasGraphSONCompatibility() {
return compatibleWith.stream().anyMatch(c -> c instanceof GryoCompatibility);
}
+
+ public boolean hasGraphBinaryCompatibility() {
+ return compatibleWith.stream().anyMatch(c -> c instanceof GraphBinaryCompatibility);
+ }
}
}
diff --git a/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibility.java b/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibility.java
new file mode 100644
index 0000000..8c7f428
--- /dev/null
+++ b/gremlin-tools/gremlin-io-test/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibility.java
@@ -0,0 +1,86 @@
+/*
+ * 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.structure.io.graphbinary;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.tinkerpop.gremlin.process.traversal.Path;
+import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser;
+import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalMetrics;
+import org.apache.tinkerpop.gremlin.process.traversal.util.Metrics;
+import org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+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.Compatibility;
+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 java.io.File;
+import java.io.IOException;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public enum GraphBinaryCompatibility implements Compatibility {
+ V1_3_4_3("3.4.3", "1.0", "v1");
+
+ private static final String SEP = File.separator;
+
+ private final String graphBinaryVersion;
+ private final String tinkerpopVersion;
+ private final String configuration;
+
+ GraphBinaryCompatibility(final String tinkerpopVersion, final String graphBinaryVersion, final String configuration) {
+ this.tinkerpopVersion = tinkerpopVersion;
+ this.graphBinaryVersion = graphBinaryVersion;
+ this.configuration = configuration;
+ }
+
+ @Override
+ public byte[] readFromResource(final String resource) throws IOException {
+ final String testResource = "_" + tinkerpopVersion.replace(".", "_") + SEP + resource + "-" + configuration + ".gbin";
+ return IOUtils.toByteArray(getClass().getResourceAsStream(testResource));
+ }
+
+ @Override
+ public String getReleaseVersion() {
+ return tinkerpopVersion;
+ }
+
+ @Override
+ public String getVersion() {
+ return graphBinaryVersion;
+ }
+
+ @Override
+ public String getConfiguration() {
+ return configuration;
+ }
+
+ @Override
+ public String toString() {
+ return tinkerpopVersion + "-" + configuration;
+ }
+}
diff --git a/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractCompatibilityTest.java b/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractCompatibilityTest.java
index 99f2de0..b3c2266 100644
--- a/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractCompatibilityTest.java
+++ b/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractCompatibilityTest.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
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.graphbinary.GraphBinaryCompatibility;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import java.util.Iterator;
@@ -51,17 +52,20 @@ public abstract class AbstractCompatibilityTest {
protected void assertVertex(final Vertex expected, final Vertex actual) {
assertEquals(expected.id(), actual.id());
assertEquals(expected.label(), actual.label());
- assertEquals(IteratorUtils.count(expected.properties()), IteratorUtils.count(actual.properties()));
- for (String k : expected.keys()) {
- final Iterator<VertexProperty<Object>> expectedVps = expected.properties(k);
- final List<VertexProperty<Object>> actualVps = IteratorUtils.list(actual.properties(k));
- while (expectedVps.hasNext()) {
- final VertexProperty expectedVp = expectedVps.next();
- final VertexProperty<Object> found = actualVps.stream()
- .filter(vp -> vp.id().equals(expectedVp.id()))
- .findFirst()
- .orElseThrow(() -> new RuntimeException("Could not find VertexProperty for " + expectedVp.id()));
- assertVertexProperty(expectedVp, found);
+
+ if (!(getCompatibility() instanceof GraphBinaryCompatibility)) {
+ assertEquals(IteratorUtils.count(expected.properties()), IteratorUtils.count(actual.properties()));
+ for (String k : expected.keys()) {
+ final Iterator<VertexProperty<Object>> expectedVps = expected.properties(k);
+ final List<VertexProperty<Object>> actualVps = IteratorUtils.list(actual.properties(k));
+ while (expectedVps.hasNext()) {
+ final VertexProperty expectedVp = expectedVps.next();
+ final VertexProperty<Object> found = actualVps.stream()
+ .filter(vp -> vp.id().equals(expectedVp.id()))
+ .findFirst()
+ .orElseThrow(() -> new RuntimeException("Could not find VertexProperty for " + expectedVp.id()));
+ assertVertexProperty(expectedVp, found);
+ }
}
}
}
@@ -69,26 +73,31 @@ public abstract class AbstractCompatibilityTest {
protected void assertEdge(final Edge expected, final Edge actual) {
assertEquals(expected.id(), actual.id());
assertEquals(expected.label(), actual.label());
- assertEquals(IteratorUtils.count(expected.properties()), IteratorUtils.count(actual.properties()));
assertEquals(expected.inVertex().id(), actual.inVertex().id());
assertEquals(expected.outVertex().id(), actual.outVertex().id());
assertEquals(expected.inVertex().label(), actual.inVertex().label());
assertEquals(expected.outVertex().label(), actual.outVertex().label());
- final Iterator<Property<Object>> itty = expected.properties();
- while(itty.hasNext()) {
- final Property p = itty.next();
- assertProperty(p, actual.property(p.key()));
+ if (!(getCompatibility() instanceof GraphBinaryCompatibility)) {
+ assertEquals(IteratorUtils.count(expected.properties()), IteratorUtils.count(actual.properties()));
+ final Iterator<Property<Object>> itty = expected.properties();
+ while(itty.hasNext()) {
+ final Property p = itty.next();
+ assertProperty(p, actual.property(p.key()));
+ }
}
}
protected void assertVertexProperty(final VertexProperty expected, final VertexProperty actual) {
assertEquals(expected.id(), actual.id());
assertEquals(expected.label(), actual.label());
- assertEquals(IteratorUtils.count(expected.properties()), IteratorUtils.count(actual.properties()));
- final Iterator<Property> itty = expected.properties();
- while(itty.hasNext()) {
- final Property p = itty.next();
- assertProperty(p, actual.property(p.key()));
+
+ if (!(getCompatibility() instanceof GraphBinaryCompatibility)) {
+ assertEquals(IteratorUtils.count(expected.properties()), IteratorUtils.count(actual.properties()));
+ final Iterator<Property> itty = expected.properties();
+ while (itty.hasNext()) {
+ final Property p = itty.next();
+ assertProperty(p, actual.property(p.key()));
+ }
}
}
diff --git a/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java b/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java
new file mode 100644
index 0000000..aa2ad0b
--- /dev/null
+++ b/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java
@@ -0,0 +1,90 @@
+/*
+ * 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.structure.io.graphbinary;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufAllocator;
+import io.netty.buffer.UnpooledDirectByteBuf;
+import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.apache.tinkerpop.gremlin.driver.ser.binary.GraphBinaryReader;
+import org.apache.tinkerpop.gremlin.driver.ser.binary.GraphBinaryWriter;
+import org.apache.tinkerpop.gremlin.structure.io.AbstractTypedCompatibilityTest;
+import org.apache.tinkerpop.gremlin.structure.io.Compatibility;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoCompatibility;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoVersion;
+import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0;
+import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0;
+import org.apache.tinkerpop.shaded.kryo.Kryo;
+import org.apache.tinkerpop.shaded.kryo.io.Input;
+import org.apache.tinkerpop.shaded.kryo.io.Output;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+@RunWith(Parameterized.class)
+public class GraphBinaryCompatibilityTest extends AbstractTypedCompatibilityTest {
+
+ private static final ByteBufAllocator allocator = ByteBufAllocator.DEFAULT;
+ private static final GraphBinaryWriter writerV1 = new GraphBinaryWriter();
+ private static final GraphBinaryReader readerV1 = new GraphBinaryReader();
+
+ @Parameterized.Parameters(name = "expect({0})")
+ public static Iterable<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {GraphBinaryCompatibility.V1_3_4_3, readerV1, writerV1 }
+ });
+ }
+
+ @Parameterized.Parameter(value = 0)
+ public Compatibility compatibility;
+
+ @Parameterized.Parameter(value = 1)
+ public GraphBinaryReader reader;
+
+ @Parameterized.Parameter(value = 2)
+ public GraphBinaryWriter writer;
+
+ @Override
+ public <T> T read(final byte[] bytes, final Class<T> clazz) throws Exception {
+ final ByteBuf buffer = allocator.buffer();
+ buffer.writeBytes(bytes);
+ return reader.read(buffer);
+ }
+
+ @Override
+ public byte[] write(final Object o, final Class<?> clazz) throws Exception {
+ final ByteBuf buffer = allocator.buffer();
+ try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
+ writer.write(o, buffer);
+ buffer.readerIndex(0);
+ buffer.readBytes(stream, buffer.readableBytes());
+ return stream.toByteArray();
+ }
+ }
+
+ @Override
+ public Compatibility getCompatibility() {
+ return compatibility;
+ }
+}
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/barrier-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/barrier-v1.gbin
new file mode 100644
index 0000000..f905861
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/barrier-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bigdecimal-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bigdecimal-v1.gbin
new file mode 100644
index 0000000..921d957
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bigdecimal-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/biginteger-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/biginteger-v1.gbin
new file mode 100644
index 0000000..d841fbe
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/biginteger-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/binding-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/binding-v1.gbin
new file mode 100644
index 0000000..79620eb
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/binding-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bulkset-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bulkset-v1.gbin
new file mode 100644
index 0000000..4542906
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bulkset-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/byte-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/byte-v1.gbin
new file mode 100644
index 0000000..af9544f
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/byte-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bytebuffer-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bytebuffer-v1.gbin
new file mode 100644
index 0000000..39793d2
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bytebuffer-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bytecode-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bytecode-v1.gbin
new file mode 100644
index 0000000..bc76c2e
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/bytecode-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/cardinality-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/cardinality-v1.gbin
new file mode 100644
index 0000000..3c875a5
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/cardinality-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/char-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/char-v1.gbin
new file mode 100644
index 0000000..b9d97e6
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/char-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/class-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/class-v1.gbin
new file mode 100644
index 0000000..6be272d
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/class-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/column-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/column-v1.gbin
new file mode 100644
index 0000000..c6805c8
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/column-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/date-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/date-v1.gbin
new file mode 100644
index 0000000..e68e17a
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/date-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/direction-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/direction-v1.gbin
new file mode 100644
index 0000000..3caaba3
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/direction-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/double-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/double-v1.gbin
new file mode 100644
index 0000000..e538a62
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/double-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/duration-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/duration-v1.gbin
new file mode 100644
index 0000000..7ffa3ad
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/duration-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/edge-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/edge-v1.gbin
new file mode 100644
index 0000000..086e85d
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/edge-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/float-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/float-v1.gbin
new file mode 100644
index 0000000..322772c
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/float-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/inetaddress-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/inetaddress-v1.gbin
new file mode 100644
index 0000000..b613ddb
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/inetaddress-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/instant-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/instant-v1.gbin
new file mode 100644
index 0000000..3335532
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/instant-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/integer-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/integer-v1.gbin
new file mode 100644
index 0000000..7dc246a
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/integer-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/lambda-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/lambda-v1.gbin
new file mode 100644
index 0000000..b0e98f9
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/lambda-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/list-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/list-v1.gbin
new file mode 100644
index 0000000..1aa405d
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/list-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localdate-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localdate-v1.gbin
new file mode 100644
index 0000000..2c9e211
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localdate-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localdatetime-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localdatetime-v1.gbin
new file mode 100644
index 0000000..2e0c83c
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localdatetime-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localtime-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localtime-v1.gbin
new file mode 100644
index 0000000..05785c6
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/localtime-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/long-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/long-v1.gbin
new file mode 100644
index 0000000..cee0083
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/long-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/map-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/map-v1.gbin
new file mode 100644
index 0000000..46cd9e2
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/map-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/metrics-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/metrics-v1.gbin
new file mode 100644
index 0000000..dea77a5
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/metrics-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/monthday-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/monthday-v1.gbin
new file mode 100644
index 0000000..c128263
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/monthday-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/offsetdatetime-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/offsetdatetime-v1.gbin
new file mode 100644
index 0000000..4b2aabb
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/offsetdatetime-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/offsettime-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/offsettime-v1.gbin
new file mode 100644
index 0000000..a4c8c5b
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/offsettime-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/operator-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/operator-v1.gbin
new file mode 100644
index 0000000..84717cc
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/operator-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/order-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/order-v1.gbin
new file mode 100644
index 0000000..311b6ad
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/order-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/p-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/p-v1.gbin
new file mode 100644
index 0000000..ac60799
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/p-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pand-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pand-v1.gbin
new file mode 100644
index 0000000..3237c94
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pand-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/path-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/path-v1.gbin
new file mode 100644
index 0000000..ba075ac
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/path-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/period-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/period-v1.gbin
new file mode 100644
index 0000000..f7dab35
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/period-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pick-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pick-v1.gbin
new file mode 100644
index 0000000..77aca2f
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pick-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pop-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pop-v1.gbin
new file mode 100644
index 0000000..f698c94
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pop-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/por-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/por-v1.gbin
new file mode 100644
index 0000000..7c0b3ab
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/por-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/property-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/property-v1.gbin
new file mode 100644
index 0000000..ddc34e5
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/property-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pwithin-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pwithin-v1.gbin
new file mode 100644
index 0000000..5ad30a9
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pwithin-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pwithout-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pwithout-v1.gbin
new file mode 100644
index 0000000..5b195db
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/pwithout-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/scope-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/scope-v1.gbin
new file mode 100644
index 0000000..534b956
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/scope-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/set-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/set-v1.gbin
new file mode 100644
index 0000000..02df059
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/set-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/short-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/short-v1.gbin
new file mode 100644
index 0000000..e1d2d7d
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/short-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/t-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/t-v1.gbin
new file mode 100644
index 0000000..a6376db
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/t-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/textp-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/textp-v1.gbin
new file mode 100644
index 0000000..c796468
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/textp-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/timestamp-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/timestamp-v1.gbin
new file mode 100644
index 0000000..4fc4e5e
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/timestamp-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/tinkergraph-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/tinkergraph-v1.gbin
new file mode 100644
index 0000000..a0a76d1
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/tinkergraph-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/traversalmetrics-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/traversalmetrics-v1.gbin
new file mode 100644
index 0000000..c947e62
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/traversalmetrics-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/traverser-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/traverser-v1.gbin
new file mode 100644
index 0000000..8e47cc0
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/traverser-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/uuid-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/uuid-v1.gbin
new file mode 100644
index 0000000..7f1775d
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/uuid-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/vertex-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/vertex-v1.gbin
new file mode 100644
index 0000000..7fb9d65
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/vertex-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/vertexproperty-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/vertexproperty-v1.gbin
new file mode 100644
index 0000000..89f0329
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/vertexproperty-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/year-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/year-v1.gbin
new file mode 100644
index 0000000..1fe0c74
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/year-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/yearmonth-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/yearmonth-v1.gbin
new file mode 100644
index 0000000..481a121
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/yearmonth-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/zoneddatetime-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/zoneddatetime-v1.gbin
new file mode 100644
index 0000000..32e2e8b
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/zoneddatetime-v1.gbin differ
diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/zoneoffset-v1.gbin b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/zoneoffset-v1.gbin
new file mode 100644
index 0000000..2867c97
Binary files /dev/null and b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/_3_4_3/zoneoffset-v1.gbin differ
diff --git a/pom.xml b/pom.xml
index d7340a9..00f8c27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -375,6 +375,7 @@ limitations under the License.
<exclude>**/target/**</exclude>
<exclude>data/*.txt</exclude>
<exclude>**/*.kryo</exclude>
+ <exclude>**/*.gbin</exclude>
<exclude>**/*.iml</exclude>
<exclude>**/*.json</exclude>
<exclude>**/*.xml</exclude>