Class FileTrustedChecksumsSourceSupport

  • All Implemented Interfaces:
    TrustedChecksumsSource
    Direct Known Subclasses:
    SparseDirectoryTrustedChecksumsSource, SummaryFileTrustedChecksumsSource

    abstract class FileTrustedChecksumsSourceSupport
    extends java.lang.Object
    implements TrustedChecksumsSource
    Support class for implementing TrustedChecksumsSource backed by local filesystem. It implements basic support like basedir calculation, "enabled" flag and "originAware" flag.

    The configuration keys supported:

    • aether.trustedChecksumsSource.${name}
      (boolean) must be explicitly set to "true" to become enabled
    • aether.trustedChecksumsSource.${name}.basedir
      (string, path) directory from where implementation can use files. May be relative path (then is resolved against local repository basedir) or absolute. If unset, default value is ".checksums" and is resolved against local repository basedir.
    • aether.trustedChecksumsSource.${name}.originAware
      (boolean) whether to make implementation "originAware", to factor in origin repository ID as well or not.

    This implementation ensures that implementations have "name" property, used in configuration properties above.

    Since:
    1.9.0
    • Field Detail

      • CONFIG_PROP_PREFIX

        private static final java.lang.String CONFIG_PROP_PREFIX
        See Also:
        Constant Field Values
      • CONF_NAME_BASEDIR

        private static final java.lang.String CONF_NAME_BASEDIR
        See Also:
        Constant Field Values
      • CONF_NAME_ORIGIN_AWARE

        private static final java.lang.String CONF_NAME_ORIGIN_AWARE
        See Also:
        Constant Field Values
      • LOCAL_REPO_PREFIX_DIR

        static final java.lang.String LOCAL_REPO_PREFIX_DIR
        Visible for testing.
        See Also:
        Constant Field Values
      • name

        private final java.lang.String name
    • Constructor Detail

      • FileTrustedChecksumsSourceSupport

        FileTrustedChecksumsSourceSupport​(java.lang.String name)
    • Method Detail

      • getTrustedArtifactChecksums

        public java.util.Map<java.lang.String,​java.lang.String> getTrustedArtifactChecksums​(RepositorySystemSession session,
                                                                                                  Artifact artifact,
                                                                                                  ArtifactRepository artifactRepository,
                                                                                                  java.util.List<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 TrustedChecksumsSource
        Parameters:
        session - The repository system session, never null.
        artifact - The artifact we want checksums for, never null.
        artifactRepository - The origin repository: local, workspace, remote repository, never null.
        checksumAlgorithmFactories - The checksum algorithms that are expected, never null.
        Returns:
        Map of expected checksums, or null if not enabled.
      • doGetTrustedArtifactChecksums

        protected abstract java.util.Map<java.lang.String,​java.lang.String> doGetTrustedArtifactChecksums​(RepositorySystemSession session,
                                                                                                                Artifact artifact,
                                                                                                                ArtifactRepository artifactRepository,
                                                                                                                java.util.List<ChecksumAlgorithmFactory> checksumAlgorithmFactories)
        Implementors MUST NOT return null at this point, as this source is enabled.
      • configPropKey

        protected java.lang.String configPropKey​(java.lang.String name)
        To be used by underlying implementations to form configuration property keys properly scoped.
      • isEnabled

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

        Default value is false.

      • isOriginAware

        protected boolean isOriginAware​(RepositorySystemSession session)
        Returns true if session configuration marks this instance as origin aware.

        Default value is true.