Class GAVNameMapper
- java.lang.Object
-
- org.eclipse.aether.internal.impl.synccontext.named.GAVNameMapper
-
- All Implemented Interfaces:
NameMapper
- Direct Known Subclasses:
GAECVNameMapper
public class GAVNameMapper extends java.lang.Object implements NameMapper
Artifact GAVNameMapper, uses artifact and metadata coordinates to name their corresponding locks. Is not considering local repository, only the artifact coordinates. May use custom prefixes and suffixes and separators, hence this instance may or may not be filesystem friendly (depends on strings used).Note: in earlier Resolver 1.9.x versions this mapper was the default, but it changed to
GAECVNameMapperin 1.9.25.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringartifactPrefixprotected java.lang.StringartifactSuffixprotected java.lang.StringfieldSeparatorprotected booleanfileSystemFriendlyprotected static java.lang.StringMAVEN_METADATAprotected java.lang.StringmetadataPrefixprotected java.lang.StringmetadataSuffix
-
Constructor Summary
Constructors Constructor Description GAVNameMapper(boolean fileSystemFriendly, java.lang.String artifactPrefix, java.lang.String artifactSuffix, java.lang.String metadataPrefix, java.lang.String metadataSuffix, java.lang.String fieldSeparator)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static NameMapperfileGav()Deprecated.UseNameMappersto create name mappers instead.static NameMappergav()Deprecated.UseNameMappersto create name mappers instead.protected java.lang.StringgetArtifactName(org.eclipse.aether.artifact.Artifact artifact)protected java.lang.StringgetMetadataName(org.eclipse.aether.metadata.Metadata metadata)booleanisFileSystemFriendly()Returnstrueif lock names returned by this lock name mapper are file system friendly, can be used as file names and paths.java.util.Collection<java.lang.String>nameLocks(org.eclipse.aether.RepositorySystemSession session, java.util.Collection<? extends org.eclipse.aether.artifact.Artifact> artifacts, java.util.Collection<? extends org.eclipse.aether.metadata.Metadata> metadatas)Creates (opaque) names for passed in artifacts and metadata.
-
-
-
Field Detail
-
fileSystemFriendly
protected final boolean fileSystemFriendly
-
artifactPrefix
protected final java.lang.String artifactPrefix
-
artifactSuffix
protected final java.lang.String artifactSuffix
-
metadataPrefix
protected final java.lang.String metadataPrefix
-
metadataSuffix
protected final java.lang.String metadataSuffix
-
fieldSeparator
protected final java.lang.String fieldSeparator
-
MAVEN_METADATA
protected static final java.lang.String MAVEN_METADATA
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GAVNameMapper
public GAVNameMapper(boolean fileSystemFriendly, java.lang.String artifactPrefix, java.lang.String artifactSuffix, java.lang.String metadataPrefix, java.lang.String metadataSuffix, java.lang.String fieldSeparator)
-
-
Method Detail
-
isFileSystemFriendly
public boolean isFileSystemFriendly()
Description copied from interface:NameMapperReturnstrueif lock names returned by this lock name mapper are file system friendly, can be used as file names and paths.- Specified by:
isFileSystemFriendlyin interfaceNameMapper
-
nameLocks
public java.util.Collection<java.lang.String> nameLocks(org.eclipse.aether.RepositorySystemSession session, java.util.Collection<? extends org.eclipse.aether.artifact.Artifact> artifacts, java.util.Collection<? extends org.eclipse.aether.metadata.Metadata> metadatas)
Description copied from interface:NameMapperCreates (opaque) names for passed in artifacts and metadata. Returned collection has max size of sum of the passed in artifacts and metadata collections, or less. If an empty collection is returned, there will be no locking happening. Never returnsnull. The resulting collection MUST BE "stable" (always sorted by same criteria) to avoid deadlocks by acquiring locks in same order, essentially disregarding the order of the input collections.There is no requirement of any kind of "parity" between input element count (sum of two collections, that is) and output collection size, just the returned upper size limit is defined (sum of the passed in two collections size). If returned collection is empty, no locking will happen, if single element, one lock will be used, if two then two named locks will be used etc.
Note: name mapper must not use same string for artifacts and metadata, so even the simplest possible implementation like
StaticNameMapperuses two different static strings.- Specified by:
nameLocksin interfaceNameMapper
-
getArtifactName
protected java.lang.String getArtifactName(org.eclipse.aether.artifact.Artifact artifact)
-
getMetadataName
protected java.lang.String getMetadataName(org.eclipse.aether.metadata.Metadata metadata)
-
gav
@Deprecated public static NameMapper gav()
Deprecated.UseNameMappersto create name mappers instead.
-
fileGav
@Deprecated public static NameMapper fileGav()
Deprecated.UseNameMappersto create name mappers instead.
-
-