Class SshRepository

All Implemented Interfaces:
Repository

public class SshRepository extends AbstractSshBasedRepository
Ivy Repository based on SSH
  • Constructor Details

    • SshRepository

      public SshRepository()
    • SshRepository

      public SshRepository(TimeoutConstraint timeoutConstraint)
  • Method Details

    • getResource

      public Resource getResource(String source)
      create a new resource with lazy initializing
      Parameters:
      source - String
      Returns:
      Resource
    • resolveResource

      public SshResource resolveResource(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 information
      See Also:
    • list

      public List<String> list(String parent) throws 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
      Throws:
      IOException - On listing failure.
    • put

      public void put(File source, String destination, boolean overwrite) throws IOException
      Overrides:
      put in class AbstractRepository
      Throws:
      IOException
    • get

      public void get(String source, File destination) throws 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:
      IOException - On retrieval failure.
    • setListCommand

      public void setListCommand(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 String getListCommand()
      Returns:
      the list command to use
    • getCreateDirCommand

      public String getCreateDirCommand()
      Returns:
      the createDirCommand
    • setCreateDirCommand

      public void setCreateDirCommand(String createDirCommand)
      Parameters:
      createDirCommand - the createDirCommand to set
    • getExistCommand

      public String getExistCommand()
      Returns:
      the existCommand
    • setExistCommand

      public void setExistCommand(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(String permissions)
      A four digit string (e.g., 0644, see "man chmod", "man open") specifying the permissions of the published files.
      Parameters:
      permissions - String
    • getRepositoryScheme

      protected 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
      Returns:
      String
    • openStream

      public InputStream openStream(SshResource resource) throws IOException
      Not really streaming...need to implement a proper streaming approach?
      Parameters:
      resource - to stream
      Returns:
      InputStream of the resource data
      Throws:
      IOException - if something goes wrong