Java源码示例:org.apache.tinkerpop.gremlin.structure.io.gryo.GryoIo
示例1
public static void register(HugeGraphIoRegistry io) {
io.register(GryoIo.class, Optional.class, new OptionalSerializer());
// HugeGraph id serializer
io.register(GryoIo.class, IdGenerator.StringId.class,
new IdSerializer());
io.register(GryoIo.class, IdGenerator.LongId.class,
new IdSerializer());
io.register(GryoIo.class, EdgeId.class, new EdgeIdSerializer());
// HugeGraph schema serializer
io.register(GryoIo.class, PropertyKey.class,
new PropertyKeyKryoSerializer());
io.register(GryoIo.class, VertexLabel.class,
new VertexLabelKryoSerializer());
io.register(GryoIo.class, EdgeLabel.class,
new EdgeLabelKryoSerializer());
io.register(GryoIo.class, IndexLabel.class,
new IndexLabelKryoSerializer());
}
示例2
@Test
public void shouldFindRegisteredClassesByIoImplementation() {
// note that this is a non-standard usage of IoRegistry strictly for testing purposes - refer to javadocs
// for proper usage
final FakeIoRegistry registry = new FakeIoRegistry();
registry.register(GryoIo.class, Long.class, "test");
registry.register(GryoIo.class, Integer.class, 1);
registry.register(GryoIo.class, String.class, 1L);
registry.register(GraphSONIo.class, Short.class, 100);
final List<Pair<Class, Object>> foundGryo = registry.find(GryoIo.class);
assertEquals(3, foundGryo.size());
assertEquals("test", foundGryo.get(0).getValue1());
assertEquals(String.class, foundGryo.get(2).getValue0());
assertEquals(1L, foundGryo.get(2).getValue1());
assertEquals(Long.class, foundGryo.get(0).getValue0());
assertEquals(1, foundGryo.get(1).getValue1());
assertEquals(Integer.class, foundGryo.get(1).getValue0());
final List<Pair<Class, Object>> foundGraphSON = registry.find(GraphSONIo.class);
assertEquals(1, foundGraphSON.size());
assertEquals(100, foundGraphSON.get(0).getValue1());
assertEquals(Short.class, foundGraphSON.get(0).getValue0());
}
示例3
@Test
public void shouldFindRegisteredClassesByIoImplementationAndSerializer() {
// note that this is a non-standard usage of IoRegistry strictly for testing purposes - refer to javadocs
// for proper usage
final FakeIoRegistry registry = new FakeIoRegistry();
registry.register(GryoIo.class, Long.class, "test");
registry.register(GryoIo.class, Integer.class, 1);
registry.register(GryoIo.class, String.class, 1L);
registry.register(GraphSONIo.class, Short.class, 100);
final List<Pair<Class, Number>> foundGryo = registry.find(GryoIo.class, Number.class);
assertEquals(2, foundGryo.size());
assertEquals(String.class, foundGryo.get(1).getValue0());
assertEquals(1L, foundGryo.get(1).getValue1());
assertEquals(1, foundGryo.get(0).getValue1());
assertEquals(Integer.class, foundGryo.get(0).getValue0());
final List<Pair<Class, Date>> foundGraphSON = registry.find(GraphSONIo.class, Date.class);
assertEquals(0, foundGraphSON.size());
}
示例4
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeVertexAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Vertex v = graph.vertices(convertToVertexId("marko")).next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, v);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Vertex detached = gryoReader.readObject(inputStream, DetachedVertex.class);
assertNotNull(detached);
assertEquals(v.label(), detached.label());
assertEquals(v.id(), detached.id());
assertEquals(v.value("name").toString(), detached.value("name"));
assertEquals((Integer) v.value("age"), detached.value("age"));
}
示例5
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeEdgeAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Edge e = g.E(convertToEdgeId("marko", "knows", "vadas")).next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, e);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Edge detached = gryoReader.readObject(inputStream, DetachedEdge.class);
assertNotNull(detached);
assertEquals(e.label(), detached.label());
assertEquals(e.id(), detached.id());
assertEquals((Double) e.value("weight"), detached.value("weight"));
}
示例6
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializePropertyAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Property property = g.E(convertToEdgeId("marko", "knows", "vadas")).next().property("weight");
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, property);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Property detached = gryoReader.readObject(inputStream, DetachedProperty.class);
assertNotNull(detached);
assertEquals(property.key(), detached.key());
assertEquals(property.value(), detached.value());
}
示例7
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeVertexPropertyAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final VertexProperty vertexProperty = graph.vertices(convertToVertexId("marko")).next().property("name");
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, vertexProperty);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final VertexProperty detached = gryoReader.readObject(inputStream, DetachedVertexProperty.class);
assertNotNull(detached);
assertEquals(vertexProperty.label(), detached.label());
assertEquals(vertexProperty.id(), detached.id());
assertEquals(vertexProperty.value(), detached.value());
}
示例8
@Test
@LoadGraphWith(LoadGraphWith.GraphData.CREW)
public void shouldSerializeVertexPropertyWithPropertiesAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final VertexProperty<?> vertexProperty = IteratorUtils.filter(graph.vertices(convertToVertexId("marko")).next().properties("location"), p -> p.value().equals("brussels")).next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, vertexProperty);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final VertexProperty<?> detached = gryoReader.readObject(inputStream, DetachedVertexProperty.class);
assertNotNull(detached);
assertEquals(vertexProperty.label(), detached.label());
assertEquals(vertexProperty.id(), detached.id());
assertEquals(vertexProperty.value(), detached.value());
assertEquals(vertexProperty.values("startTime").next(), detached.values("startTime").next());
assertEquals(vertexProperty.properties("startTime").next().key(), detached.properties("startTime").next().key());
assertEquals(vertexProperty.values("endTime").next(), detached.values("endTime").next());
assertEquals(vertexProperty.properties("endTime").next().key(), detached.properties("endTime").next().key());
}
示例9
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeTraversalMetrics() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final TraversalMetrics before = g.V().both().profile().next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, before);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final TraversalMetrics after = gryoReader.readObject(inputStream, TraversalMetrics.class);
assertNotNull(after);
assertEquals(before.getMetrics().size(), after.getMetrics().size());
assertEquals(before.getDuration(TimeUnit.MILLISECONDS), after.getDuration(TimeUnit.MILLISECONDS));
assertEquals(before.getMetrics(0).getCounts(), after.getMetrics().stream().findFirst().get().getCounts());
}
示例10
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeTree() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V1_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Tree before = g.V(convertToVertexId("marko")).out().properties("name").tree().next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, before);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Tree after = gryoReader.readObject(inputStream, Tree.class);
assertNotNull(after);
//The following assertions should be sufficent.
assertThat("Type does not match", after, instanceOf(Tree.class));
assertEquals("The objects differ", after, before);
}
示例11
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeVertexAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Vertex v = graph.vertices(convertToVertexId("marko")).next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, v);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Vertex detached = gryoReader.readObject(inputStream, DetachedVertex.class);
assertNotNull(detached);
assertEquals(v.label(), detached.label());
assertEquals(v.id(), detached.id());
assertEquals(v.value("name").toString(), detached.value("name"));
assertEquals((Integer) v.value("age"), detached.value("age"));
}
示例12
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeEdgeAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Edge e = g.E(convertToEdgeId("marko", "knows", "vadas")).next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, e);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Edge detached = gryoReader.readObject(inputStream, DetachedEdge.class);
assertNotNull(detached);
assertEquals(e.label(), detached.label());
assertEquals(e.id(), detached.id());
assertEquals((Double) e.value("weight"), detached.value("weight"));
}
示例13
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializePropertyAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Property property = g.E(convertToEdgeId("marko", "knows", "vadas")).next().property("weight");
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, property);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Property detached = gryoReader.readObject(inputStream, DetachedProperty.class);
assertNotNull(detached);
assertEquals(property.key(), detached.key());
assertEquals(property.value(), detached.value());
}
示例14
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeVertexPropertyAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final VertexProperty vertexProperty = graph.vertices(convertToVertexId("marko")).next().property("name");
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, vertexProperty);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final VertexProperty detached = gryoReader.readObject(inputStream, DetachedVertexProperty.class);
assertNotNull(detached);
assertEquals(vertexProperty.label(), detached.label());
assertEquals(vertexProperty.id(), detached.id());
assertEquals(vertexProperty.value(), detached.value());
}
示例15
@Test
@LoadGraphWith(LoadGraphWith.GraphData.CREW)
public void shouldSerializeVertexPropertyWithPropertiesAsDetached() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final VertexProperty<?> vertexProperty = IteratorUtils.filter(graph.vertices(convertToVertexId("marko")).next().properties("location"), p -> p.value().equals("brussels")).next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, vertexProperty);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final VertexProperty<?> detached = gryoReader.readObject(inputStream, DetachedVertexProperty.class);
assertNotNull(detached);
assertEquals(vertexProperty.label(), detached.label());
assertEquals(vertexProperty.id(), detached.id());
assertEquals(vertexProperty.value(), detached.value());
assertEquals(vertexProperty.values("startTime").next(), detached.values("startTime").next());
assertEquals(vertexProperty.properties("startTime").next().key(), detached.properties("startTime").next().key());
assertEquals(vertexProperty.values("endTime").next(), detached.values("endTime").next());
assertEquals(vertexProperty.properties("endTime").next().key(), detached.properties("endTime").next().key());
}
示例16
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeTraversalMetrics() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final TraversalMetrics before = (TraversalMetrics) g.V().both().profile().next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, before);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final TraversalMetrics after = gryoReader.readObject(inputStream, TraversalMetrics.class);
assertNotNull(after);
assertEquals(before.getMetrics().size(), after.getMetrics().size());
assertEquals(before.getDuration(TimeUnit.MILLISECONDS), after.getDuration(TimeUnit.MILLISECONDS));
assertEquals(before.getMetrics(0).getCounts(), after.getMetrics().stream().findFirst().get().getCounts());
}
示例17
@Test
@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
public void shouldSerializeTree() throws Exception {
final GryoIo gryoIo = graph.io(GryoIo.build(GryoVersion.V3_0));
final GryoWriter gryoWriter = gryoIo.writer().create();
final GryoReader gryoReader = gryoIo.reader().create();
final Tree before = g.V(convertToVertexId("marko")).out().properties("name").tree().next();
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
gryoWriter.writeObject(outputStream, before);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
final Tree after = gryoReader.readObject(inputStream, Tree.class);
assertNotNull(after);
//The following assertions should be sufficent.
assertThat("Type does not match", after, instanceOf(Tree.class));
assertEquals("The objects differ", after, before);
}
示例18
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"graphson-v1", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().create()},
{"graphson-v1-embedded", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().mapper(g.io(IoCore.graphson()).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().mapper(g.io(IoCore.graphson()).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v2", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create()},
{"graphson-v2-embedded", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create()},
{"gryo-v1", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).writer().create()},
{"gryo-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).writer().create()}
});
}
示例19
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"graphson-v1", false, false,
(Function<Graph,GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().create()},
{"graphson-v1-embedded", true, true,
(Function<Graph,GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v2", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create()},
{"graphson-v2-embedded", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create()},
{"gryo-v1", true, true,
(Function<Graph,GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).writer().create()},
{"gryo-v3", true, true,
(Function<Graph,GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).writer().create()}
});
}
示例20
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
final SimpleModule moduleV1d0 = new SimpleModule();
moduleV1d0.addSerializer(CustomId.class, new CustomId.CustomIdJacksonSerializerV1d0());
final SimpleModule moduleV2d0 = new CustomId.CustomIdTinkerPopJacksonModuleV2d0();
final SimpleModule modulev3d0 = new CustomId.CustomIdTinkerPopJacksonModuleV3d0();
return Arrays.asList(new Object[][]{
{"graphson-v1-embedded", true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V1_0)).mapper().addCustomModule(moduleV1d0).typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V1_0)).mapper().addCustomModule(moduleV1d0).typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v2-embedded", true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().addCustomModule(moduleV2d0).typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().addCustomModule(moduleV2d0).typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v3", true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().addCustomModule(modulev3d0).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().addCustomModule(modulev3d0).create()).create()},
{"gryo-v1", true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).reader().mapper(g.io(GryoIo.build(GryoVersion.V1_0)).mapper().version(GryoVersion.V1_0).addCustom(CustomId.class).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).writer().mapper(g.io(GryoIo.build(GryoVersion.V1_0)).mapper().version(GryoVersion.V1_0).addCustom(CustomId.class).create()).create()},
{"gryo-v3", true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).reader().mapper(g.io(GryoIo.build(GryoVersion.V3_0)).mapper().version(GryoVersion.V3_0).addCustom(CustomId.class).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).writer().mapper(g.io(GryoIo.build(GryoVersion.V3_0)).mapper().version(GryoVersion.V3_0).addCustom(CustomId.class).create()).create()}
});
}
示例21
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"graphson-v1", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().create()},
{"graphson-v1-embedded", true, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V1_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V1_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v2", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create()},
{"graphson-v2-embedded", true, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v3", true, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create()},
{"gryo-v1", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).writer().create()},
{"gryo-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).writer().create()}
});
}
示例22
@Test
public void testTail() throws IOException {
Graph graph = this.sqlgGraph;
final GraphReader reader = GryoReader.build()
.mapper(graph.io(GryoIo.build()).mapper().create())
.create();
try (final InputStream stream = AbstractGremlinTest.class.getResourceAsStream("/tinkerpop-modern.kryo")) {
reader.readGraph(stream, graph);
}
assertModernGraph(graph, true, false);
GraphTraversalSource g = graph.traversal();
int tail = 0;
for (int i = 1; i < 72; i++) {
tail = i;
List<Vertex> vertices = g.V().repeat(both()).times(3).tail(tail).toList();
if (tail != vertices.size()) {
System.out.println("expected " + tail + " found " + vertices.size());
}
}
}
示例23
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"graphson-v1", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().create()},
{"graphson-v1-embedded", true, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V1_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V1_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v2", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create()},
{"graphson-v2-embedded", true, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v3", true, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create()},
{"gryo-v1", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).writer().create()},
{"gryo-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).writer().create()}
});
}
示例24
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"graphson-v1", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().create()},
{"graphson-v1-embedded", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V1_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v2", false, false,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.NO_TYPES).create()).create()},
{"graphson-v2-embedded", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V2_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V2_0)).mapper().typeInfo(TypeInfo.PARTIAL_TYPES).create()).create()},
{"graphson-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).reader().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create(),
(Function<Graph, GraphWriter>) g -> g.io(GraphSONIo.build(GraphSONVersion.V3_0)).writer().mapper(g.io(GraphSONIo.build(GraphSONVersion.V3_0)).mapper().create()).create()},
{"gryo-v1", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V1_0)).writer().create()},
{"gryo-v3", true, true,
(Function<Graph, GraphReader>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).reader().create(),
(Function<Graph, GraphWriter>) g -> g.io(GryoIo.build(GryoVersion.V3_0)).writer().create()}
});
}
示例25
private BitsyIoRegistryV3d0() {
register(GryoIo.class, UUID.class, new UUIDGryoSerializer());
register(GryoIo.class, VertexBean.class, new UUIDGryoSerializer());
register(GryoIo.class, EdgeBean.class, new UUIDGryoSerializer());
register(GraphSONIo.class, UUID.class, BitsyGraphSONModule.getInstance());
register(GraphSONIo.class, VertexBean.class, BitsyGraphSONModule.getInstance());
register(GraphSONIo.class, EdgeBean.class, BitsyGraphSONModule.getInstance());
}
示例26
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"graphml", IoCore.graphml(), false, true, ".xml"},
{"graphsonv1d0", GraphSONIo.build(GraphSONVersion.V1_0), true, true, ".json"},
{"graphsonv2d0", GraphSONIo.build(GraphSONVersion.V2_0), true, true, ".json"},
{"graphsonv3d0", GraphSONIo.build(GraphSONVersion.V3_0), true, true, ".json"},
{"gryo-v3", GryoIo.build(GryoVersion.V1_0), false, false, ".kryo"},
{"gryo-v3", GryoIo.build(GryoVersion.V3_0), false, false, ".kryo"}
});
}
示例27
private SparkIoRegistry() {
try {
super.register(GryoIo.class, Tuple2.class, new Tuple2Serializer());
super.register(GryoIo.class, Tuple2[].class, null);
super.register(GryoIo.class, Tuple3.class, new Tuple3Serializer());
super.register(GryoIo.class, Tuple3[].class, null);
super.register(GryoIo.class, CompactBuffer.class, new CompactBufferSerializer());
super.register(GryoIo.class, CompactBuffer[].class, null);
super.register(GryoIo.class, CompressedMapStatus.class, null);
super.register(GryoIo.class, BlockManagerId.class, null);
super.register(GryoIo.class, HighlyCompressedMapStatus.class, new ExternalizableSerializer()); // externalizable implemented so its okay
super.register(GryoIo.class, TorrentBroadcast.class, null);
super.register(GryoIo.class, PythonBroadcast.class, null);
super.register(GryoIo.class, BoxedUnit.class, null);
super.register(GryoIo.class, Class.forName("scala.reflect.ClassTag$$anon$1"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("scala.reflect.ManifestFactory$$anon$1"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("org.apache.spark.internal.io.FileCommitProtocol$TaskCommitMessage"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("org.apache.spark.internal.io.FileCommitProtocol$EmptyTaskCommitMessage$"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("scala.collection.immutable.Map$EmptyMap$"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("scala.collection.immutable.Map"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("scala.None$"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("scala.Some$"), new JavaSerializer());
super.register(GryoIo.class, Class.forName("scala.Some"), new JavaSerializer());
super.register(GryoIo.class, WrappedArray.ofRef.class, new WrappedArraySerializer());
super.register(GryoIo.class, MessagePayload.class, null);
super.register(GryoIo.class, ViewIncomingPayload.class, null);
super.register(GryoIo.class, ViewOutgoingPayload.class, null);
super.register(GryoIo.class, ViewPayload.class, null);
super.register(GryoIo.class, SerializableConfiguration.class, new JavaSerializer());
super.register(GryoIo.class, VertexWritable.class, new VertexWritableSerializer());
super.register(GryoIo.class, ObjectWritable.class, new ObjectWritableSerializer());
} catch (final ClassNotFoundException e) {
throw new IllegalStateException(e);
}
}
示例28
@Override
public JavaPairRDD<Object, VertexWritable> readGraphRDD(final Configuration configuration, final JavaSparkContext sparkContext) {
KryoShimServiceLoader.applyConfiguration(TinkerGraph.open().configuration());
final List<VertexWritable> vertices;
if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("modern"))
vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createModern().vertices(), VertexWritable::new));
else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("classic"))
vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createClassic().vertices(), VertexWritable::new));
else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("crew"))
vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createTheCrew().vertices(), VertexWritable::new));
else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("sink"))
vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createKitchenSink().vertices(), VertexWritable::new));
else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("grateful")) {
try {
final Graph graph = TinkerGraph.open();
final GraphReader reader = GryoReader.build().mapper(graph.io(GryoIo.build()).mapper().create()).create();
try (final InputStream stream = GryoResourceAccess.class.getResourceAsStream("grateful-dead-v3d0.kryo")) {
reader.readGraph(stream, graph);
}
vertices = IteratorUtils.list(IteratorUtils.map(graph.vertices(), VertexWritable::new));
} catch (final IOException e) {
throw new IllegalStateException(e.getMessage(), e);
}
} else
throw new IllegalArgumentException("No legal toy graph was provided to load: " + configuration.getProperty(Constants.GREMLIN_HADOOP_INPUT_LOCATION));
return sparkContext.parallelize(vertices).mapToPair(vertex -> new Tuple2<>(vertex.get().id(), vertex));
}
示例29
public void g_V_chooseXlabel_eq_person__unionX__out_lang__out_nameX__in_labelX() throws IOException {
Graph graph = this.sqlgGraph;
final GraphReader reader = GryoReader.build()
.mapper(graph.io(GryoIo.build()).mapper().create())
.create();
try (final InputStream stream = AbstractGremlinTest.class.getResourceAsStream("/tinkerpop-modern.kryo")) {
reader.readGraph(stream, graph);
}
assertModernGraph(graph, true, false);
GraphTraversalSource g = graph.traversal();
List<Vertex> traversala2 = g.V().hasId(convertToVertexId("marko")).toList();
Assert.assertEquals(1, traversala2.size());
Assert.assertEquals(convertToVertex(graph, "marko"), traversala2.get(0));
}
示例30
private TinkerIoRegistryV1d0() {
register(GryoIo.class, TinkerGraph.class, new TinkerGraphGryoSerializer());
register(GraphSONIo.class, null, new TinkerModule());
}