You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2016/11/28 18:10:18 UTC
[14/30] tinkerpop git commit: TINKERPOP-1562 Added SparkGremlinPlugin
TINKERPOP-1562 Added SparkGremlinPlugin
SparkGremlinPlugin required binding injections so a BindingCustomizer was added along with two implementations - one for direct assignment and one for lazy assignment.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0191510c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0191510c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0191510c
Branch: refs/heads/TINKERPOP-1562
Commit: 0191510cd8f704546164cfc8fa18d4a5e30fece4
Parents: 4f9c777
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Nov 22 10:57:32 2016 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Nov 28 13:09:25 2016 -0500
----------------------------------------------------------------------
.../gremlin/console/plugin/PluggedIn.groovy | 3 +
.../groovy/plugin/GremlinPluginAdapterTest.java | 63 ++++++++++++++
.../gremlin/jsr223/BindingsCustomizer.java | 33 +++++++
.../jsr223/DefaultBindingsCustomizer.java | 40 +++++++++
.../gremlin/jsr223/ImportGremlinPlugin.java | 16 ++++
.../jsr223/console/LazyBindingsCustomizer.java | 41 +++++++++
.../gremlin/groovy/engine/GremlinExecutor.java | 6 +-
.../spark/groovy/plugin/SparkGremlinPlugin.java | 2 +
.../spark/jsr223/SparkGremlinPlugin.java | 92 ++++++++++++++++++++
.../jsr223/TinkerGraphGremlinPlugin.java | 46 +++++-----
10 files changed, 317 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/PluggedIn.groovy
----------------------------------------------------------------------
diff --git a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/PluggedIn.groovy b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/PluggedIn.groovy
index d298cd7..b707226 100644
--- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/PluggedIn.groovy
+++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/PluggedIn.groovy
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.groovy.plugin.PluginAcceptor
import org.apache.tinkerpop.gremlin.groovy.plugin.PluginInitializationException
import org.apache.tinkerpop.gremlin.groovy.plugin.RemoteAcceptor
import org.apache.tinkerpop.gremlin.groovy.plugin.RemoteException
+import org.apache.tinkerpop.gremlin.jsr223.BindingsCustomizer
import org.apache.tinkerpop.gremlin.jsr223.ImportCustomizer
import org.apache.tinkerpop.gremlin.jsr223.ScriptCustomizer
import org.apache.tinkerpop.gremlin.jsr223.console.ConsoleCustomizer
@@ -88,6 +89,8 @@ class PluggedIn {
pluginAcceptor.addImports(imports)
} else if (it instanceof ScriptCustomizer) {
it.getScripts().collect { it.join(LINE_SEPARATOR) }.each { pluginAcceptor.eval(it) }
+ } else if (it instanceof BindingsCustomizer) {
+ it.bindings.entrySet().each { k, v -> pluginAcceptor.addBinding(k,v) }
}
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
----------------------------------------------------------------------
diff --git a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
new file mode 100644
index 0000000..77422da
--- /dev/null
+++ b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.console.groovy.plugin;
+
+import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn;
+import org.apache.tinkerpop.gremlin.jsr223.BindingsCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin;
+import org.apache.tinkerpop.gremlin.jsr223.ScriptCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin;
+import org.junit.Test;
+
+import java.time.DayOfWeek;
+import java.time.temporal.TemporalAccessor;
+import java.util.Set;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.IsCollectionContaining.hasItems;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class GremlinPluginAdapterTest {
+
+ @Test
+ public void shouldAdaptForImportCustomizer() throws Exception {
+ final ImportGremlinPlugin plugin = ImportGremlinPlugin.build()
+ .classImports(java.awt.Color.class, java.sql.CallableStatement.class)
+ .enumImports(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY)
+ .methodImports(DayOfWeek.class.getMethod("from", TemporalAccessor.class), DayOfWeek.class.getMethod("values")).create();
+ final PluggedIn.GremlinPluginAdapter adapter = new PluggedIn.GremlinPluginAdapter(plugin);
+
+ assertEquals(plugin.getName(), adapter.getName());
+
+ final SpyPluginAcceptor spy = new SpyPluginAcceptor();
+ adapter.pluginTo(spy);
+
+ final Set<String> imports = spy.getImports();
+ assertEquals(6, imports.size());
+ assertThat(imports, hasItems("import " + java.awt.Color.class.getCanonicalName()));
+ assertThat(imports, hasItems("import " + java.sql.CallableStatement.class.getCanonicalName()));
+ assertThat(imports, hasItems("import static " + DayOfWeek.class.getCanonicalName() + "." + DayOfWeek.SATURDAY.name()));
+ assertThat(imports, hasItems("import static " + DayOfWeek.class.getCanonicalName() + "." + DayOfWeek.SUNDAY.name()));
+ assertThat(imports, hasItems("import static " + DayOfWeek.class.getCanonicalName() + ".from"));
+ assertThat(imports, hasItems("import static " + DayOfWeek.class.getCanonicalName() + ".values"));
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/BindingsCustomizer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/BindingsCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/BindingsCustomizer.java
new file mode 100644
index 0000000..02c129e
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/BindingsCustomizer.java
@@ -0,0 +1,33 @@
+/*
+ * 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.jsr223;
+
+import javax.script.Bindings;
+
+/**
+ * Provides a way to alter the bindings on a {@link GremlinScriptEngine}.
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public interface BindingsCustomizer extends Customizer {
+ /**
+ * Gets the bindings to add to a {@link GremlinScriptEngine}.
+ */
+ public Bindings getBindings();
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultBindingsCustomizer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultBindingsCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultBindingsCustomizer.java
new file mode 100644
index 0000000..0073d39
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultBindingsCustomizer.java
@@ -0,0 +1,40 @@
+/*
+ * 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.jsr223;
+
+import javax.script.Bindings;
+
+/**
+ * Default implementation of the {@link BindingsCustomizer}.
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class DefaultBindingsCustomizer implements BindingsCustomizer {
+
+ private final Bindings bindings;
+
+ public DefaultBindingsCustomizer(final Bindings bindings) {
+ this.bindings = bindings;
+ }
+
+ @Override
+ public Bindings getBindings() {
+ return bindings;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/ImportGremlinPlugin.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/ImportGremlinPlugin.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/ImportGremlinPlugin.java
index a5ac278..26290d3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/ImportGremlinPlugin.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/ImportGremlinPlugin.java
@@ -20,6 +20,7 @@ package org.apache.tinkerpop.gremlin.jsr223;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
@@ -69,6 +70,11 @@ public final class ImportGremlinPlugin extends AbstractGremlinPlugin {
return this;
}
+ public Builder classImports(final Class<?>... classes) {
+ classImports.addAll(Arrays.asList(classes));
+ return this;
+ }
+
public Builder classImports(final Collection<String> classes) {
for (String clazz : classes) {
try {
@@ -108,6 +114,11 @@ public final class ImportGremlinPlugin extends AbstractGremlinPlugin {
return this;
}
+ public Builder methodImports(final Method... methods) {
+ methodImports.addAll(Arrays.asList(methods));
+ return this;
+ }
+
public Builder enumImports(final Collection<String> enums) {
for (String enumItem : enums) {
try {
@@ -138,6 +149,11 @@ public final class ImportGremlinPlugin extends AbstractGremlinPlugin {
return this;
}
+ public Builder enumImports(final Enum... enums) {
+ enumImports.addAll(Arrays.asList(enums));
+ return this;
+ }
+
public ImportGremlinPlugin create() {
if (enumImports.isEmpty() && classImports.isEmpty() && methodImports.isEmpty())
throw new IllegalStateException("At least one import must be specified");
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/LazyBindingsCustomizer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/LazyBindingsCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/LazyBindingsCustomizer.java
new file mode 100644
index 0000000..f21a2ab
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/LazyBindingsCustomizer.java
@@ -0,0 +1,41 @@
+/*
+ * 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.jsr223.console;
+
+import org.apache.tinkerpop.gremlin.jsr223.BindingsCustomizer;
+
+import javax.script.Bindings;
+import java.util.function.Supplier;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class LazyBindingsCustomizer implements BindingsCustomizer {
+
+ private final Supplier<Bindings> bindingsSupplier;
+
+ public LazyBindingsCustomizer(final Supplier<Bindings> bindingsSupplier) {
+ this.bindingsSupplier = bindingsSupplier;
+ }
+
+ @Override
+ public Bindings getBindings() {
+ return bindingsSupplier.get();
+ }
+}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
index 84f1992..87d5728 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
@@ -447,7 +447,11 @@ public class GremlinExecutor implements AutoCloseable {
final Map<String, Object> customizerConfigs = pluginConfig.getValue();
final Method[] methods = builderClazz.getMethods();
for (Map.Entry<String, Object> customizerConfig : customizerConfigs.entrySet()) {
- final Method configMethod = Stream.of(methods).filter(m -> m.getName().equals(customizerConfig.getKey())).findFirst()
+ final Method configMethod = Stream.of(methods).filter(m -> {
+ final Class<?> type = customizerConfig.getValue().getClass();
+ return m.getName().equals(customizerConfig.getKey()) && m.getParameters().length <= 1
+ && m.getParameters()[0].getType().isAssignableFrom(type);
+ }).findFirst()
.orElseThrow(() -> new IllegalStateException("Could not find builder method on " + builderClazz.getCanonicalName()));
if (null == customizerConfig.getValue())
pluginBuilder = configMethod.invoke(pluginBuilder);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/groovy/plugin/SparkGremlinPlugin.java
----------------------------------------------------------------------
diff --git a/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/groovy/plugin/SparkGremlinPlugin.java b/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/groovy/plugin/SparkGremlinPlugin.java
index 1fe23e3..c6eb682 100644
--- a/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/groovy/plugin/SparkGremlinPlugin.java
+++ b/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/groovy/plugin/SparkGremlinPlugin.java
@@ -34,7 +34,9 @@ import java.util.Set;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
+ * @deprecated As of release 3.2.4, replaced by {@link org.apache.tinkerpop.gremlin.spark.jsr223.SparkGremlinPlugin}.
*/
+@Deprecated
public final class SparkGremlinPlugin extends AbstractGremlinPlugin {
protected static String NAME = "tinkerpop.spark";
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/jsr223/SparkGremlinPlugin.java
----------------------------------------------------------------------
diff --git a/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/jsr223/SparkGremlinPlugin.java b/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/jsr223/SparkGremlinPlugin.java
new file mode 100644
index 0000000..840f593
--- /dev/null
+++ b/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/jsr223/SparkGremlinPlugin.java
@@ -0,0 +1,92 @@
+/*
+ * 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.spark.jsr223;
+
+import org.apache.tinkerpop.gremlin.jsr223.AbstractGremlinPlugin;
+import org.apache.tinkerpop.gremlin.jsr223.BindingsCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.DefaultImportCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.ImportCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.console.LazyBindingsCustomizer;
+import org.apache.tinkerpop.gremlin.spark.process.computer.CombineIterator;
+import org.apache.tinkerpop.gremlin.spark.process.computer.MapIterator;
+import org.apache.tinkerpop.gremlin.spark.process.computer.MemoryAccumulator;
+import org.apache.tinkerpop.gremlin.spark.process.computer.ReduceIterator;
+import org.apache.tinkerpop.gremlin.spark.process.computer.SparkExecutor;
+import org.apache.tinkerpop.gremlin.spark.process.computer.SparkGraphComputer;
+import org.apache.tinkerpop.gremlin.spark.process.computer.SparkMemory;
+import org.apache.tinkerpop.gremlin.spark.process.computer.SparkMessenger;
+import org.apache.tinkerpop.gremlin.spark.structure.Spark;
+import org.apache.tinkerpop.gremlin.spark.structure.io.InputFormatRDD;
+import org.apache.tinkerpop.gremlin.spark.structure.io.InputOutputHelper;
+import org.apache.tinkerpop.gremlin.spark.structure.io.InputRDD;
+import org.apache.tinkerpop.gremlin.spark.structure.io.InputRDDFormat;
+import org.apache.tinkerpop.gremlin.spark.structure.io.OutputFormatRDD;
+import org.apache.tinkerpop.gremlin.spark.structure.io.OutputRDD;
+import org.apache.tinkerpop.gremlin.spark.structure.io.PersistedInputRDD;
+import org.apache.tinkerpop.gremlin.spark.structure.io.PersistedOutputRDD;
+import org.apache.tinkerpop.gremlin.spark.structure.io.SparkContextStorage;
+
+import javax.script.Bindings;
+import javax.script.SimpleBindings;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public final class SparkGremlinPlugin extends AbstractGremlinPlugin {
+
+ protected static String NAME = "tinkerpop.spark";
+
+ private static final ImportCustomizer imports = DefaultImportCustomizer.build().addClassImports(
+ SparkGraphComputer.class,
+ CombineIterator.class,
+ MapIterator.class,
+ MemoryAccumulator.class,
+ ReduceIterator.class,
+ SparkExecutor.class,
+ SparkGraphComputer.class,
+ SparkMemory.class,
+ SparkMessenger.class,
+ Spark.class,
+ InputFormatRDD.class,
+ InputOutputHelper.class,
+ InputRDD.class,
+ InputRDDFormat.class,
+ OutputFormatRDD.class,
+ OutputRDD.class,
+ PersistedInputRDD.class,
+ PersistedOutputRDD.class,
+ SparkContextStorage.class).create();
+
+ private static final BindingsCustomizer bindings = new LazyBindingsCustomizer(() -> {
+ final Bindings bindings = new SimpleBindings();
+ bindings.put("spark", SparkContextStorage.open());
+ return bindings;
+ });
+
+ public SparkGremlinPlugin() {
+ super(NAME, imports, bindings);
+ }
+
+ @Override
+ public boolean requireRestart() {
+ return true;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0191510c/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 16a6cb5..68e649c 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
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.gremlin.tinkergraph.jsr223;
import org.apache.tinkerpop.gremlin.jsr223.AbstractGremlinPlugin;
import org.apache.tinkerpop.gremlin.jsr223.Customizer;
import org.apache.tinkerpop.gremlin.jsr223.DefaultImportCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.ImportCustomizer;
import org.apache.tinkerpop.gremlin.tinkergraph.process.computer.TinkerGraphComputer;
import org.apache.tinkerpop.gremlin.tinkergraph.process.computer.TinkerGraphComputerView;
import org.apache.tinkerpop.gremlin.tinkergraph.process.computer.TinkerMapEmitter;
@@ -48,30 +49,27 @@ import java.util.Optional;
public final class TinkerGraphGremlinPlugin extends AbstractGremlinPlugin {
private static final String MODULE_NAME = "tinkerpop.tinkergraph";
- public TinkerGraphGremlinPlugin() {
- super(MODULE_NAME, DefaultImportCustomizer.build().addClassImports(
- TinkerEdge.class,
- TinkerElement.class,
- TinkerFactory.class,
- TinkerGraph.class,
- TinkerGraphVariables.class,
- TinkerHelper.class,
- TinkerIoRegistry.class,
- TinkerIoRegistryV2d0.class,
- TinkerProperty.class,
- TinkerVertex.class,
- TinkerVertexProperty.class,
- TinkerGraphComputer.class,
- TinkerGraphComputerView.class,
- TinkerMapEmitter.class,
- TinkerMemory.class,
- TinkerMessenger.class,
- TinkerReduceEmitter.class,
- TinkerWorkerPool.class).create());
- }
+ private static final ImportCustomizer imports = DefaultImportCustomizer.build()
+ .addClassImports(TinkerEdge.class,
+ TinkerElement.class,
+ TinkerFactory.class,
+ TinkerGraph.class,
+ TinkerGraphVariables.class,
+ TinkerHelper.class,
+ TinkerIoRegistry.class,
+ TinkerIoRegistryV2d0.class,
+ TinkerProperty.class,
+ TinkerVertex.class,
+ TinkerVertexProperty.class,
+ TinkerGraphComputer.class,
+ TinkerGraphComputerView.class,
+ TinkerMapEmitter.class,
+ TinkerMemory.class,
+ TinkerMessenger.class,
+ TinkerReduceEmitter.class,
+ TinkerWorkerPool.class).create();
- @Override
- public Optional<Customizer[]> getCustomizers() {
- return null;
+ public TinkerGraphGremlinPlugin() {
+ super(MODULE_NAME, imports);
}
}