Interface RepositoryLayout


public interface RepositoryLayout
The layout for a remote repository whose artifacts/metadata can be addressed via URIs.

Note: Implementations must be stateless.

  • Method Details

    • getChecksumAlgorithmFactories

      Returns immutable list of ChecksumAlgorithmFactory this instance of layout uses, never null. This (legacy, but not deprecated) method will return all checksums this layout uses, but these may be different in case upload or download checksums are explicitly configured. This method will reflect the checksum order used for download, but may have more elements than actually used in download validation, if the generated checksums for upload has extra elements.
      Since:
      1.8.0
      See Also:
    • getChecksumAlgorithmFactories

      Returns immutable list of ChecksumAlgorithmFactory this instance of layout uses for download or upload, never null. The order also represents the order how remote external checksums are retrieved and validated (if for download).
      Parameters:
      upload - false if the caller needs checksums used for download validation, or true if the caller needs checksums generated for upload.
      Since:
      2.0.15
      See Also:
    • hasChecksums

      boolean hasChecksums(Artifact artifact)
      Tells whether given artifact have remote external checksums according to current layout or not. If it returns true, then layout configured checksums will be expected: on upload they will be calculated and deployed along artifact, on download they will be retrieved and validated. If it returns false the given artifacts will have checksums omitted: on upload they will not be calculated and deployed, and on download they will be not retrieved nor validated. The result affects only layout provided checksums. See ChecksumPolicy.ChecksumKind.REMOTE_EXTERNAL. On download, the getChecksumAlgorithmFactories(boolean) layout required checksums are calculated, and non layout-provided checksums are still utilized. Typical case to return false (to omit checksums) is for artifact signatures, that are already a "sub-artifact" of some main artifact (for example a JAR), and they can be validated by some other means.
      Since:
      1.8.0
      See Also:
    • getLocation

      URI getLocation(Artifact artifact, boolean upload)
      Gets the location within a remote repository where the specified artifact resides. The URI is relative to the root directory of the repository.
      Parameters:
      artifact - The artifact to get the URI for, must not be null.
      upload - false if the artifact is being downloaded, true if the artifact is being uploaded.
      Returns:
      The relative URI to the artifact, never null.
    • getLocation

      URI getLocation(Metadata metadata, boolean upload)
      Gets the location within a remote repository where the specified metadata resides. The URI is relative to the root directory of the repository.
      Parameters:
      metadata - The metadata to get the URI for, must not be null.
      upload - false if the metadata is being downloaded, true if the metadata is being uploaded.
      Returns:
      The relative URI to the metadata, never null.
    • getChecksumLocations

      Gets the checksums files that a remote repository keeps to help detect data corruption during transfers of the specified artifact.
      Parameters:
      artifact - The artifact to get the checksum files for, must not be null.
      upload - false if the checksums are being downloaded/verified, true if the checksums are being uploaded/created.
      location - The relative URI to the artifact within the repository as previously obtained from getLocation(Artifact, boolean), must not be null.
      Returns:
      The checksum files for the given artifact, possibly empty but never null. If empty, that means that this layout does not provide checksums for given artifact.
    • getChecksumLocations

      Gets the checksums files that a remote repository keeps to help detect data corruption during transfers of the specified metadata.
      Parameters:
      metadata - The metadata to get the checksum files for, must not be null.
      upload - false if the checksums are being downloaded/verified, true if the checksums are being uploaded/created.
      location - The relative URI to the metadata within the repository as previously obtained from getLocation(Metadata, boolean), must not be null.
      Returns:
      The checksum files for the given metadata, possibly empty but never null. If empty, that means that this layout does not provide checksums for given artifact.