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

java.lang.Object
  extended by org.apache.ivy.plugins.repository.AbstractRepository
      extended by org.apache.ivy.plugins.repository.ssh.AbstractSshBasedRepository
          extended by 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? would be nice if it would be static, so we could use SshResolver.getTypeName()
 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