Package org.apache.sshd.scp.server
Class ScpCommandFactory
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.server.command.AbstractDelegatingCommandFactory
-
- org.apache.sshd.scp.server.ScpCommandFactory
-
- All Implemented Interfaces:
Cloneable
,ExecutorServiceProvider
,ManagedExecutorServiceSupplier
,ScpFileOpenerHolder
,CommandFactory
,ShellFactory
,ShellFactorySelector
public class ScpCommandFactory extends AbstractDelegatingCommandFactory implements ManagedExecutorServiceSupplier, ScpFileOpenerHolder, Cloneable, ShellFactory, ShellFactorySelector
ThisCommandFactory
can be used as a standalone command factory or can be used to augment anotherCommandFactory
and providesSCP
support.- Author:
- Apache MINA SSHD Project
- See Also:
ScpCommand
,ScpShell
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ScpCommandFactory.Builder
A usefulObjectBuilder
forScpCommandFactory
-
Field Summary
Fields Modifier and Type Field Description static String
SCP_FACTORY_NAME
-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
-
Constructor Summary
Constructors Constructor Description ScpCommandFactory()
-
Method Summary
-
Methods inherited from class org.apache.sshd.server.command.AbstractDelegatingCommandFactory
createCommand, createUnsupportedCommand, getDelegateCommandFactory, setDelegateCommandFactory, toString
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.sshd.common.util.threads.ExecutorServiceProvider
resolveExecutorService
-
-
-
-
Field Detail
-
SCP_FACTORY_NAME
public static final String SCP_FACTORY_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
getScpFileOpener
public ScpFileOpener getScpFileOpener()
- Specified by:
getScpFileOpener
in interfaceScpFileOpenerHolder
- Returns:
- The last
ScpFileOpener
set via call toScpFileOpenerHolder.setScpFileOpener(ScpFileOpener)
-
setScpFileOpener
public void setScpFileOpener(ScpFileOpener fileOpener)
- Specified by:
setScpFileOpener
in interfaceScpFileOpenerHolder
- Parameters:
fileOpener
- The defaultScpFileOpener
to use - ifnull
then a default opener is used
-
getExecutorServiceProvider
public Supplier<? extends CloseableExecutorService> getExecutorServiceProvider()
- Specified by:
getExecutorServiceProvider
in interfaceExecutorServiceProvider
- Returns:
- A
Supplier
ofCloseableExecutorService
to be used when asynchronous execution required. Ifnull
then a single-threaded ad-hoc service is used.
-
setExecutorServiceProvider
public void setExecutorServiceProvider(Supplier<? extends CloseableExecutorService> provider)
- Specified by:
setExecutorServiceProvider
in interfaceManagedExecutorServiceSupplier
- Parameters:
provider
- TheSupplier
ofCloseableExecutorService
-s to be used when asynchronous execution is required. Ifnull
then a single-threaded ad-hoc service is used.
-
getSendBufferSize
public int getSendBufferSize()
-
setSendBufferSize
public void setSendBufferSize(int sendSize)
- Parameters:
sendSize
- Size (in bytes) of buffer to use when sending files- See Also:
ScpHelper.MIN_SEND_BUFFER_SIZE
-
getReceiveBufferSize
public int getReceiveBufferSize()
-
setReceiveBufferSize
public void setReceiveBufferSize(int receiveSize)
- Parameters:
receiveSize
- Size (in bytes) of buffer to use when receiving files- See Also:
ScpHelper.MIN_RECEIVE_BUFFER_SIZE
-
addEventListener
public boolean addEventListener(ScpTransferEventListener listener)
- Parameters:
listener
- TheScpTransferEventListener
to add- Returns:
true
if this is a new listener instance,false
if the listener is already registered- Throws:
IllegalArgumentException
- ifnull
listener
-
removeEventListener
public boolean removeEventListener(ScpTransferEventListener listener)
- Parameters:
listener
- TheScpTransferEventListener
to remove- Returns:
true
if the listener was registered and removed,false
if the listener was not registered to begin with- Throws:
IllegalArgumentException
- ifnull
listener
-
isSupportedCommand
public boolean isSupportedCommand(ChannelSession channel, String command)
- Specified by:
isSupportedCommand
in classAbstractDelegatingCommandFactory
- Parameters:
channel
- TheChannelSession
through which the command was receivedcommand
- The command about to be executed- Returns:
true
if this command is supported by the command factory,false
if it will be passed on to thedelegate
factory
-
executeSupportedCommand
protected Command executeSupportedCommand(ChannelSession channel, String command)
- Specified by:
executeSupportedCommand
in classAbstractDelegatingCommandFactory
-
getDelegateShellFactory
public ShellFactory getDelegateShellFactory()
- Returns:
- The delegate
ShellFactory
to use ifselectShellFactory(ChannelSession)
decides not to use itself as theShellFactory
- default=InteractiveProcessShellFactory
. - See Also:
setDelegateShellFactory(ShellFactory)
-
setDelegateShellFactory
public void setDelegateShellFactory(ShellFactory delegateShellFactory)
- Parameters:
delegateShellFactory
- TheShellFactory
to use ifselectShellFactory(ChannelSession)
decides not to use itself as theShellFactory
. Ifnull
then it will always decide to use itself regardless of theChannelSession
- See Also:
selectShellFactory(ChannelSession)
-
selectShellFactory
public ShellFactory selectShellFactory(ChannelSession channelSession) throws IOException
- Specified by:
selectShellFactory
in interfaceShellFactorySelector
- Parameters:
channelSession
- TheChannelSession
- Returns:
- The
ShellFactory
to use for the channel -null
if none - Throws:
IOException
- If failed the selection
-
createShell
public Command createShell(ChannelSession channel) throws IOException
- Specified by:
createShell
in interfaceShellFactory
- Parameters:
channel
- TheChannelSession
through which the command has been received- Returns:
- The
Command
representing the shell to be executed - Throws:
IOException
- If failed to create the shell
-
resolveExecutorService
protected CloseableExecutorService resolveExecutorService(String command)
-
clone
public ScpCommandFactory clone()
-
-