Interface Repository

All Known Implementing Classes:
AbstractRepository, AbstractSshBasedRepository, ChainedRepository, FileRepository, JarRepository, RelativeURLRepository, SFTPRepository, SshRepository, URLRepository, VfsRepository, VsftpRepository

public interface Repository
Represents a collection of resources available to Ivy. Ivy uses one or more repositories as both a source of resources for Ivy enabled build systems and as a distribution center for resources generated by Ivy enabled build systems.

A repository supports the following fundamental operations

  • retrieving a resource from the repository.
  • transferring a resource to the repository.
  • retrieving a listing of resources.

Resource Retrieval

get(java.lang.String, java.io.File) retrieves a resource specified by a provided identifier creating a new file.

Resource Publication

put(org.apache.ivy.core.module.descriptor.Artifact, java.io.File, java.lang.String, boolean) transfers a file to the repository.

resource Listing

list(java.lang.String) returns a listing of file like objects belonging to a specified parent directory.

  • Method Details

    • getResource

      Resource getResource(String source) throws IOException
      Return the resource associated with a specified identifier. If the resource does not exist, it should return a Resource with exists() returning false. An IOException should only be thrown when a real IO problem occurs, like the impossibility to connect to a server.
      Parameters:
      source - A string identifying the resource.
      Returns:
      The resource associated with the resource identifier.
      Throws:
      IOException - On error while trying to get resource.
    • get

      void get(String source, File destination) throws IOException
      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.
    • put

      void put(Artifact artifact, File source, String destination, boolean overwrite) throws IOException
      Transfer a resource to the repository
      Parameters:
      artifact - The artifact to be transferred.
      source - The local file to be transferred.
      destination - Where to transfer the resource.
      overwrite - Whether the transfer should overwrite an existing resource.
      Throws:
      IOException - On publication failure.
    • list

      List<String> list(String parent) throws IOException
      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.
    • addTransferListener

      void addTransferListener(TransferListener listener)
      Add a listener to the repository.
      Parameters:
      listener - The listener to attach to the repository.
    • removeTransferListener

      void removeTransferListener(TransferListener listener)
      Remove a listener on the repository
      Parameters:
      listener - The listener to remove
    • hasTransferListener

      boolean hasTransferListener(TransferListener listener)
      Determine if a given listener is attached to the repository.
      Parameters:
      listener - The listener being queried
      Returns:
      true if the provided listener is attached to the repository, false if not.
    • getFileSeparator

      String getFileSeparator()
      Get the repository's file separator string.
      Returns:
      The repository's file separator delimiter
    • standardize

      String standardize(String source)
      Normalize a string.
      Parameters:
      source - The string to normalize.
      Returns:
      The normalized string.
    • getName

      String getName()
      Return the name of the repository
      Returns:
      String name