Class FileTrustedChecksumsSourceSupport
- java.lang.Object
-
- org.eclipse.aether.internal.impl.checksum.FileTrustedChecksumsSourceSupport
-
- All Implemented Interfaces:
TrustedChecksumsSource
- Direct Known Subclasses:
SparseDirectoryTrustedChecksumsSource
,SummaryFileTrustedChecksumsSource
abstract class FileTrustedChecksumsSourceSupport extends java.lang.Object implements TrustedChecksumsSource
Support class for implementingTrustedChecksumsSource
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 enabledaether.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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.aether.spi.checksums.TrustedChecksumsSource
TrustedChecksumsSource.Writer
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
CONF_NAME_BASEDIR
private static java.lang.String
CONF_NAME_ORIGIN_AWARE
private static java.lang.String
CONFIG_PROP_PREFIX
(package private) static java.lang.String
LOCAL_REPO_PREFIX_DIR
Visible for testing.private java.lang.String
name
-
Constructor Summary
Constructors Constructor Description FileTrustedChecksumsSourceSupport(java.lang.String name)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
configPropKey(java.lang.String name)
To be used by underlying implementations to form configuration property keys properly scoped.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 returnnull
at this point, as this source is enabled.protected TrustedChecksumsSource.Writer
doGetTrustedArtifactChecksumsWriter(RepositorySystemSession session)
Implementors may override this method and returnTrustedChecksumsSource.Writer
instance.protected java.nio.file.Path
getBasedir(RepositorySystemSession session, boolean mayCreate)
Uses utilityDirectoryUtils.resolveDirectory(RepositorySystemSession, String, String, boolean)
to calculate (and maybe create) basedir for this implementation, never returnsnull
.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.TrustedChecksumsSource.Writer
getTrustedArtifactChecksumsWriter(RepositorySystemSession session)
This implementation will call into underlying code only if enabled.protected boolean
isEnabled(RepositorySystemSession session)
Returnstrue
if session configuration marks this instance as enabled.protected boolean
isOriginAware(RepositorySystemSession session)
Returnstrue
if session configuration marks this instance as origin aware.
-
-
-
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
-
-
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 interfaceTrustedChecksumsSource
- Parameters:
session
- The repository system session, nevernull
.artifact
- The artifact we want checksums for, nevernull
.artifactRepository
- The origin repository: local, workspace, remote repository, nevernull
.checksumAlgorithmFactories
- The checksum algorithms that are expected, nevernull
.- Returns:
- Map of expected checksums, or
null
if not enabled.
-
getTrustedArtifactChecksumsWriter
public TrustedChecksumsSource.Writer getTrustedArtifactChecksumsWriter(RepositorySystemSession session)
This implementation will call into underlying code only if enabled. Underlying implementation may still choose to returnnull
.- Specified by:
getTrustedArtifactChecksumsWriter
in interfaceTrustedChecksumsSource
-
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 returnnull
at this point, as this source is enabled.
-
doGetTrustedArtifactChecksumsWriter
protected TrustedChecksumsSource.Writer doGetTrustedArtifactChecksumsWriter(RepositorySystemSession session)
Implementors may override this method and returnTrustedChecksumsSource.Writer
instance.
-
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)
Returnstrue
if session configuration marks this instance as enabled.Default value is
false
.
-
isOriginAware
protected boolean isOriginAware(RepositorySystemSession session)
Returnstrue
if session configuration marks this instance as origin aware.Default value is
true
.
-
getBasedir
protected java.nio.file.Path getBasedir(RepositorySystemSession session, boolean mayCreate)
Uses utilityDirectoryUtils.resolveDirectory(RepositorySystemSession, String, String, boolean)
to calculate (and maybe create) basedir for this implementation, never returnsnull
. The returnedPath
may not exist, if invoked withmayCreate
beingfalse
.Default value is
${LOCAL_REPOSITORY}/.checksums
.- Returns:
- The
Path
of basedir, nevernull
.
-
-