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());