## org.apache.ivy.plugins.repository.ssh
Class SshRepository

    java.lang.Object
      org.apache.ivy.plugins.repository.AbstractRepository
          org.apache.ivy.plugins.repository.ssh.AbstractSshBasedRepository
              org.apache.ivy.plugins.repository.ssh.SshRepository

All Implemented Interfaces:
  Repository

    public class SshRepository

extends AbstractSshBasedRepository

Ivy Repository based on SSH

Constructor Summary
`SshRepository()`

Method Summary
`void` `get(java.lang.String source, java.io.File destination)` Fetch a resource from the repository.
`java.lang.String` `getCreateDirCommand()`
`java.lang.String` `getExistCommand()`
`java.lang.String` `getListCommand()`
`protected java.lang.String` `getRepositoryScheme()` return ssh as scheme use the Resolver type name here?
`Resource` `getResource(java.lang.String source)` create a new resource with lazy initializing
`java.util.List` `list(java.lang.String parent)` Return a listing of resources names
`java.io.InputStream` `openStream(SshResource resource)` Not really streaming...need to implement a proper streaming approach?
`void` `put(java.io.File source, java.lang.String destination, boolean overwrite)`
`SshResource` `resolveResource(java.lang.String source)` Fetch the needed file information for a given file (size, last modification time) and report it back in a SshResource
`void` `setCreateDirCommand(java.lang.String createDirCommand)`
`void` `setExistCommand(java.lang.String existCommand)`
`void` `setFileSeparator(char fileSeparator)` The file separator is the separator to use on the target system On a unix system it is '/', but I don't know, how this is solved on different ssh implementations.
`void` `setListCommand(java.lang.String cmd)` sets the list command to use for a directory listing listing must be only the filename and each filename on a separate line
`void` `setPublishPermissions(java.lang.String permissions)` A four digit string (e.g., 0644, see "man chmod", "man open") specifying the permissions of the published files.

Methods inherited from class org.apache.ivy.plugins.repository.ssh.AbstractSshBasedRepository
`getHost, getKeyFile, getKeyFilePassword, getPassFile, getPort, getSession, getUser, getUserPassword, releaseSession, setHost, setKeyFile, setKeyFilePassword, setPassFile, setPort, setUser, setUserPassword`

Methods inherited from class org.apache.ivy.plugins.repository.AbstractRepository
`addTransferListener, fireTransferCompleted, fireTransferCompleted, fireTransferError, fireTransferError, fireTransferEvent, fireTransferInitiated, fireTransferProgress, fireTransferStarted, fireTransferStarted, getFileSeparator, getName, hasTransferListener, put, removeTransferListener, setName, standardize, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SshRepository

    public SshRepository()

Method Detail

### getResource

    public Resource getResource(java.lang.String source)

  create a new resource with lazy initializing

  Parameters:
    `source` - A string identifying the resource.
  Returns:
    The resource associated with the resource identifier.

### resolveResource

    public SshResource resolveResource(java.lang.String source)

  Fetch the needed file information for a given file (size, last modification time) and report it back in a SshResource

  Parameters:
    `source` - ssh uri for the file to get info for
  Returns:
    SshResource filled with the needed informations
  See Also:
    `Repository.getResource(java.lang.String)`

### list

    public java.util.List list(java.lang.String parent)
                        throws java.io.IOException

  Description copied from interface: `Repository`
  Return a listing of resources names

  Parameters:
    `parent` - The parent directory from which to generate the listing.
  Returns:
    A listing of the parent directory's file content, as a List of String.
  Throws:
    `java.io.IOException` - On listing failure.

### put

    public void put(java.io.File source,
                    java.lang.String destination,
                    boolean overwrite)
             throws java.io.IOException

  Overrides:
    `put` in class `AbstractRepository`
  Throws:
    `java.io.IOException`

### get

    public void get(java.lang.String source,
                    java.io.File destination)
             throws java.io.IOException

  Description copied from interface: `Repository`
  Fetch a resource from the repository.

  Parameters:
    `source` - A string identifying the resource to be fetched.
    `destination` - Where to place the fetched resource.
  Throws:
    `java.io.IOException` - On retrieval failure.

### setListCommand

    public void setListCommand(java.lang.String cmd)

  sets the list command to use for a directory listing listing must be only the filename and each filename on a separate line

  Parameters:
    `cmd` - to use. default is "ls -1"

### getListCommand

    public java.lang.String getListCommand()

  Returns:
    the list command to use

### getCreateDirCommand

    public java.lang.String getCreateDirCommand()

  Returns:
    the createDirCommand

### setCreateDirCommand

    public void setCreateDirCommand(java.lang.String createDirCommand)

  Parameters:
    `createDirCommand` - the createDirCommand to set

### getExistCommand

    public java.lang.String getExistCommand()

  Returns:
    the existCommand

### setExistCommand

    public void setExistCommand(java.lang.String existCommand)

  Parameters:
    `existCommand` - the existCommand to set

### setFileSeparator

    public void setFileSeparator(char fileSeparator)

  The file separator is the separator to use on the target system On a unix system it is '/', but I don't know, how this is solved on different ssh implementations. Using the default might be fine

  Parameters:
    `fileSeparator` - The fileSeparator to use. default '/'

### setPublishPermissions

    public void setPublishPermissions(java.lang.String permissions)

  A four digit string (e.g., 0644, see "man chmod", "man open") specifying the permissions of the published files.

### getRepositoryScheme

    protected java.lang.String getRepositoryScheme()

  return ssh as scheme use the Resolver type name here? would be nice if it would be static, so we could use SshResolver.getTypeName()

  Specified by:
    `getRepositoryScheme` in class `AbstractSshBasedRepository`

### openStream

    public java.io.InputStream openStream(SshResource resource)
                                   throws java.io.IOException

  Not really streaming...need to implement a proper streaming approach?

  Parameters:
    `resource` - to stream
  Returns:
    InputStream of the resource data
  Throws:
    `java.io.IOException`