TINKERPOP-1563 Removed deprecated getInstance() methods
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1a1ba583 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1a1ba583 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1a1ba583 Branch: refs/heads/TINKERPOP-1682 Commit: 1a1ba58333d1ebae69d1e5e4d14e01255bb5bb40 Parents: 732c80b Author: Stephen Mallette <[email protected]> Authored: Fri Jun 9 10:58:57 2017 -0400 Committer: Stephen Mallette <[email protected]> Committed: Fri Jun 9 10:58:57 2017 -0400 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 2 + docs/src/upgrade/release-3.3.x.asciidoc | 4 + .../SingleGremlinScriptEngineManager.java | 7 - .../structure/io/util/IoRegistryHelper.java | 3 + .../structure/util/empty/EmptyGraph.java | 5 - .../jsr223/SingleScriptEngineManagerTest.java | 1 - .../server/GremlinResultSetIntegrateTest.java | 4 +- gremlin-tools/gremlin-io-test/pom.xml | 4 +- .../GraphSONUntypedCompatibilityTest.java | 4 +- .../_3_2_3/manual-graphson-generator.groovy | 6 +- .../_3_2_4/manual-graphson-generator.groovy | 6 +- .../io/gryo/_3_2_3/manual-gryo-generator.groovy | 2 +- .../io/gryo/_3_2_4/manual-gryo-generator.groovy | 2 +- .../gremlin/hadoop/structure/HadoopGraph.java | 5 - .../jsr223/TinkerGraphGremlinPlugin.java | 4 +- .../tinkergraph/structure/TinkerIoRegistry.java | 272 ------------------- .../structure/TinkerIoRegistryV2d0.java | 8 - .../TinkerGraphGryoSerializerTest.java | 80 ------ .../TinkerGraphGryoSerializerV1d0Test.java | 5 +- 19 files changed, 26 insertions(+), 398 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/CHANGELOG.asciidoc ---------------------------------------------------------------------- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 404a570..1de020f 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -32,6 +32,8 @@ TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET) * Added "attachment requisite" `VertexProperty.element()` and `Property.element()` data in GraphSON serialization. * GraphSON 3.0 is now the default serialization format in TinkerGraph and Gremlin Server. * Established the GraphSON 3.0 format. +* Removed previously deprecated `TinkerIoRegistry`. +* Removed previously deprecated `getInstance()` methods on all TinkerPop classes. * Removed previously deprecated `VertexPropertyFeatures.supportsAddProperty()`. * Removed previously deprecated TinkerGraph configuration member variables. * Removed previously deprecated `OpSelectorHandler.errorMeter` and `AbstractEvalOpProcessor.errorMeter` fields. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/docs/src/upgrade/release-3.3.x.asciidoc ---------------------------------------------------------------------- diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc index 8d1c712..7d90e89 100644 --- a/docs/src/upgrade/release-3.3.x.asciidoc +++ b/docs/src/upgrade/release-3.3.x.asciidoc @@ -190,6 +190,7 @@ The following deprecated classes, methods or fields have been removed in this ve * `gremlin-core` ** `org.apache.tinkerpop.gremlin.jsr223.CoreGremlinModule` ** `org.apache.tinkerpop.gremlin.jsr223.GremlinModule` +** `org.apache.tinkerpop.gremlin.jsr223.SingleGremlinScriptEngineManager#getInstance()` ** `org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineManager#addModule(GremlinModule)` ** `org.apache.tinkerpop.gremlin.jsr223.console.PluginAcceptor` ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#supportsAddProperty()` @@ -247,6 +248,9 @@ The following deprecated classes, methods or fields have been removed in this ve * `tinkergraph-gremlin` ** `org.apache.tinkerpop.gremlin.tinkergraph.groovy.plugin.TinkerGraphGremlinPlugin` ** `org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph#CONFIG_*` +** `org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistry` +** `org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0#getInstance()` +** `org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0#getInstance()` Please see the javadoc deprecation notes or upgrade documentation specific to when the deprecation took place to understand how to resolve this breaking change. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/SingleGremlinScriptEngineManager.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/SingleGremlinScriptEngineManager.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/SingleGremlinScriptEngineManager.java index f9022dc..05cbe4c 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/SingleGremlinScriptEngineManager.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/SingleGremlinScriptEngineManager.java @@ -28,13 +28,6 @@ public final class SingleGremlinScriptEngineManager { private SingleGremlinScriptEngineManager() {} - /** - * @deprecated As of release 3.2.4, replaced by {@link #instance()}. - */ - public static GremlinScriptEngineManager getInstance(){ - return instance(); - } - public static GremlinScriptEngineManager instance(){ return cached; } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/util/IoRegistryHelper.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/util/IoRegistryHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/util/IoRegistryHelper.java index 0688e6f..f878cfc 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/util/IoRegistryHelper.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/util/IoRegistryHelper.java @@ -52,6 +52,9 @@ public final class IoRegistryHelper { instanceMethod = clazz.getDeclaredMethod("instance"); // try for getInstance() ?? } catch (final NoSuchMethodException e) { try { + // even though use of "getInstance" is no longer a thing in tinkerpop as of 3.3.0, perhaps + // others are using this style of naming. Doesn't seem to harm anything to continue to + // check for that method. instanceMethod = clazz.getDeclaredMethod("getInstance"); // try for getInstance() ?? } catch (final NoSuchMethodException e2) { // no instance() or getInstance() methods http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java index 59464c5..fa10c99 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java @@ -215,11 +215,6 @@ public final class EmptyGraph implements Graph { */ public final class EmptyGraphVertexPropertyFeatures implements VertexPropertyFeatures { @Override - public boolean supportsAddProperty() { - return false; - } - - @Override public boolean supportsRemoveProperty() { return false; } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/SingleScriptEngineManagerTest.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/SingleScriptEngineManagerTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/SingleScriptEngineManagerTest.java index 6765c94..089f189 100644 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/SingleScriptEngineManagerTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/SingleScriptEngineManagerTest.java @@ -35,7 +35,6 @@ public class SingleScriptEngineManagerTest { assertSame(mgr, SingleGremlinScriptEngineManager.instance()); assertSame(mgr, SingleGremlinScriptEngineManager.instance()); assertSame(mgr, SingleGremlinScriptEngineManager.instance()); - assertSame(mgr, SingleGremlinScriptEngineManager.getInstance()); } @Test(expected = IllegalArgumentException.class) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java index 17fd38d..e691e1c 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java @@ -42,7 +42,7 @@ import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex; import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexProperty; import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph; -import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistry; +import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0; import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; import org.hamcrest.CoreMatchers; import org.junit.After; @@ -82,7 +82,7 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat public void beforeTest() { final MessageSerializer serializer = new GryoMessageSerializerV1d0(); final Map<String,Object> c = new HashMap<>(); - c.put("ioRegistries", Collections.singletonList(TinkerIoRegistry.class.getName())); + c.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV1d0.class.getName())); c.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer")); serializer.configure(c, null); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-tools/gremlin-io-test/pom.xml ---------------------------------------------------------------------- diff --git a/gremlin-tools/gremlin-io-test/pom.xml b/gremlin-tools/gremlin-io-test/pom.xml index 625571f..60a56dc 100644 --- a/gremlin-tools/gremlin-io-test/pom.xml +++ b/gremlin-tools/gremlin-io-test/pom.xml @@ -351,14 +351,14 @@ writeSupportedObjects = { mapper, toGryoFunction -> mapper = GryoMapper.build(). version(GryoVersion.V1_0). - addRegistry(TinkerIoRegistryV2d0.getInstance()). + addRegistry(TinkerIoRegistryV2d0.instance()). create().createMapper() writeSupportedObjects(mapper, toGryoV1d0) mapper = GryoMapper.build(). version(GryoVersion.V3_0). - addRegistry(TinkerIoRegistryV2d0.getInstance()). + addRegistry(TinkerIoRegistryV2d0.instance()). create().createMapper() writeSupportedObjects(mapper, toGryoV3d0) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUntypedCompatibilityTest.java ---------------------------------------------------------------------- diff --git a/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUntypedCompatibilityTest.java b/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUntypedCompatibilityTest.java index 08eb811..65367dc 100644 --- a/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUntypedCompatibilityTest.java +++ b/gremlin-tools/gremlin-io-test/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUntypedCompatibilityTest.java @@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson; import org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV1d0; import org.apache.tinkerpop.gremlin.structure.io.AbstractUntypedCompatibilityTest; import org.apache.tinkerpop.gremlin.structure.io.Compatibility; -import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistry; +import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0; import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper; import org.junit.runner.RunWith; @@ -36,7 +36,7 @@ import java.util.Arrays; public class GraphSONUntypedCompatibilityTest extends AbstractUntypedCompatibilityTest { private static ObjectMapper mapperV1 = GraphSONMapper.build(). - addRegistry(TinkerIoRegistry.instance()). + addRegistry(TinkerIoRegistryV1d0.instance()). addCustomModule(new AbstractGraphSONMessageSerializerV1d0.GremlinServerModule()). version(GraphSONVersion.V1_0).create().createMapper(); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_3/manual-graphson-generator.groovy ---------------------------------------------------------------------- diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_3/manual-graphson-generator.groovy b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_3/manual-graphson-generator.groovy index af37164..878f6a3 100644 --- a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_3/manual-graphson-generator.groovy +++ b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_3/manual-graphson-generator.groovy @@ -154,7 +154,7 @@ createStaticTraversalMetrics = { } mapper = GraphSONMapper.build(). - addRegistry(TinkerIoRegistry.getInstance()). + addRegistry(TinkerIoRegistryV1d0.instance()). addCustomModule(new AbstractGraphSONMessageSerializerV1d0.GremlinServerModule()). version(GraphSONVersion.V1_0).create().createMapper() @@ -294,7 +294,7 @@ mapper = GraphSONMapper.build(). } mapper = GraphSONMapper.build(). - addRegistry(TinkerIoRegistryV2d0.getInstance()). + addRegistry(TinkerIoRegistryV2d0.instance()). typeInfo(TypeInfo.PARTIAL_TYPES). addCustomModule(GraphSONXModuleV2d0.build().create(false)). addCustomModule(new org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.GremlinServerModule()). @@ -304,7 +304,7 @@ file = new File("dev-docs/out-graphson-2d0-partial.txt") file.withWriter { writeSupportedV2Objects(it, mapper, toJsonV2d0PartialTypes) } mapper = GraphSONMapper.build(). - addRegistry(TinkerIoRegistryV2d0.getInstance()). + addRegistry(TinkerIoRegistryV2d0.instance()). typeInfo(TypeInfo.NO_TYPES). addCustomModule(GraphSONXModuleV2d0.build().create(false)). addCustomModule(new org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.GremlinServerModule()). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_4/manual-graphson-generator.groovy ---------------------------------------------------------------------- diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_4/manual-graphson-generator.groovy b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_4/manual-graphson-generator.groovy index 1d646f8..e1ff14d 100644 --- a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_4/manual-graphson-generator.groovy +++ b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/_3_2_4/manual-graphson-generator.groovy @@ -154,7 +154,7 @@ createStaticTraversalMetrics = { } mapper = GraphSONMapper.build(). - addRegistry(TinkerIoRegistry.getInstance()). + addRegistry(TinkerIoRegistryV1d0.instance()). addCustomModule(new AbstractGraphSONMessageSerializerV1d0.GremlinServerModule()). version(GraphSONVersion.V1_0).create().createMapper() @@ -294,7 +294,7 @@ mapper = GraphSONMapper.build(). } mapper = GraphSONMapper.build(). - addRegistry(TinkerIoRegistryV2d0.getInstance()). + addRegistry(TinkerIoRegistryV2d0.instance()). typeInfo(TypeInfo.PARTIAL_TYPES). addCustomModule(GraphSONXModuleV2d0.build().create(false)). addCustomModule(new org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.GremlinServerModule()). @@ -304,7 +304,7 @@ file = new File("dev-docs/out-graphson-2d0-partial.txt") file.withWriter { writeSupportedV2Objects(it, mapper, toJsonV2d0PartialTypes) } mapper = GraphSONMapper.build(). - addRegistry(TinkerIoRegistryV2d0.getInstance()). + addRegistry(TinkerIoRegistryV2d0.instance()). typeInfo(TypeInfo.NO_TYPES). addCustomModule(GraphSONXModuleV2d0.build().create(false)). addCustomModule(new org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.GremlinServerModule()). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_3/manual-gryo-generator.groovy ---------------------------------------------------------------------- diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_3/manual-gryo-generator.groovy b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_3/manual-gryo-generator.groovy index f641d11..d231aa7 100644 --- a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_3/manual-gryo-generator.groovy +++ b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_3/manual-gryo-generator.groovy @@ -192,7 +192,7 @@ writeSupportedObjects = { mapper, toGryoFunction -> toGryoFunction(ZoneOffset.ofHoursMinutesSeconds(3, 6, 9), "ZoneOffset", mapper) } -mapper = GryoMapper.build().addRegistry(TinkerIoRegistryV2d0.getInstance()).create().createMapper() +mapper = GryoMapper.build().addRegistry(TinkerIoRegistryV2d0.instance()).create().createMapper() writeSupportedObjects(mapper, toGryoV1d0) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_4/manual-gryo-generator.groovy ---------------------------------------------------------------------- diff --git a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_4/manual-gryo-generator.groovy b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_4/manual-gryo-generator.groovy index d204d4e..6e66f36 100644 --- a/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_4/manual-gryo-generator.groovy +++ b/gremlin-tools/gremlin-io-test/src/test/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/_3_2_4/manual-gryo-generator.groovy @@ -192,7 +192,7 @@ writeSupportedObjects = { mapper, toGryoFunction -> toGryoFunction(ZoneOffset.ofHoursMinutesSeconds(3, 6, 9), "ZoneOffset", mapper) } -mapper = GryoMapper.build().addRegistry(TinkerIoRegistryV2d0.getInstance()).create().createMapper() +mapper = GryoMapper.build().addRegistry(TinkerIoRegistryV2d0.instance()).create().createMapper() writeSupportedObjects(mapper, toGryoV1d0) http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java ---------------------------------------------------------------------- diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java index fdcfef2..63c7c57 100644 --- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java +++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java @@ -491,11 +491,6 @@ public final class HadoopGraph implements Graph { public Features.VertexPropertyFeatures properties() { return new Features.VertexPropertyFeatures() { @Override - public boolean supportsAddProperty() { - return false; - } - - @Override public boolean supportsRemoveProperty() { return false; } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/jsr223/TinkerGraphGremlinPlugin.java ---------------------------------------------------------------------- diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/jsr223/TinkerGraphGremlinPlugin.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/jsr223/TinkerGraphGremlinPlugin.java index 55e9a4d..b7b15d9 100644 --- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/jsr223/TinkerGraphGremlinPlugin.java +++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/jsr223/TinkerGraphGremlinPlugin.java @@ -34,7 +34,7 @@ import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraphVariables; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper; -import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistry; +import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerProperty; import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex; @@ -53,7 +53,7 @@ public final class TinkerGraphGremlinPlugin extends AbstractGremlinPlugin { TinkerGraph.class, TinkerGraphVariables.class, TinkerHelper.class, - TinkerIoRegistry.class, + TinkerIoRegistryV1d0.class, TinkerIoRegistryV2d0.class, TinkerProperty.class, TinkerVertex.class, http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistry.java ---------------------------------------------------------------------- diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistry.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistry.java deleted file mode 100644 index 5abb363..0000000 --- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistry.java +++ /dev/null @@ -1,272 +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.tinkergraph.structure; - -import org.apache.commons.configuration.BaseConfiguration; -import org.apache.commons.configuration.Configuration; -import org.apache.tinkerpop.gremlin.structure.Edge; -import org.apache.tinkerpop.gremlin.structure.Vertex; -import org.apache.tinkerpop.gremlin.structure.io.AbstractIoRegistry; -import org.apache.tinkerpop.gremlin.structure.io.GraphReader; -import org.apache.tinkerpop.gremlin.structure.io.GraphWriter; -import org.apache.tinkerpop.gremlin.structure.io.IoRegistry; -import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONIo; -import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens; -import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONUtil; -import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoIo; -import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader; -import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoWriter; -import org.apache.tinkerpop.gremlin.structure.util.Attachable; -import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge; -import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex; -import org.apache.tinkerpop.shaded.jackson.core.JsonGenerator; -import org.apache.tinkerpop.shaded.jackson.core.JsonParser; -import org.apache.tinkerpop.shaded.jackson.core.JsonProcessingException; -import org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext; -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.module.SimpleModule; -import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdSerializer; -import org.apache.tinkerpop.shaded.kryo.Kryo; -import org.apache.tinkerpop.shaded.kryo.Serializer; -import org.apache.tinkerpop.shaded.kryo.io.Input; -import org.apache.tinkerpop.shaded.kryo.io.Output; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * An implementation of the {@link IoRegistry} interface that provides serializers with custom configurations for - * implementation specific classes that might need to be serialized. This registry allows a {@link TinkerGraph} to - * be serialized directly which is useful for moving small graphs around on the network. - * <p/> - * Most providers need not implement this kind of custom serializer as they will deal with much larger graphs that - * wouldn't be practical to serialize in this fashion. This is a bit of a special case for TinkerGraph given its - * in-memory status. Typical implementations would create serializers for a complex vertex identifier or a - * custom data class like a "geographic point". - * - * @author Stephen Mallette (http://stephen.genoprime.com) - * @deprecated As of release 3.2.4, replaced by {@link TinkerIoRegistryV1d0}. - */ -@Deprecated -public final class TinkerIoRegistry extends AbstractIoRegistry { - - private static final TinkerIoRegistry INSTANCE = new TinkerIoRegistry(); - - private TinkerIoRegistry() { - register(GryoIo.class, TinkerGraph.class, new TinkerGraphGryoSerializer()); - register(GraphSONIo.class, null, new TinkerModule()); - } - - /** - * @deprecated As of release 3.2.4, replaced by {@link #instance()}. - */ - @Deprecated - public static TinkerIoRegistry getInstance() { - return instance(); - } - - public static TinkerIoRegistry instance() { - return INSTANCE; - } - - /** - * Provides a method to serialize an entire {@link TinkerGraph} into itself for Gryo. This is useful when - * shipping small graphs around through Gremlin Server. Reuses the existing Kryo instance for serialization. - */ - final static class TinkerGraphGryoSerializer extends Serializer<TinkerGraph> { - @Override - public void write(final Kryo kryo, final Output output, final TinkerGraph graph) { - try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) { - GryoWriter.build().mapper(() -> kryo).create().writeGraph(stream, graph); - final byte[] bytes = stream.toByteArray(); - output.writeInt(bytes.length); - output.write(bytes); - } catch (Exception io) { - throw new RuntimeException(io); - } - } - - @Override - public TinkerGraph read(final Kryo kryo, final Input input, final Class<TinkerGraph> tinkerGraphClass) { - final Configuration conf = new BaseConfiguration(); - conf.setProperty("gremlin.tinkergraph.defaultVertexPropertyCardinality", "list"); - final TinkerGraph graph = TinkerGraph.open(conf); - final int len = input.readInt(); - final byte[] bytes = input.readBytes(len); - try (final ByteArrayInputStream stream = new ByteArrayInputStream(bytes)) { - GryoReader.build().mapper(() -> kryo).create().readGraph(stream, graph); - } catch (Exception io) { - throw new RuntimeException(io); - } - - return graph; - } - } - - /** - * Provides a method to serialize an entire {@link TinkerGraph} into itself for GraphSON. This is useful when - * shipping small graphs around through Gremlin Server. - */ - final static class TinkerModule extends SimpleModule { - public TinkerModule() { - super("tinkergraph-1.0"); - addSerializer(TinkerGraph.class, new TinkerGraphJacksonSerializer()); - addDeserializer(TinkerGraph.class, new TinkerGraphJacksonDeserializer()); - } - } - - /** - * Serializes the graph into an edge list format. Edge list is a better choices than adjacency list (which is - * typically standard from the {@link GraphReader} and {@link GraphWriter} perspective) in this case because - * the use case for this isn't around massive graphs. The use case is for "small" subgraphs that are being - * shipped over the wire from Gremlin Server. Edge list format is a bit easier for non-JVM languages to work - * with as a format and doesn't require a cache for loading (as vertex labels are not serialized in adjacency - * list). - */ - final static class TinkerGraphJacksonSerializer extends StdSerializer<TinkerGraph> { - - public TinkerGraphJacksonSerializer() { - super(TinkerGraph.class); - } - - @Override - public void serialize(final TinkerGraph graph, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) - throws IOException { - jsonGenerator.writeStartObject(); - - jsonGenerator.writeFieldName(GraphSONTokens.VERTICES); - jsonGenerator.writeStartArray(); - - final Iterator<Vertex> vertices = graph.vertices(); - while (vertices.hasNext()) { - serializerProvider.defaultSerializeValue(vertices.next(), jsonGenerator); - } - - jsonGenerator.writeEndArray(); - - jsonGenerator.writeFieldName(GraphSONTokens.EDGES); - jsonGenerator.writeStartArray(); - - final Iterator<Edge> edges = graph.edges(); - while (edges.hasNext()) { - serializerProvider.defaultSerializeValue(edges.next(), jsonGenerator); - } - - jsonGenerator.writeEndArray(); - - jsonGenerator.writeEndObject(); - } - - @Override - public void serializeWithType(final TinkerGraph graph, final JsonGenerator jsonGenerator, - final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException { - jsonGenerator.writeStartObject(); - jsonGenerator.writeStringField(GraphSONTokens.CLASS, TinkerGraph.class.getName()); - - jsonGenerator.writeFieldName(GraphSONTokens.VERTICES); - jsonGenerator.writeStartArray(); - jsonGenerator.writeString(ArrayList.class.getName()); - jsonGenerator.writeStartArray(); - - final Iterator<Vertex> vertices = graph.vertices(); - while (vertices.hasNext()) { - GraphSONUtil.writeWithType(vertices.next(), jsonGenerator, serializerProvider, typeSerializer); - } - - jsonGenerator.writeEndArray(); - jsonGenerator.writeEndArray(); - - jsonGenerator.writeFieldName(GraphSONTokens.EDGES); - jsonGenerator.writeStartArray(); - jsonGenerator.writeString(ArrayList.class.getName()); - jsonGenerator.writeStartArray(); - - final Iterator<Edge> edges = graph.edges(); - while (edges.hasNext()) { - GraphSONUtil.writeWithType(edges.next(), jsonGenerator, serializerProvider, typeSerializer); - } - - jsonGenerator.writeEndArray(); - jsonGenerator.writeEndArray(); - - jsonGenerator.writeEndObject(); - } - } - - /** - * Deserializes the edge list format. - */ - static class TinkerGraphJacksonDeserializer extends StdDeserializer<TinkerGraph> { - public TinkerGraphJacksonDeserializer() { - super(TinkerGraph.class); - } - - @Override - public TinkerGraph deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { - final Configuration conf = new BaseConfiguration(); - conf.setProperty("gremlin.tinkergraph.defaultVertexPropertyCardinality", "list"); - final TinkerGraph graph = TinkerGraph.open(conf); - - final List<Map<String, Object>> edges; - final List<Map<String, Object>> vertices; - if (!jsonParser.getCurrentToken().isStructStart()) { - if (!jsonParser.getCurrentName().equals(GraphSONTokens.VERTICES)) - throw new IOException(String.format("Expected a '%s' key", GraphSONTokens.VERTICES)); - - jsonParser.nextToken(); - vertices = (List<Map<String, Object>>) deserializationContext.readValue(jsonParser, ArrayList.class); - jsonParser.nextToken(); - - if (!jsonParser.getCurrentName().equals(GraphSONTokens.EDGES)) - throw new IOException(String.format("Expected a '%s' key", GraphSONTokens.EDGES)); - - jsonParser.nextToken(); - edges = (List<Map<String, Object>>) deserializationContext.readValue(jsonParser, ArrayList.class); - } else { - final Map<String, Object> graphData = deserializationContext.readValue(jsonParser, HashMap.class); - vertices = (List<Map<String,Object>>) graphData.get(GraphSONTokens.VERTICES); - edges = (List<Map<String,Object>>) graphData.get(GraphSONTokens.EDGES); - } - - for (Map<String, Object> vertexData : vertices) { - final DetachedVertex detached = new DetachedVertex(vertexData.get(GraphSONTokens.ID), - vertexData.get(GraphSONTokens.LABEL).toString(), (Map<String,Object>) vertexData.get(GraphSONTokens.PROPERTIES)); - detached.attach(Attachable.Method.getOrCreate(graph)); - } - - for (Map<String, Object> edgeData : edges) { - final DetachedEdge detached = new DetachedEdge(edgeData.get(GraphSONTokens.ID), - edgeData.get(GraphSONTokens.LABEL).toString(), (Map<String,Object>) edgeData.get(GraphSONTokens.PROPERTIES), - edgeData.get(GraphSONTokens.OUT), edgeData.get(GraphSONTokens.OUT_LABEL).toString(), - edgeData.get(GraphSONTokens.IN), edgeData.get(GraphSONTokens.IN_LABEL).toString()); - detached.attach(Attachable.Method.getOrCreate(graph)); - } - - return graph; - } - } -} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistryV2d0.java ---------------------------------------------------------------------- diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistryV2d0.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistryV2d0.java index 280d1af..74c128e 100644 --- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistryV2d0.java +++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerIoRegistryV2d0.java @@ -74,14 +74,6 @@ public final class TinkerIoRegistryV2d0 extends AbstractIoRegistry { register(GraphSONIo.class, null, new TinkerModuleV2d0()); } - /** - * @deprecated As of release 3.2.4, replaced by {@link #instance()}. - */ - @Deprecated - public static TinkerIoRegistryV2d0 getInstance() { - return INSTANCE; - } - public static TinkerIoRegistryV2d0 instance() { return INSTANCE; } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerTest.java ---------------------------------------------------------------------- diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerTest.java deleted file mode 100644 index 703d127..0000000 --- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerTest.java +++ /dev/null @@ -1,80 +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.tinkergraph.structure; - -import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper; -import org.apache.tinkerpop.shaded.kryo.Kryo; -import org.apache.tinkerpop.shaded.kryo.Registration; -import org.apache.tinkerpop.shaded.kryo.io.Input; -import org.apache.tinkerpop.shaded.kryo.io.Output; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; - -import java.util.Arrays; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Mockito.atLeastOnce; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -/** - * Unit tests for {@link TinkerIoRegistry.TinkerGraphGryoSerializer} - */ -@RunWith(MockitoJUnitRunner.class) -public class TinkerGraphGryoSerializerTest { - - @Mock - private Kryo kryo; - @Mock - private Registration registration; - @Mock - private Output output; - @Mock - private Input input; - - private TinkerGraph graph = TinkerGraph.open(); - private TinkerIoRegistry.TinkerGraphGryoSerializer serializer = new TinkerIoRegistry.TinkerGraphGryoSerializer(); - - @Before - public void setUp() throws Exception { - when(kryo.getRegistration((Class) any())).thenReturn(registration); - when(input.readBytes(anyInt())).thenReturn(Arrays.copyOf(GryoMapper.HEADER, 100)); - } - - @Test - public void shouldVerifyKryoUsedForWrite() throws Exception { - serializer.write(kryo, output, graph); - verify(kryo, atLeastOnce()).getRegistration((Class) any()); - } - - @Test - public void shouldVerifyKryoUsedForRead() throws Exception { - // Not possible to mock an entire deserialization so just verify the same kryo instances are being used - try { - serializer.read(kryo, input, TinkerGraph.class); - } catch (RuntimeException ex) { - verify(kryo, atLeastOnce()).readObject(any(), any()); - verify(kryo, atLeastOnce()).readClassAndObject(any()); - } - } -} http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a1ba583/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerV1d0Test.java ---------------------------------------------------------------------- diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerV1d0Test.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerV1d0Test.java index 2233d53..fff3be6 100644 --- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerV1d0Test.java +++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphGryoSerializerV1d0Test.java @@ -19,9 +19,6 @@ package org.apache.tinkerpop.gremlin.tinkergraph.structure; import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper; -import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph; -import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistry; -import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0; import org.apache.tinkerpop.shaded.kryo.Kryo; import org.apache.tinkerpop.shaded.kryo.Registration; import org.apache.tinkerpop.shaded.kryo.io.Input; @@ -41,7 +38,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** - * Unit tests for {@link TinkerIoRegistry.TinkerGraphGryoSerializer} + * Unit tests for {@link TinkerIoRegistryV1d0.TinkerGraphGryoSerializer} */ @RunWith(MockitoJUnitRunner.class) public class TinkerGraphGryoSerializerV1d0Test {
