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

Constructors
Constructor and Description
`SshRepository()`

### Method Summary

Methods
`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, isAllowedAgentUse, releaseSession, setAllowedAgentUse, 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`