Class SparseDirectoryTrustedChecksumsSource

java.lang.Object
org.eclipse.aether.internal.impl.checksum.SparseDirectoryTrustedChecksumsSource
All Implemented Interfaces:
org.eclipse.aether.spi.checksums.TrustedChecksumsSource

@Singleton @Named("sparseDirectory") public final class SparseDirectoryTrustedChecksumsSource extends Object
Sparse file FileTrustedChecksumsSourceSupport implementation that use specified directory as base directory, where it expects artifacts checksums on standard Maven2 "local" layout. This implementation uses Artifact coordinates solely to form path from basedir, pretty much as Maven local repository does.

The source by default is "origin aware", it will factor in origin repository ID as well into base directory name (for example ".checksums/central/...").

The checksums files are directly loaded from disk, so in-flight file changes during lifecycle of session are picked up. This implementation can be simultaneously used to lookup and also write checksums. The written checksums will become visible across all sessions right after the moment they were written.

The name of this implementation is "sparseDirectory".

Since:
1.9.0
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.eclipse.aether.spi.checksums.TrustedChecksumsSource

    org.eclipse.aether.spi.checksums.TrustedChecksumsSource.Writer
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The basedir where checksums are.
    static final String
    Is checksum source enabled?
    static final String
    Is source origin aware?
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    SparseDirectoryTrustedChecksumsSource(org.eclipse.aether.spi.io.ChecksumProcessor checksumProcessor, LocalPathComposer localPathComposer)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Map<String,String>
    doGetTrustedArtifactChecksums(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact, org.eclipse.aether.repository.ArtifactRepository artifactRepository, List<org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory> checksumAlgorithmFactories)
    Implementors MUST NOT return null at this point, as this source is enabled.
    protected org.eclipse.aether.spi.checksums.TrustedChecksumsSource.Writer
    doGetTrustedArtifactChecksumsWriter(org.eclipse.aether.RepositorySystemSession session)
    Implementors may override this method and return TrustedChecksumsSource.Writer instance.
    protected Path
    getBasedir(org.eclipse.aether.RepositorySystemSession session, String defaultValue, String configPropKey, boolean mayCreate)
    Uses utility DirectoryUtils.resolveDirectory(RepositorySystemSession, String, String, boolean) to calculate (and maybe create) basedir for this implementation, never returns null.
    getTrustedArtifactChecksums(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact, org.eclipse.aether.repository.ArtifactRepository artifactRepository, List<org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory> checksumAlgorithmFactories)
    This implementation will call into underlying code only if enabled, and will enforce non-null return value.
    org.eclipse.aether.spi.checksums.TrustedChecksumsSource.Writer
    getTrustedArtifactChecksumsWriter(org.eclipse.aether.RepositorySystemSession session)
    This implementation will call into underlying code only if enabled.
    protected boolean
    isEnabled(org.eclipse.aether.RepositorySystemSession session)
    Returns true if session configuration marks this instance as enabled.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • isEnabled

      protected boolean isEnabled(org.eclipse.aether.RepositorySystemSession session)
      Returns true if session configuration marks this instance as enabled.

      Default value is false.

    • doGetTrustedArtifactChecksums

      protected Map<String,String> doGetTrustedArtifactChecksums(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact, org.eclipse.aether.repository.ArtifactRepository artifactRepository, List<org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory> checksumAlgorithmFactories)
      Implementors MUST NOT return null at this point, as this source is enabled.
    • doGetTrustedArtifactChecksumsWriter

      protected org.eclipse.aether.spi.checksums.TrustedChecksumsSource.Writer doGetTrustedArtifactChecksumsWriter(org.eclipse.aether.RepositorySystemSession session)
      Implementors may override this method and return TrustedChecksumsSource.Writer instance.
    • getTrustedArtifactChecksums

      public Map<String,String> getTrustedArtifactChecksums(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact, org.eclipse.aether.repository.ArtifactRepository artifactRepository, List<org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory> checksumAlgorithmFactories)
      This implementation will call into underlying code only if enabled, and will enforce non-null return value. In worst case, empty map should be returned, meaning "no trusted checksums available".
      Specified by:
      getTrustedArtifactChecksums in interface org.eclipse.aether.spi.checksums.TrustedChecksumsSource
    • getTrustedArtifactChecksumsWriter

      public org.eclipse.aether.spi.checksums.TrustedChecksumsSource.Writer getTrustedArtifactChecksumsWriter(org.eclipse.aether.RepositorySystemSession session)
      This implementation will call into underlying code only if enabled. Underlying implementation may still choose to return null.
      Specified by:
      getTrustedArtifactChecksumsWriter in interface org.eclipse.aether.spi.checksums.TrustedChecksumsSource
    • getBasedir

      protected Path getBasedir(org.eclipse.aether.RepositorySystemSession session, String defaultValue, String configPropKey, boolean mayCreate)
      Uses utility DirectoryUtils.resolveDirectory(RepositorySystemSession, String, String, boolean) to calculate (and maybe create) basedir for this implementation, never returns null. The returned Path may not exist, if invoked with mayCreate being false.

      Default value is ${LOCAL_REPOSITORY}/.checksums.

      Returns:
      The Path of basedir, never null.