Interface RepositoryConnector

All Superinterfaces:
AutoCloseable, Closeable
All Known Implementing Classes:
FilteringRepositoryConnector

public interface RepositoryConnector extends Closeable
A connector for a remote repository. The connector is responsible for downloading/uploading of artifacts and metadata from/to a remote repository.

If applicable, a connector should obey connect/request timeouts and other relevant settings from the configuration properties of the repository session it has been obtained for. However, a connector must not emit any events to the transfer listener configured for the session. Instead, transfer events must be emitted only to the listener (if any) specified for a given download/upload request.

Note: While a connector itself can use multiple threads internally to performs the transfers, clients must not call a connector concurrently, i.e. connectors are generally not thread-safe.

See Also:
  • Method Details

    • get

      void get(Collection<? extends ArtifactDownload> artifactDownloads, Collection<? extends MetadataDownload> metadataDownloads)
      Performs the specified downloads. If a download fails, the connector stores the underlying exception in the download object such that callers can inspect the result via ArtifactTransfer.getException() and MetadataTransfer.getException(), respectively. If reasonable, a connector should continue to process the remaining downloads after an error to retrieve as many items as possible. The connector may perform the transfers concurrently and in any order.
      Parameters:
      artifactDownloads - The artifact downloads to perform, may be null or empty.
      metadataDownloads - The metadata downloads to perform, may be null or empty.
    • put

      void put(Collection<? extends ArtifactUpload> artifactUploads, Collection<? extends MetadataUpload> metadataUploads)
      Performs the specified uploads. If an upload fails, the connector stores the underlying exception in the upload object such that callers can inspect the result via ArtifactTransfer.getException() and MetadataTransfer.getException(), respectively. The connector may perform the transfers concurrently and in any order.
      Parameters:
      artifactUploads - The artifact uploads to perform, may be null or empty.
      metadataUploads - The metadata uploads to perform, may be null or empty.
    • close

      void close()
      Closes this connector and frees any network resources associated with it. Once closed, a connector must not be used for further transfers, any attempt to do so would yield a IllegalStateException or similar. Closing an already closed connector is harmless and has no effect.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable