Repository: tinkerpop
Updated Branches:
  refs/heads/master 2e64a9521 -> 28b3139ed


Deprecated some old plugin infrastructure code

Moved PluggedIn out of plugins package as that package is basically being 
deleted in 3.3.0. CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ec8f81e6
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ec8f81e6
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ec8f81e6

Branch: refs/heads/master
Commit: ec8f81e687e086940a10d4d2e4ed0ee624bbaa7e
Parents: de38c6d
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Feb 27 10:43:19 2017 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Feb 27 10:43:19 2017 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 .../tinkerpop/gremlin/console/Console.groovy    |   1 -
 .../tinkerpop/gremlin/console/Mediator.groovy   |   1 -
 .../tinkerpop/gremlin/console/PluggedIn.groovy  | 166 +++++++++++++++++++
 .../console/commands/InstallCommand.groovy      |   2 +-
 .../console/plugin/ConsolePluginAcceptor.groovy |   2 +
 .../gremlin/console/plugin/PluggedIn.groovy     |   2 +
 .../groovy/plugin/GremlinPluginAdapterTest.java |   2 +-
 .../jsr223/UtilitiesGremlinPluginTest.java      |   2 +-
 .../gremlin/jsr223/console/PluginAcceptor.java  |   2 +
 10 files changed, 176 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 34d74d4..7998974 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -28,6 +28,7 @@ TinkerPop 3.2.5 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Removed `HasTest.g_V_hasId_compilationEquality` from process test suite as 
it makes too many assumptions about provider compilation.
 * Deprecated `CustomizerProvider` infrastructure.
+* Deprecated `PluginAcceptor` infrastructure.
 * Improved consistency of the application of bindings to `GremlinScriptEngine` 
implementations in the `BindingsGremlinPlugin`.
 * Fixed a bug in OLAP `ComputerAwareStep` where end-step labels were not being 
appended to the traverser correctly.
 * Refactor `SparkContext` handler to support external kill and stop operations.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
index be71cb0..651d6f3 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
@@ -28,7 +28,6 @@ import 
org.apache.tinkerpop.gremlin.console.commands.PluginCommand
 import org.apache.tinkerpop.gremlin.console.commands.RemoteCommand
 import org.apache.tinkerpop.gremlin.console.commands.SubmitCommand
 import org.apache.tinkerpop.gremlin.console.commands.UninstallCommand
-import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn
 import org.apache.tinkerpop.gremlin.groovy.loaders.GremlinLoader
 import org.apache.tinkerpop.gremlin.groovy.plugin.GremlinPlugin
 import org.apache.tinkerpop.gremlin.jsr223.CoreGremlinPlugin

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Mediator.groovy
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Mediator.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Mediator.groovy
index 74f956d..2f5b827 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Mediator.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Mediator.groovy
@@ -18,7 +18,6 @@
  */
 package org.apache.tinkerpop.gremlin.console
 
