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

[tinkerpop] 01/01: Merge branch 'TINKERPOP-2305' into tp34

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

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

commit 2b9f40efb1da6b9ab22e3ffbe700759f4156ec9a
Merge: 47e25aa c2108bb
Author: Jorge Bay Gondra <jo...@gmail.com>
AuthorDate: Thu Nov 7 10:07:14 2019 +0100

    Merge branch 'TINKERPOP-2305' into tp34

 CHANGELOG.asciidoc                                 |   6 +
 docs/src/upgrade/release-3.4.x.asciidoc            |  25 ++
 .../tinkerpop/gremlin/structure/io/Buffer.java     | 250 +++++++++++++
 .../gremlin/structure/io/BufferFactory.java        |  21 +-
 .../gremlin/structure/io}/binary/DataType.java     |   5 +-
 .../structure/io}/binary/GraphBinaryIo.java        |   5 +-
 .../structure/io}/binary/GraphBinaryReader.java    |  15 +-
 .../structure/io}/binary/GraphBinaryWriter.java    |  30 +-
 .../structure/io}/binary/TypeSerializer.java       |  16 +-
 .../io}/binary/TypeSerializerRegistry.java         |  18 +-
 .../io}/binary/types/BigDecimalSerializer.java     |  16 +-
 .../io}/binary/types/BigIntegerSerializer.java     |  16 +-
 .../io}/binary/types/BindingSerializer.java        |  17 +-
 .../io}/binary/types/BulkSetSerializer.java        |  19 +-
 .../io}/binary/types/ByteBufferSerializer.java     |  16 +-
 .../io}/binary/types/ByteCodeSerializer.java       |  24 +-
 .../structure/io}/binary/types/CharSerializer.java |  17 +-
 .../io}/binary/types/ClassSerializer.java          |  17 +-
 .../io}/binary/types/CollectionSerializer.java     |  16 +-
 .../io}/binary/types/CustomTypeSerializer.java     |   4 +-
 .../structure/io}/binary/types/DateSerializer.java |  14 +-
 .../io}/binary/types/DurationSerializer.java       |  16 +-
 .../structure/io}/binary/types/EdgeSerializer.java |  17 +-
 .../structure/io}/binary/types/EnumSerializer.java |  16 +-
 .../io}/binary/types/GraphSerializer.java          |  25 +-
 .../io}/binary/types/InetAddressSerializer.java    |  18 +-
 .../io}/binary/types/InstantSerializer.java        |  16 +-
 .../io}/binary/types/LambdaSerializer.java         |  17 +-
 .../structure/io}/binary/types/ListSerializer.java |  16 +-
 .../io}/binary/types/LocalDateSerializer.java      |  16 +-
 .../io}/binary/types/LocalDateTimeSerializer.java  |  16 +-
 .../io}/binary/types/LocalTimeSerializer.java      |  16 +-
 .../io}/binary/types/MapEntrySerializer.java       |  18 +-
 .../structure/io}/binary/types/MapSerializer.java  |  16 +-
 .../io}/binary/types/MetricsSerializer.java        |  16 +-
 .../io}/binary/types/MonthDaySerializer.java       |  16 +-
 .../io}/binary/types/OffsetDateTimeSerializer.java |  16 +-
 .../io}/binary/types/OffsetTimeSerializer.java     |  16 +-
 .../structure/io}/binary/types/PSerializer.java    |  24 +-
 .../structure/io}/binary/types/PathSerializer.java |  16 +-
 .../io}/binary/types/PeriodSerializer.java         |  16 +-
 .../io}/binary/types/PropertySerializer.java       |  17 +-
 .../structure/io}/binary/types/SetSerializer.java  |  16 +-
 .../io}/binary/types/SimpleTypeSerializer.java     |  33 +-
 .../io}/binary/types/SingleTypeSerializer.java     |  36 +-
 .../io}/binary/types/StringSerializer.java         |  14 +-
 .../io}/binary/types/TransformSerializer.java      |   4 +-
 .../types/TraversalExplanationSerializer.java      |  18 +-
 .../binary/types/TraversalMetricsSerializer.java   |  16 +-
 .../binary/types/TraversalStrategySerializer.java  |  16 +-
 .../io}/binary/types/TraverserSerializer.java      |  17 +-
 .../structure/io}/binary/types/TreeSerializer.java |  17 +-
 .../structure/io}/binary/types/UUIDSerializer.java |  14 +-
 .../io}/binary/types/VertexPropertySerializer.java |  17 +-
 .../io}/binary/types/VertexSerializer.java         |  17 +-
 .../io}/binary/types/YearMonthSerializer.java      |  16 +-
 .../io}/binary/types/ZoneOffsetSerializer.java     |  16 +-
 .../io}/binary/types/ZonedDateTimeSerializer.java  |  16 +-
 .../driver/ser/GraphBinaryMessageSerializerV1.java |  10 +-
 .../tinkerpop/gremlin/driver/ser/NettyBuffer.java  | 267 ++++++++++++++
 .../gremlin/driver/ser/NettyBufferFactory.java     | 114 ++++++
 .../ser/binary/RequestMessageSerializer.java       |  58 +++-
 .../ser/binary/ResponseMessageSerializer.java      |  65 ++--
 .../gremlin/driver/ser/NettyBufferFactoryTest.java | 385 +++++++++++++++++++++
 .../binary/GraphBinaryMessageSerializerV1Test.java |   1 +
 .../GraphBinaryReaderWriterRoundTripTest.java      |   8 +-
 .../ser/binary/TypeSerializerFailureTests.java     |  11 +-
 .../ser/binary/TypeSerializerRegistryTest.java     |  29 +-
 .../ser/binary/types/CharSerializerTest.java       |  23 +-
 .../types/sample/SamplePersonSerializer.java       |  19 +-
 .../types/sample/SamplePersonSerializerTest.java   |  25 +-
 .../driver/GraphBinaryReaderWriterBenchmark.java   |  29 +-
 .../gremlin/driver/SerializationBenchmark.java     |   2 +-
 .../scripts/generate-graphbinary-resources.groovy  |   7 +-
 .../graphbinary/GraphBinaryCompatibilityTest.java  |  21 +-
 75 files changed, 1704 insertions(+), 580 deletions(-)

