public abstract class AbstractCommandSupport extends AbstractLoggingBean implements Command, java.lang.Runnable, ExecutorServiceCarrier, SessionAware, SessionHolder<Session>, ServerSessionHolder
Command
executionsModifier and Type | Field and Description |
---|---|
protected ExitCallback |
callback |
protected boolean |
cbCalled |
protected java.util.concurrent.Future<?> |
cmdFuture |
protected java.lang.Thread |
cmdRunner |
protected java.lang.String |
command |
protected Environment |
environment |
protected java.io.OutputStream |
err |
protected java.util.concurrent.ExecutorService |
executorService |
protected java.io.InputStream |
in |
protected java.io.OutputStream |
out |
protected ServerSession |
serverSession |
protected boolean |
shutdownOnExit |
log
Modifier | Constructor and Description |
---|---|
protected |
AbstractCommandSupport(java.lang.String command,
java.util.concurrent.ExecutorService executorService,
boolean shutdownOnExit) |
Modifier and Type | Method and Description |
---|---|
void |
destroy()
This method is called by the SSH server to destroy the command because
the client has disconnected somehow.
|
java.lang.String |
getCommand() |
Environment |
getEnvironment() |
java.io.OutputStream |
getErrorStream() |
java.util.concurrent.ExecutorService |
getExecutorService() |
ExitCallback |
getExitCallback() |
java.io.InputStream |
getInputStream() |
java.io.OutputStream |
getOutputStream() |
ServerSession |
getServerSession() |
Session |
getSession() |
protected java.util.concurrent.Future<?> |
getStartedCommandFuture() |
boolean |
isShutdownOnExit() |
protected void |
onExit(int exitValue) |
protected void |
onExit(int exitValue,
java.lang.String exitMessage) |
void |
setErrorStream(java.io.OutputStream err)
Set the error stream that can be used by the shell to write its errors.
|
void |
setExitCallback(ExitCallback callback)
Set the callback that the shell has to call when it is closed.
|
void |
setInputStream(java.io.InputStream in)
Set the input stream that can be used by the shell to read input.
|
void |
setOutputStream(java.io.OutputStream out)
Set the output stream that can be used by the shell to write its output.
|
void |
setSession(ServerSession session) |
void |
start(Environment env)
Starts the command execution.
|
java.lang.String |
toString() |
getSimplifiedLogger
protected final java.lang.String command
protected java.io.InputStream in
protected java.io.OutputStream out
protected java.io.OutputStream err
protected ExitCallback callback
protected Environment environment
protected java.util.concurrent.Future<?> cmdFuture
protected java.lang.Thread cmdRunner
protected java.util.concurrent.ExecutorService executorService
protected boolean shutdownOnExit
protected boolean cbCalled
protected ServerSession serverSession
protected AbstractCommandSupport(java.lang.String command, java.util.concurrent.ExecutorService executorService, boolean shutdownOnExit)
public java.lang.String getCommand()
public Session getSession()
getSession
in interface SessionHolder<Session>
public ServerSession getServerSession()
getServerSession
in interface ServerSessionHolder
ServerSession
usedpublic void setSession(ServerSession session)
setSession
in interface SessionAware
session
- The ServerSession
in which this shell will be executed.public java.util.concurrent.ExecutorService getExecutorService()
getExecutorService
in interface ExecutorServiceCarrier
ExecutorService
to usepublic boolean isShutdownOnExit()
isShutdownOnExit
in interface ExecutorServiceCarrier
true
then the ExecutorService.shutdownNow()
will be called (unless it is an internally allocated service which is always
closed)public java.io.InputStream getInputStream()
public void setInputStream(java.io.InputStream in)
Command
setInputStream
in interface Command
in
- The InputStream
used by the shell to read input.public java.io.OutputStream getOutputStream()
public void setOutputStream(java.io.OutputStream out)
Command
setOutputStream
in interface Command
out
- The OutputStream
used by the shell to write its outputpublic java.io.OutputStream getErrorStream()
public void setErrorStream(java.io.OutputStream err)
Command
setErrorStream
in interface Command
err
- The OutputStream
used by the shell to write its errorspublic ExitCallback getExitCallback()
public void setExitCallback(ExitCallback callback)
Command
setExitCallback
in interface Command
callback
- The ExitCallback
to call when shell is closedpublic Environment getEnvironment()
protected java.util.concurrent.Future<?> getStartedCommandFuture()
public void start(Environment env) throws java.io.IOException
CommandLifecycle
Runnable
,
and this method should spawn a new thread like:
Thread(this).start();
start
in interface CommandLifecycle
env
- The Environment
java.io.IOException
- If failed to startpublic void destroy()
CommandLifecycle
destroy
in interface CommandLifecycle
protected void onExit(int exitValue)
protected void onExit(int exitValue, java.lang.String exitMessage)
public java.lang.String toString()
toString
in class java.lang.Object