Class SshdSession

    • Field Detail

      • LOG

        private static final org.slf4j.Logger LOG
      • listeners

        private final java.util.concurrent.CopyOnWriteArrayList<SessionCloseListener> listeners
      • uri

        private final URIish uri
      • client

        private org.apache.sshd.client.SshClient client
      • session

        private org.apache.sshd.client.session.ClientSession session
    • Constructor Detail

      • SshdSession

        SshdSession​(URIish uri,
                    java.util.function.Supplier<org.apache.sshd.client.SshClient> clientFactory)
    • Method Detail

      • connect

        void connect​(java.time.Duration timeout)
              throws java.io.IOException
        Throws:
        java.io.IOException
      • addCloseListener

        public void addCloseListener​(@NonNull
                                     SessionCloseListener listener)
        Adds a SessionCloseListener to this session. Has no effect if the given listener is already registered with this session.
        Parameters:
        listener - to add
      • removeCloseListener

        public void removeCloseListener​(@NonNull
                                        SessionCloseListener listener)
        Removes the given listener; has no effect if the listener is not currently registered with this session.
        Parameters:
        listener - to remove
      • notifyCloseListeners

        private void notifyCloseListeners()
      • exec

        public java.lang.Process exec​(java.lang.String commandName,
                                      int timeout)
                               throws java.io.IOException
        Description copied from interface: RemoteSession
        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:
        commandName - command to execute
        timeout - timeout value, in seconds, for creating the remote process
        Returns:
        a new remote process, already started
        Throws:
        java.io.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

        private void disconnect​(java.lang.Throwable reason)