diff --cc CHANGELOG.asciidoc
index c896cd7,8841204..1e159b5
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -20,17 -20,14 +20,23 @@@ limitations under the License
  
  image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/avant-gremlin.png[width=185]
  
+ [[release-3-4-5]]
+ === TinkerPop 3.4.5 (Release Date: NOT OFFICIALLY RELEASED YET)
+ 
+ * GraphBinary: Introduced our own `Buffer` API as a way to wrap Netty's Buffer API. Moved `GraphBinaryReader`,
+ `GraphBinaryWriter` and `TypeSerializer<T>` to gremlin-core.
+ 
  [[release-3-4-4]]
 -=== TinkerPop 3.4.4 (Release Date: NOT OFFICIALLY RELEASED YET)
 +=== TinkerPop 3.4.5 (Release Date: NOT OFFICIALLY RELEASED YET)
 +
 +This release also includes changes from <<release-3-3-10, 3.3.10>>.
 +
 +* Bump to Netty 4.1.42
 +
 +[[release-3-4-4]]
 +=== TinkerPop 3.4.4 (Release Date: October 14, 2019)
 +
 +This release also includes changes from <<release-3-3-9, 3.3.9>>.
  
  * Provided support for DSLs by way of remote connections through `AnonymousTraversalSource`.
  * Added `elementMap()` step.
diff --cc docs/src/upgrade/release-3.4.x.asciidoc
index d7b14a3,98e1f6c..8fce2e7
--- a/docs/src/upgrade/release-3.4.x.asciidoc
+++ b/docs/src/upgrade/release-3.4.x.asciidoc
@@@ -21,9 -21,34 +21,34 @@@ image::https://raw.githubusercontent.co
  
  *Avant-Gremlin Construction #3 for Theremin and Flowers*
  
+ == TinkerPop 3.4.5
+ 
+ *Release Date: NOT OFFICIALLY RELEASED YET*
+ 
+ Please see the link:https://github.com/apache/tinkerpop/blob/3.4.5/CHANGELOG.asciidoc#release-3-4-5[changelog] for a
+ complete list of all the modifications that are part of this release.
+ 
+ === Upgrading for Providers
+ 
+ ==== Graph Driver Providers
+ 
+ ===== GraphBinary API Change
+ 
+ In GraphBinary serialization, Java `GraphBinaryReader` and `GraphBinaryWriter`, along with `TypeSerializer<T>`
+ interface now take a `Buffer` instance instead of Netty's `ByteBuf`, that way we avoid exposing Netty's API in our own
+ public API.
+ 
+ Using our own `Buffer` interface, wrapping Netty's buffer API, allowed us to move `TypeSerializer<T>` implementations,
+ the reader and the writer to `org.apache.tinkerpop.gremlin.structure.io.binary` package in `gremlin-core`.
+ 
+ Additionally, `GraphBinaryReader` and `GraphBinaryWriter` methods now throw an java's `IOException`, instead of our
+ own `SerializationException`.
+ 
+ See: link:https://issues.apache.org/jira/browse/TINKERPOP-2305[TINKERPOP-2305]
+ 
  == TinkerPop 3.4.4
  
 -*Release Date: NOT OFFICIALLY RELEASED YET*
 +*Release Date: October 14, 2019*
  
  Please see the link:https://github.com/apache/tinkerpop/blob/3.4.4/CHANGELOG.asciidoc#release-3-4-4[changelog] for a complete list of all the modifications that are part of this release.