You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/03/24 20:38:05 UTC
incubator-tinkerpop git commit: GryoInput, GryoOutput,
GryoKryo as faces to hide package dependencies on shaded jars.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master a410bc528 -> d17b6b724
GryoInput, GryoOutput, GryoKryo as faces to hide package dependencies on shaded jars.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/d17b6b72
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/d17b6b72
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/d17b6b72
Branch: refs/heads/master
Commit: d17b6b724384788070b4c5697489440397909225
Parents: a410bc5
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Mar 24 13:38:03 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Mar 24 13:38:03 2015 -0600
----------------------------------------------------------------------
.../gremlin/structure/io/gryo/GryoInput.java | 52 ++++++++++++++++++
.../gremlin/structure/io/gryo/GryoKryo.java | 46 ++++++++++++++++
.../gremlin/structure/io/gryo/GryoMapper.java | 34 +++++++++---
.../gremlin/structure/io/gryo/GryoOutput.java | 57 ++++++++++++++++++++
.../gremlin/structure/SerializationTest.java | 42 +++++++--------
.../hadoop/structure/io/ObjectWritable.java | 8 +--
6 files changed, 206 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d17b6b72/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoInput.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoInput.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoInput.java
new file mode 100644
index 0000000..6187463
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoInput.java
@@ -0,0 +1,52 @@
+/*
+ * 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.gryo;
+
+import com.esotericsoftware.kryo.io.Input;
+
+import java.io.InputStream;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class GryoInput extends Input {
+
+ public GryoInput() {
+ }
+
+ public GryoInput(final int bufferSize) {
+ super(bufferSize);
+ }
+
+ public GryoInput(final byte[] buffer) {
+ super(buffer);
+ }
+
+ public GryoInput(final byte[] buffer, final int offset, final int count) {
+ super(buffer, offset, count);
+ }
+
+ public GryoInput(final InputStream inputStream) {
+ super(inputStream);
+ }
+
+ public GryoInput(final InputStream inputStream, final int bufferSize) {
+ super(inputStream, bufferSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d17b6b72/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoKryo.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoKryo.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoKryo.java
new file mode 100644
index 0000000..f42160e
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoKryo.java
@@ -0,0 +1,46 @@
+/*
+ * 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.gryo;
+
+import com.esotericsoftware.kryo.ClassResolver;
+import com.esotericsoftware.kryo.Kryo;
+import com.esotericsoftware.kryo.ReferenceResolver;
+import com.esotericsoftware.kryo.StreamFactory;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class GryoKryo extends Kryo {
+
+ public GryoKryo() {
+ super();
+ }
+
+ public GryoKryo(final ReferenceResolver referenceResolver) {
+ super(referenceResolver);
+ }
+
+ public GryoKryo(final ClassResolver classResolver, final ReferenceResolver referenceResolver) {
+ super(classResolver, referenceResolver);
+ }
+
+ public GryoKryo(final ClassResolver classResolver, final ReferenceResolver referenceResolver, final StreamFactory streamFactory) {
+ super(classResolver, referenceResolver, streamFactory);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d17b6b72/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 bb2d79f..bcee0ee 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
@@ -25,20 +25,20 @@ import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.util.DefaultStreamFactory;
import com.esotericsoftware.kryo.util.MapReferenceResolver;
-import org.apache.tinkerpop.gremlin.process.traversal.Path;
-import org.apache.tinkerpop.gremlin.process.traversal.T;
import org.apache.tinkerpop.gremlin.process.computer.MapReduce;
import org.apache.tinkerpop.gremlin.process.computer.util.MapMemory;
+import org.apache.tinkerpop.gremlin.process.traversal.Path;
+import org.apache.tinkerpop.gremlin.process.traversal.T;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_PA_S_SE_SL_Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_P_PA_S_SE_SL_Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.O_Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
import org.apache.tinkerpop.gremlin.process.traversal.util.DependantMutableMetrics;
import org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics;
import org.apache.tinkerpop.gremlin.process.traversal.util.StandardTraversalMetrics;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
import org.apache.tinkerpop.gremlin.structure.Contains;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -57,7 +57,25 @@ import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URI;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Currency;
+import java.util.Date;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.BiPredicate;
@@ -70,7 +88,7 @@ import java.util.stream.Collectors;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public final class GryoMapper implements Mapper<Kryo> {
+public final class GryoMapper implements Mapper<GryoKryo> {
static final byte[] GIO = "gio".getBytes();
private final List<Triplet<Class, Function<Kryo, Serializer>, Integer>> serializationList;
private final HeaderWriter headerWriter;
@@ -96,8 +114,8 @@ public final class GryoMapper implements Mapper<Kryo> {
}
@Override
- public Kryo createMapper() {
- final Kryo kryo = new Kryo(new GremlinClassResolver(), new MapReferenceResolver(), new DefaultStreamFactory());
+ public GryoKryo createMapper() {
+ final GryoKryo kryo = new GryoKryo(new GremlinClassResolver(), new MapReferenceResolver(), new DefaultStreamFactory());
kryo.addDefaultSerializer(Map.Entry.class, new EntrySerializer());
kryo.setRegistrationRequired(true);
serializationList.forEach(p -> {
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d17b6b72/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoOutput.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoOutput.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoOutput.java
new file mode 100644
index 0000000..e30b7d2
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoOutput.java
@@ -0,0 +1,57 @@
+/*
+ * 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.gryo;
+
+import com.esotericsoftware.kryo.io.Output;
+
+import java.io.OutputStream;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class GryoOutput extends Output {
+
+ public GryoOutput() {
+ super();
+ }
+
+ public GryoOutput(final int bufferSize) {
+ super(bufferSize);
+ }
+
+ public GryoOutput(final int bufferSize, final int maxBufferSize) {
+ super(bufferSize, maxBufferSize);
+ }
+
+ public GryoOutput(final byte[] buffer) {
+ super(buffer);
+ }
+
+ public GryoOutput(final byte[] buffer, final int maxBufferSize) {
+ super(buffer, maxBufferSize);
+ }
+
+ public GryoOutput(final OutputStream outputStream) {
+ super(outputStream);
+ }
+
+ public GryoOutput(final OutputStream outputStream, final int bufferSize) {
+ super(outputStream, bufferSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d17b6b72/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/SerializationTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/SerializationTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/SerializationTest.java
index 570e1c1..64e72ff 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/SerializationTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/SerializationTest.java
@@ -18,9 +18,6 @@
*/
package org.apache.tinkerpop.gremlin.structure;
-import org.apache.tinkerpop.shaded.kryo_2_24_0.Kryo;
-import org.apache.tinkerpop.shaded.kryo_2_24_0.io.Input;
-import org.apache.tinkerpop.shaded.kryo_2_24_0.io.Output;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
@@ -28,7 +25,10 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.process.traversal.Path;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoInput;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoKryo;
import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoOutput;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
@@ -54,14 +54,14 @@ public class SerializationTest {
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeVertexAsDetached() throws Exception {
final GryoMapper gryoMapper = graph.io().gryoMapper().create();
- final Kryo kryo = gryoMapper.createMapper();
+ final GryoKryo kryo = gryoMapper.createMapper();
final Vertex v = graph.vertices(convertToVertexId("marko")).next();
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
- final Output output = new Output(stream);
+ final GryoOutput output = new GryoOutput(stream);
kryo.writeObject(output, v);
output.close();
- final Input input = new Input(stream.toByteArray());
+ final GryoInput input = new GryoInput(stream.toByteArray());
final Vertex detached = kryo.readObject(input, Vertex.class);
input.close();
assertNotNull(detached);
@@ -75,14 +75,14 @@ public class SerializationTest {
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeEdgeAsDetached() throws Exception {
final GryoMapper gryoMapper = graph.io().gryoMapper().create();
- final Kryo kryo = gryoMapper.createMapper();
+ final GryoKryo kryo = gryoMapper.createMapper();
final Edge e = g.E(convertToEdgeId("marko", "knows", "vadas")).next();
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
- final Output output = new Output(stream);
+ final GryoOutput output = new GryoOutput(stream);
kryo.writeObject(output, e);
output.close();
- final Input input = new Input(stream.toByteArray());
+ final GryoInput input = new GryoInput(stream.toByteArray());
final Edge detached = kryo.readObject(input, Edge.class);
assertNotNull(detached);
assertEquals(e.label(), detached.label());
@@ -94,14 +94,14 @@ public class SerializationTest {
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializePropertyAsDetached() throws Exception {
final GryoMapper gryoMapper = graph.io().gryoMapper().create();
- final Kryo kryo = gryoMapper.createMapper();
+ final GryoKryo kryo = gryoMapper.createMapper();
final Property p = g.E(convertToEdgeId("marko", "knows", "vadas")).next().property("weight");
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
- final Output output = new Output(stream);
+ final GryoOutput output = new GryoOutput(stream);
kryo.writeObject(output, p);
output.close();
- final Input input = new Input(stream.toByteArray());
+ final GryoInput input = new GryoInput(stream.toByteArray());
final Property detached = kryo.readObject(input, Property.class);
assertNotNull(detached);
assertEquals(p.key(), detached.key());
@@ -112,14 +112,14 @@ public class SerializationTest {
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeVertexPropertyAsDetached() throws Exception {
final GryoMapper gryoMapper = graph.io().gryoMapper().create();
- final Kryo kryo = gryoMapper.createMapper();
+ final GryoKryo kryo = gryoMapper.createMapper();
final VertexProperty vp = graph.vertices(convertToVertexId("marko")).next().property("name");
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
- final Output output = new Output(stream);
+ final GryoOutput output = new GryoOutput(stream);
kryo.writeObject(output, vp);
output.close();
- final Input input = new Input(stream.toByteArray());
+ final GryoInput input = new GryoInput(stream.toByteArray());
final VertexProperty detached = kryo.readObject(input, VertexProperty.class);
input.close();
assertNotNull(detached);
@@ -132,14 +132,14 @@ public class SerializationTest {
@LoadGraphWith(LoadGraphWith.GraphData.CREW)
public void shouldSerializeVertexPropertyWithPropertiesAsDetached() throws Exception {
final GryoMapper gryoMapper = graph.io().gryoMapper().create();
- final Kryo kryo = gryoMapper.createMapper();
+ final GryoKryo kryo = gryoMapper.createMapper();
final VertexProperty<?> vp = graph.vertices(convertToVertexId("marko")).next().properties("location").next();
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
- final Output output = new Output(stream);
+ final GryoOutput output = new GryoOutput(stream);
kryo.writeObject(output, vp);
output.close();
- final Input input = new Input(stream.toByteArray());
+ final GryoInput input = new GryoInput(stream.toByteArray());
final VertexProperty<?> detached = kryo.readObject(input, VertexProperty.class);
input.close();
assertNotNull(detached);
@@ -156,15 +156,15 @@ public class SerializationTest {
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializePathAsDetached() throws Exception {
final GryoMapper gryoMapper = graph.io().gryoMapper().create();
- final Kryo kryo = gryoMapper.createMapper();
+ final GryoKryo kryo = gryoMapper.createMapper();
final Path p = g.V(convertToVertexId("marko")).as("a").outE().as("b").inV().as("c").path()
.filter(t -> ((Vertex) t.get().objects().get(2)).value("name").equals("lop")).next();
final ByteArrayOutputStream stream = new ByteArrayOutputStream();
- final Output output = new Output(stream);
+ final GryoOutput output = new GryoOutput(stream);
kryo.writeObject(output, p);
output.close();
- final Input input = new Input(stream.toByteArray());
+ final GryoInput input = new GryoInput(stream.toByteArray());
final Path detached = kryo.readObject(input, Path.class);
input.close();
assertNotNull(detached);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d17b6b72/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/io/ObjectWritable.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/io/ObjectWritable.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/io/ObjectWritable.java
index c01ce91..9cc942c 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/io/ObjectWritable.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/io/ObjectWritable.java
@@ -18,11 +18,11 @@
*/
package org.apache.tinkerpop.gremlin.hadoop.structure.io;
-import org.apache.tinkerpop.shaded.kryo_2_24_0.io.Input;
-import org.apache.tinkerpop.shaded.kryo_2_24_0.io.Output;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableUtils;
import org.apache.tinkerpop.gremlin.hadoop.process.computer.giraph.GiraphWorkerContext;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoInput;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoOutput;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -61,7 +61,7 @@ public final class ObjectWritable<T> implements WritableComparable<ObjectWritabl
public void readFields(final DataInput input) throws IOException {
this.t = GiraphWorkerContext.GRYO_POOL.doWithReader(gryoReader -> {
try {
- return gryoReader.readObject(new Input(new ByteArrayInputStream(WritableUtils.readCompressedByteArray(input))));
+ return gryoReader.readObject(new GryoInput(new ByteArrayInputStream(WritableUtils.readCompressedByteArray(input))));
} catch (IOException e) {
throw new IllegalStateException(e.getMessage(), e);
}
@@ -73,7 +73,7 @@ public final class ObjectWritable<T> implements WritableComparable<ObjectWritabl
GiraphWorkerContext.GRYO_POOL.doWithWriter(gryoWriter -> {
try {
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- final Output out = new Output(outputStream);
+ final GryoOutput out = new GryoOutput(outputStream);
gryoWriter.writeObject(out, this.t);
out.flush();
WritableUtils.writeCompressedByteArray(output, outputStream.toByteArray());