-import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn
 import org.apache.tinkerpop.gremlin.groovy.plugin.RemoteAcceptor
 
 /**

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/PluggedIn.groovy
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/PluggedIn.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/PluggedIn.groovy
new file mode 100644
index 0000000..a1e1ee7
--- /dev/null
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/PluggedIn.groovy
@@ -0,0 +1,166 @@
+/*
+ * 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
+
+import org.apache.tinkerpop.gremlin.console.plugin.ConsolePluginAcceptor
+import org.apache.tinkerpop.gremlin.groovy.plugin.*
+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
+import org.apache.tinkerpop.gremlin.jsr223.console.GremlinShellEnvironment
+import org.codehaus.groovy.tools.shell.Groovysh
+import org.codehaus.groovy.tools.shell.IO
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+class PluggedIn {
+    private static final String LINE_SEPARATOR = 
System.getProperty("line.separator")
+    private final GremlinPlugin plugin
+    private boolean activated = false
+
+    private final Groovysh shell
+    private final IO io
+
+    public PluggedIn(final GremlinPlugin plugin, final Groovysh shell, final 
IO io, final boolean activated) {
+        this.plugin = plugin
+        this.activated = activated
+        this.shell = shell
+        this.io = io
+    }
+
+    GremlinPlugin getPlugin() {
+        return plugin
+    }
+
+    boolean getActivated() {
+        return activated
+    }
+
+    void activate() {
+        plugin.pluginTo(new ConsolePluginAcceptor(shell, io))
+        this.activated = true
+    }
+
+    void deactivate() {
+        this.activated = false
+    }
+
+    public static class GremlinPluginAdapter implements GremlinPlugin {
+        org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin corePlugin
+        private final Groovysh shell
+        private final IO io
+
+        public GremlinPluginAdapter(final 
org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin corePlugin, final Groovysh 
shell, final IO io) {
+            this.corePlugin = corePlugin
+            this.shell = shell
+            this.io = io
+        }
+
+        @Override
+        String getName() {
+            return corePlugin.getName()
+        }
+
+        @Override
+        void pluginTo(final PluginAcceptor pluginAcceptor) throws 
IllegalEnvironmentException, PluginInitializationException {
+            corePlugin.getCustomizers("gremlin-groovy").get().each {
+                if (it instanceof ImportCustomizer) {
+                    def imports = [] as Set
+                    it.getClassPackages().collect {Mediator.IMPORT_SPACE + 
it.getName() + Mediator.IMPORT_WILDCARD }.each { imports.add(it) }
+                    it.getMethodClasses().collect 
{Mediator.IMPORT_STATIC_SPACE + it.getCanonicalName() + 
Mediator.IMPORT_WILDCARD}.each {imports.add(it)}
+                    it.getEnumClasses().collect {Mediator.IMPORT_STATIC_SPACE 
+ it.getCanonicalName() + Mediator.IMPORT_WILDCARD}.each {imports.add(it)}
+                    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 { kv -> 
pluginAcceptor.addBinding(kv.key, kv.value) }
+                }
+            }
+        }
+
+        @Override
+        boolean requireRestart() {
+            return corePlugin.requireRestart()
+        }
+
+        @Override
+        Optional<RemoteAcceptor> remoteAcceptor() {
+            // find a consoleCustomizer if available
+            if (!corePlugin.getCustomizers("gremlin-groovy").isPresent() || 
!corePlugin.getCustomizers("gremlin-groovy").get().any{ it instanceof 
ConsoleCustomizer })
+                return Optional.empty()
+
+            ConsoleCustomizer customizer = (ConsoleCustomizer) 
corePlugin.getCustomizers("gremlin-groovy").get().find{ it instanceof 
ConsoleCustomizer }
+            return Optional.of(new 
RemoteAcceptorAdapter(customizer.getRemoteAcceptor(new 
GroovyGremlinShellEnvironment())))
+        }
+
+        public class GroovyGremlinShellEnvironment implements 
GremlinShellEnvironment {
+
+            @Override
+            def <T> T getVariable(final String variableName) {
+                return (T) shell.interp.context.getVariable(variableName)
+            }
+
+            @Override
+            def <T> void setVariable(final String variableName, final T 
variableValue) {
+                shell.interp.context.setVariable(variableName, variableValue)
+            }
+
+            @Override
+            void println(final String line) {
+                io.println(line)
+            }
+
+            @Override
+            def <T> T execute(final String line) {
+                return (T) shell.execute(line)
+            }
+        }
+    }
+
+    public static class RemoteAcceptorAdapter implements RemoteAcceptor {
+
+        private org.apache.tinkerpop.gremlin.jsr223.console.RemoteAcceptor 
remoteAcceptor
+
+        public 
RemoteAcceptorAdapter(org.apache.tinkerpop.gremlin.jsr223.console.RemoteAcceptor
 remoteAcceptor) {
+            this.remoteAcceptor = remoteAcceptor
+        }
+
+        @Override
+        Object connect(final List<String> args) throws RemoteException {
+            return remoteAcceptor.connect(args)
+        }
+
+        @Override
+        Object configure(final List<String> args) throws RemoteException {
+            return remoteAcceptor.configure(args)
+        }
+
+        @Override
+        Object submit(final List<String> args) throws RemoteException {
+            return remoteAcceptor.submit(args)
+        }
+
+        @Override
+        void close() throws IOException {
+            remoteAcceptor.close()
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/InstallCommand.groovy
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/InstallCommand.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/InstallCommand.groovy
index c8a49df..5386e89 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/InstallCommand.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/InstallCommand.groovy
@@ -20,7 +20,7 @@ package org.apache.tinkerpop.gremlin.console.commands
 
 import org.apache.tinkerpop.gremlin.console.ConsoleFs
 import org.apache.tinkerpop.gremlin.console.Mediator
-import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn
+import org.apache.tinkerpop.gremlin.console.PluggedIn
 import org.apache.tinkerpop.gremlin.groovy.plugin.GremlinPlugin
 import groovy.grape.Grape
 import org.apache.tinkerpop.gremlin.groovy.util.Artifact

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/ConsolePluginAcceptor.groovy
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/ConsolePluginAcceptor.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/ConsolePluginAcceptor.groovy
index b7ff7d4..bbb2dfd 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/ConsolePluginAcceptor.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/plugin/ConsolePluginAcceptor.groovy
@@ -25,7 +25,9 @@ import org.codehaus.groovy.tools.shell.IO
 
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
+ * @deprecated As of release 3.2.5, not replaced.
  */
