org.eclipse.aether.spi.connector

## Interface RepositoryConnector

- All Superinterfaces:
    AutoCloseable, Closeable

      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.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes this connector and frees any network resources associated with it.
    `void` | `get(Collection<? extends ArtifactDownload> artifactDownloads, Collection<? extends MetadataDownload> metadataDownloads)` Performs the specified downloads.
    `void` | `put(Collection<? extends ArtifactUpload> artifactUploads, Collection<? extends MetadataUpload> metadataUploads)` Performs the specified uploads.

- - ### Method Detail

    - #### 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`

Copyright © 2010-2013 The Eclipse Foundation. All Rights Reserved.