SSHSession (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.taskdefs.optional.ssh

## Class SSHSession

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.optional.ssh.SSHBase
      - - org.apache.tools.ant.taskdefs.optional.ssh.SSHSession

- All Implemented Interfaces:
    java.lang.Cloneable, LogListener

      public class SSHSession
      extends SSHBase

  Establishes an ssh session with a remote machine, optionally establishing port forwarding, then executes any nested task(s) before closing the session.
  Since:
    Ant 1.8.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SSHSession.LocalTunnel`
    `static class` | `SSHSession.NestedSequential` The class corresponding to the sequential nested element.
    `class` | `SSHSession.RemoteTunnel`

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SSHSession()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addTask(Task nestedTask)` Add a nested task to Sequential.
    `SSHSession.LocalTunnel` | `createLocalTunnel()`
    `SSHSession.RemoteTunnel` | `createRemoteTunnel()`
    `SSHSession.NestedSequential` | `createSequential()` This is the sequential nested element of the macrodef.
    `void` | `execute()` Establish the ssh session and execute all nestedTasks
    `void` | `setLocaltunnels(java.lang.String tunnels)` Changes the comma-delimited list of local tunnels to establish on the connection.
    `void` | `setRemotetunnels(java.lang.String tunnels)` Changes the comma-delimited list of remote tunnels to establish on the connection.
    `void` | `setTimeout(long timeout)` The connection can be dropped after a specified number of milliseconds.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.optional.ssh.SSHBase

      `getFailonerror, getHost, getPort, getServerAliveCountMax, getServerAliveIntervalSeconds, getUserInfo, getVerbose, init, openSession, setFailonerror, setHost, setKeyfile, setKnownhosts, setPassphrase, setPassword, setPort, setServerAliveCountMax, setServerAliveIntervalSeconds, setTrust, setUsername, setVerbose`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.tools.ant.taskdefs.optional.ssh.LogListener

      `log`

- - ### Constructor Detail

    - #### SSHSession

          public SSHSession()

  - ### Method Detail

    - #### addTask

          public void addTask(Task nestedTask)

      Add a nested task to Sequential.
      Parameters:
        `nestedTask` - Nested task to execute sequentially

    - #### setTimeout

          public void setTimeout(long timeout)

      The connection can be dropped after a specified number of milliseconds. This is sometimes useful when a connection may be flaky. Default is 0, which means "wait forever".
      Parameters:
        `timeout` - The new timeout value in seconds

    - #### setLocaltunnels

          public void setLocaltunnels(java.lang.String tunnels)

      Changes the comma-delimited list of local tunnels to establish on the connection.
      Parameters:
        `tunnels` - a comma-delimited list of lport:rhost:rport tunnel specifications

    - #### setRemotetunnels

          public void setRemotetunnels(java.lang.String tunnels)

      Changes the comma-delimited list of remote tunnels to establish on the connection.
      Parameters:
        `tunnels` - a comma-delimited list of rport:lhost:lport tunnel specifications

    - #### execute

          public void execute()
                       throws BuildException

      Establish the ssh session and execute all nestedTasks
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if one of the nested tasks fails, or network error or bad parameter.

    - #### createLocalTunnel

          public SSHSession.LocalTunnel createLocalTunnel()

    - #### createRemoteTunnel

          public SSHSession.RemoteTunnel createRemoteTunnel()

    - #### createSequential

          public SSHSession.NestedSequential createSequential()

      This is the sequential nested element of the macrodef.
      Returns:
        a sequential element to be configured.