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 2016/08/16 13:08:10 UTC
tinkerpop git commit: Move serializers for Traverser into io packages
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1278 35f666f92 -> 253013263
Move serializers for Traverser into io packages
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/25301326
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/25301326
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/25301326
Branch: refs/heads/TINKERPOP-1278
Commit: 25301326365e10581e8662e4f0c118f9f1d26070
Parents: 35f666f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 16 09:07:48 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 16 09:07:48 2016 -0400
----------------------------------------------------------------------
.../DefaultRemoteTraverserSerializers.java | 86 --------------------
.../structure/io/graphson/GraphSONModule.java | 3 +-
.../graphson/GraphSONTraversalSerializers.java | 30 +++++++
.../gremlin/structure/io/gryo/GryoMapper.java | 3 +-
.../structure/io/gryo/GryoSerializers.java | 15 ++++
5 files changed, 47 insertions(+), 90 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25301326/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/DefaultRemoteTraverserSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/DefaultRemoteTraverserSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/DefaultRemoteTraverserSerializers.java
deleted file mode 100644
index 2ff6cc6..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/DefaultRemoteTraverserSerializers.java
+++ /dev/null
@@ -1,86 +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.process.remote.traversal;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.structure.Property;
-import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.InputShim;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShim;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.OutputShim;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.SerializerShim;
-import org.apache.tinkerpop.shaded.jackson.core.JsonGenerator;
-import org.apache.tinkerpop.shaded.jackson.databind.SerializerProvider;
-import org.apache.tinkerpop.shaded.jackson.databind.jsontype.TypeSerializer;
-import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdSerializer;
-
-import java.io.IOException;
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public final class DefaultRemoteTraverserSerializers {
-
- private DefaultRemoteTraverserSerializers() {}
-
- /**
- * Serializes {@link DefaultRemoteTraverser} to and from Gryo.
- */
- public final static class GryoSerializer implements SerializerShim<DefaultRemoteTraverser> {
- @Override
- public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final DefaultRemoteTraverser remoteTraverser) {
- kryo.writeClassAndObject(output, remoteTraverser.get());
- output.writeLong(remoteTraverser.bulk());
- }
-
- @Override
- public <I extends InputShim> DefaultRemoteTraverser read(final KryoShim<I, ?> kryo, final I input, final Class<DefaultRemoteTraverser> remoteTraverserClass) {
- final Object o = kryo.readClassAndObject(input);
- return new DefaultRemoteTraverser<>(o, input.readLong());
- }
- }
-
- public final static class GraphSONSerializer extends StdSerializer<Traverser> {
-
- public GraphSONSerializer() {
- super(Traverser.class);
- }
-
- @Override
- public void serialize(final Traverser traverserInstance, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
- throws IOException {
- ser(traverserInstance, jsonGenerator, serializerProvider, null);
- }
-
- @Override
- public void serializeWithType(final Traverser traverserInstance, final JsonGenerator jsonGenerator,
- final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
- ser(traverserInstance, jsonGenerator, serializerProvider, typeSerializer);
- }
-
- private static void ser(final Traverser traverserInstance, final JsonGenerator jsonGenerator,
- final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
- jsonGenerator.writeStartObject();
- if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, Traverser.class.getName());
- jsonGenerator.writeObjectField("bulk", traverserInstance.bulk());
- jsonGenerator.writeObjectField("value", traverserInstance.get());
- jsonGenerator.writeEndObject();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25301326/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
index bf8c513..f7d340c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
@@ -18,7 +18,6 @@
*/
package org.apache.tinkerpop.gremlin.structure.io.graphson;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverserSerializers;
import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
import org.apache.tinkerpop.gremlin.process.traversal.Operator;
import org.apache.tinkerpop.gremlin.process.traversal.Order;
@@ -143,7 +142,7 @@ abstract class GraphSONModule extends SimpleModule {
addSerializer(P.class, new GraphSONTraversalSerializers.PJacksonSerializer());
addSerializer(Lambda.class, new GraphSONTraversalSerializers.LambdaJacksonSerializer());
addSerializer(Bytecode.Binding.class, new GraphSONTraversalSerializers.BindingJacksonSerializer());
- addSerializer(Traverser.class, new DefaultRemoteTraverserSerializers.GraphSONSerializer());
+ addSerializer(Traverser.class, new GraphSONTraversalSerializers.TraverserSerializer());
// -- deserializers for traversal
addDeserializer(Bytecode.class, new GraphSONTraversalSerializers.BytecodeJacksonDeserializer());
addDeserializer(Enum.class, new GraphSONTraversalSerializers.EnumJacksonDeserializer());
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25301326/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java
index 1c02d31..8023cd2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializers.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Pop;
import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
import org.apache.tinkerpop.gremlin.process.traversal.Scope;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.util.AndP;
import org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP;
import org.apache.tinkerpop.gremlin.process.traversal.util.OrP;
@@ -43,6 +44,7 @@ import org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext;
import org.apache.tinkerpop.shaded.jackson.databind.JsonNode;
import org.apache.tinkerpop.shaded.jackson.databind.SerializerProvider;
import org.apache.tinkerpop.shaded.jackson.databind.deser.std.StdDeserializer;
+import org.apache.tinkerpop.shaded.jackson.databind.jsontype.TypeSerializer;
import org.apache.tinkerpop.shaded.jackson.databind.node.JsonNodeType;
import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdSerializer;
@@ -190,6 +192,34 @@ public final class GraphSONTraversalSerializers {
}
+ final static class TraverserSerializer extends StdSerializer<Traverser> {
+
+ public TraverserSerializer() {
+ super(Traverser.class);
+ }
+
+ @Override
+ public void serialize(final Traverser traverserInstance, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
+ throws IOException {
+ ser(traverserInstance, jsonGenerator, serializerProvider, null);
+ }
+
+ @Override
+ public void serializeWithType(final Traverser traverserInstance, final JsonGenerator jsonGenerator,
+ final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
+ ser(traverserInstance, jsonGenerator, serializerProvider, typeSerializer);
+ }
+
+ private static void ser(final Traverser traverserInstance, final JsonGenerator jsonGenerator,
+ final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
+ jsonGenerator.writeStartObject();
+ if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, Traverser.class.getName());
+ jsonGenerator.writeObjectField("bulk", traverserInstance.bulk());
+ jsonGenerator.writeObjectField("value", traverserInstance.get());
+ jsonGenerator.writeEndObject();
+ }
+ }
+
///////////////////
// DESERIALIZERS //
//////////////////
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25301326/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
index 24d7d8b..add254e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
@@ -23,7 +23,6 @@ import org.apache.tinkerpop.gremlin.process.computer.GraphFilter;
import org.apache.tinkerpop.gremlin.process.computer.MapReduce;
import org.apache.tinkerpop.gremlin.process.computer.util.MapMemory;
import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverserSerializers;
import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
import org.apache.tinkerpop.gremlin.process.traversal.Contains;
import org.apache.tinkerpop.gremlin.process.traversal.Operator;
@@ -323,7 +322,7 @@ public final class GryoMapper implements Mapper<Kryo> {
add(GryoTypeReg.of(O_OB_S_SE_SL_Traverser.class, 89));
add(GryoTypeReg.of(LP_O_OB_S_SE_SL_Traverser.class, 90));
add(GryoTypeReg.of(LP_O_OB_P_S_SE_SL_Traverser.class, 91));
- add(GryoTypeReg.of(DefaultRemoteTraverser.class, 123, new DefaultRemoteTraverserSerializers.GryoSerializer())); // ***LAST ID***
+ add(GryoTypeReg.of(DefaultRemoteTraverser.class, 123, new GryoSerializers.DefaultRemoteTraverserSerializer())); // ***LAST ID***
add(GryoTypeReg.of(Bytecode.class, 122, new GryoSerializers.BytecodeSerializer()));
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25301326/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
index be25f33..e785948 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
@@ -18,6 +18,7 @@
*/
package org.apache.tinkerpop.gremlin.structure.io.gryo;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
import org.apache.tinkerpop.gremlin.process.traversal.Path;
import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -142,4 +143,18 @@ public final class GryoSerializers {
}
}
}
+
+ public final static class DefaultRemoteTraverserSerializer implements SerializerShim<DefaultRemoteTraverser> {
+ @Override
+ public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final DefaultRemoteTraverser remoteTraverser) {
+ kryo.writeClassAndObject(output, remoteTraverser.get());
+ output.writeLong(remoteTraverser.bulk());
+ }
+
+ @Override
+ public <I extends InputShim> DefaultRemoteTraverser read(final KryoShim<I, ?> kryo, final I input, final Class<DefaultRemoteTraverser> remoteTraverserClass) {
+ final Object o = kryo.readClassAndObject(input);
+ return new DefaultRemoteTraverser<>(o, input.readLong());
+ }
+ }
}