Class JschSession

java.lang.Object
org.eclipse.jgit.transport.ssh.jsch.JschSession
All Implemented Interfaces:
RemoteSession, RemoteSession2

public class JschSession extends Object implements RemoteSession2
Run remote commands using Jsch.

This class is the default session implementation using Jsch. Note that JschConfigSessionFactory is used to create the actual session passed to the constructor.

Since:
6.0
  • Field Details

    • sock

      final com.jcraft.jsch.Session sock
    • uri

      final URIish uri
  • Constructor Details

    • JschSession

      public JschSession(com.jcraft.jsch.Session session, URIish uri)
      Create a new session object by passing the real Jsch session and the URI information.
      Parameters:
      session - the real Jsch session created elsewhere.
      uri - the URI information for the remote connection
  • Method Details

    • exec

      public Process exec(String command, int timeout) throws IOException
      Creates a new remote Process to execute the given command. The returned process's streams exist and are connected, and execution of the process is already started.
      Specified by:
      exec in interface RemoteSession
      Parameters:
      command - command to execute
      timeout - timeout value, in seconds, for creating the remote process
      Returns:
      a new remote process, already started
      Throws:
      IOException - may be thrown in several cases. For example, on problems opening input or output streams or on problems connecting or communicating with the remote host. For the latter two cases, a TransportException may be thrown (a subclass of java.io.IOException).
    • exec

      public Process exec(String command, Map<String,String> environment, int timeout) throws IOException
      Creates a new remote Process to execute the given command. The returned process's streams exist and are connected, and execution of the process is already started.
      Specified by:
      exec in interface RemoteSession2
      Parameters:
      command - command to execute
      environment - environment variables to pass on
      timeout - timeout value, in seconds, for creating the remote process
      Returns:
      a new remote process, already started
      Throws:
      IOException - may be thrown in several cases. For example, on problems opening input or output streams or on problems connecting or communicating with the remote host. For the latter two cases, a TransportException may be thrown (a subclass of java.io.IOException).
    • disconnect

      public void disconnect()
      Disconnects the remote session.
      Specified by:
      disconnect in interface RemoteSession
    • getSftpChannel

      @Deprecated public com.jcraft.jsch.Channel getSftpChannel() throws com.jcraft.jsch.JSchException
      Deprecated.
      since 5.2; use getFtpChannel() instead
      A kludge to allow TransportSftp to get an Sftp channel from Jsch. Ideally, this method would be generic, which would require implementing generic Sftp channel operations in the RemoteSession class.
      Returns:
      a channel suitable for Sftp operations.
      Throws:
      com.jcraft.jsch.JSchException - on problems getting the channel.
    • getFtpChannel

      public FtpChannel getFtpChannel()
      Obtains an FtpChannel for performing FTP operations over this RemoteSession. The default implementation returns null.
      Specified by:
      getFtpChannel in interface RemoteSession
      Returns:
      the FtpChannel
      Since:
      5.2