Class FileTrustedChecksumsSourceSupport
java.lang.Object
org.eclipse.aether.internal.impl.checksum.FileTrustedChecksumsSourceSupport
- All Implemented Interfaces:
org.eclipse.aether.spi.checksums.TrustedChecksumsSource
- Direct Known Subclasses:
SparseDirectoryTrustedChecksumsSource,SummaryFileTrustedChecksumsSource
public abstract class FileTrustedChecksumsSourceSupport
extends Object
implements org.eclipse.aether.spi.checksums.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 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
org.eclipse.aether.spi.checksums.TrustedChecksumsSource.Writer -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFileTrustedChecksumsSourceSupport(org.eclipse.aether.spi.remoterepo.RepositoryKeyFunctionFactory repositoryKeyFunctionFactory) -
Method Summary
Modifier and TypeMethodDescriptiondoGetTrustedArtifactChecksums(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 returnnullat this point, as this source is enabled.protected org.eclipse.aether.spi.checksums.TrustedChecksumsSource.WriterdoGetTrustedArtifactChecksumsWriter(org.eclipse.aether.RepositorySystemSession session) Implementors may override this method and returnTrustedChecksumsSource.Writerinstance.protected PathgetBasedir(org.eclipse.aether.RepositorySystemSession session, String defaultValue, String configPropKey, boolean mayCreate) Uses utilityDirectoryUtils.resolveDirectory(RepositorySystemSession, String, String, boolean)to calculate (and maybe create) basedir for this implementation, never returnsnull.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-nullreturn value.org.eclipse.aether.spi.checksums.TrustedChecksumsSource.WritergetTrustedArtifactChecksumsWriter(org.eclipse.aether.RepositorySystemSession session) This implementation will call into underlying code only if enabled.protected abstract booleanisEnabled(org.eclipse.aether.RepositorySystemSession session) Returnstrueif session configuration marks this instance as enabled.protected StringrepositoryKey(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.ArtifactRepository artifactRepository) Returns repository key to be used on file system layout.
-
Field Details
-
CONFIG_PROPS_PREFIX
- See Also:
-
CONFIG_PROP_REPOSITORY_KEY_FUNCTION
Experimental: Configuration for "repository key" function. Note: repository key functions other than "nid" produce repository keys will be way different that those produced with previous versions or without this option enabled. Checksum source uses this key function to lay down and look up files to use in sources.- Since:
- 2.0.14
- See Also:
- Sourced from:
RepositorySystemSession.getConfigProperties()- Value type:
String- Default value:
DEFAULT_REPOSITORY_KEY_FUNCTION
-
DEFAULT_REPOSITORY_KEY_FUNCTION
- See Also:
-
-
Constructor Details
-
FileTrustedChecksumsSourceSupport
protected FileTrustedChecksumsSourceSupport(org.eclipse.aether.spi.remoterepo.RepositoryKeyFunctionFactory repositoryKeyFunctionFactory)
-
-
Method Details
-
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-nullreturn value. In worst case, empty map should be returned, meaning "no trusted checksums available".- Specified by:
getTrustedArtifactChecksumsin interfaceorg.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 returnnull.- Specified by:
getTrustedArtifactChecksumsWriterin interfaceorg.eclipse.aether.spi.checksums.TrustedChecksumsSource
-
doGetTrustedArtifactChecksums
protected abstract 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 returnnullat 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 returnTrustedChecksumsSource.Writerinstance. -
isEnabled
Returnstrueif session configuration marks this instance as enabled.Default value is
false. -
getBasedir
protected Path getBasedir(org.eclipse.aether.RepositorySystemSession session, String defaultValue, String configPropKey, boolean mayCreate) Uses utilityDirectoryUtils.resolveDirectory(RepositorySystemSession, String, String, boolean)to calculate (and maybe create) basedir for this implementation, never returnsnull. The returnedPathmay not exist, if invoked withmayCreatebeingfalse.Default value is
${LOCAL_REPOSITORY}/.checksums.- Returns:
- The
Pathof basedir, nevernull.
-
repositoryKey
protected String repositoryKey(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.repository.ArtifactRepository artifactRepository) Returns repository key to be used on file system layout.- Since:
- 2.0.14
-