+@Deprecated
 class ConsolePluginAcceptor implements PluginAcceptor, 
org.apache.tinkerpop.gremlin.jsr223.console.PluginAcceptor {
 
     public static final String ENVIRONMENT_NAME = "console";

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/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 3012caf..a4afb28 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
@@ -35,7 +35,9 @@ import org.codehaus.groovy.tools.shell.IO
 
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
+ * @deprecated As of release 3.2.5, replaced by {@link 
org.apache.tinkerpop.gremlin.console.PluggedIn}
  */
+@Deprecated
 class PluggedIn {
     private static final String LINE_SEPARATOR = 
System.getProperty("line.separator")
     private final GremlinPlugin plugin

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/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
index dfc9006..fb8f990 100644
--- 
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
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.console.groovy.plugin;
 
 import org.apache.tinkerpop.gremlin.TestHelper;
-import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn;
+import org.apache.tinkerpop.gremlin.console.PluggedIn;
 import org.apache.tinkerpop.gremlin.jsr223.BindingsCustomizer;
 import org.apache.tinkerpop.gremlin.jsr223.Customizer;
 import org.apache.tinkerpop.gremlin.jsr223.DefaultBindingsCustomizer;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/UtilitiesGremlinPluginTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/UtilitiesGremlinPluginTest.java
 
b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/UtilitiesGremlinPluginTest.java
index abecf8c..65b2ee0 100644
--- 
a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/UtilitiesGremlinPluginTest.java
+++ 
b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/UtilitiesGremlinPluginTest.java
@@ -20,7 +20,7 @@ package org.apache.tinkerpop.gremlin.console.jsr223;
 
 import org.apache.commons.io.input.NullInputStream;
 import org.apache.tinkerpop.gremlin.console.plugin.ConsolePluginAcceptor;
-import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn;
+import org.apache.tinkerpop.gremlin.console.PluggedIn;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
 import org.codehaus.groovy.tools.shell.Groovysh;
 import org.codehaus.groovy.tools.shell.IO;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ec8f81e6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/PluginAcceptor.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/PluginAcceptor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/PluginAcceptor.java
index ce8b913..cd6951b 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/PluginAcceptor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/console/PluginAcceptor.java
@@ -31,7 +31,9 @@ import java.util.Set;
  * and provides the abstractions required for a plugin to work regardless of 
the environmental implementations.
  *
  * @author Stephen Mallette (http://stephen.genoprime.com)
+ * @deprecated As of release 3.2.5, not replaced.
  */
+@Deprecated
 public interface PluginAcceptor {
 
     public void addImports(final Set<String> importStatements);

Reply via email to