public interface RemoteAcceptor extends Closeable
:remote
and :submit
commands which provide standardized ways
for plugins to provide "remote connections" to resources and a way to "submit" a command to those resources.
A "remote connection" does not necessarily have to be a remote server. It simply refers to a resource that is
external to the console.
By implementing this interface and returning an instance of it through
ConsoleCustomizer.getRemoteAcceptor(GremlinShellEnvironment)
a plugin can hook into those commands and
provide remoting features.Modifier and Type | Method and Description |
---|---|
default boolean |
allowRemoteConsole()
If the
RemoteAcceptor is used in the Gremlin Console, then this method might be called to determine
if it can be used in a fashion that supports the :remote console command. |
Object |
configure(List<String> args)
Gets called when
:remote is used in conjunction with the config option. |
Object |
connect(List<String> args)
Gets called when
:remote is used in conjunction with the "connect" option. |
Object |
submit(List<String> args)
Gets called when
:submit is executed. |
static final String RESULT
Object connect(List<String> args) throws RemoteException
:remote
is used in conjunction with the "connect" option. It is up to the
implementation to decide how additional arguments on the line should be treated after "connect".RemoteException
- if there is a problem with connectingObject configure(List<String> args) throws RemoteException
:remote
is used in conjunction with the config
option. It is up to the
implementation to decide how additional arguments on the line should be treated after config
.RemoteException
- if there is a problem with configurationObject submit(List<String> args) throws RemoteException
:submit
is executed. It is up to the implementation to decide how additional
arguments on the line should be treated after :submit
.RemoteException
- if there is a problem with submissiondefault boolean allowRemoteConsole()
RemoteAcceptor
is used in the Gremlin Console, then this method might be called to determine
if it can be used in a fashion that supports the :remote console
command. By default, this value is
set to false
.
A RemoteAcceptor
should only return true
for this method if it expects that all activities it
supports are executed through the :submit
command. If the users interaction with the remote requires
working with both local and remote evaluation at the same time, it is likely best to keep this method return
false
. A good example of this type of plugin would be the Gephi Plugin which uses :remote config
to configure a local TraversalSource
to be used and expects calls to :submit
for the same body
of analysis.Copyright © 2013–2021 Apache Software Foundation. All rights reserved.