Class DiscriminatingNameMapper
java.lang.Object
org.eclipse.aether.internal.impl.synccontext.named.DiscriminatingNameMapper
- All Implemented Interfaces:
NameMapper
@Singleton
@Named("discriminating")
public class DiscriminatingNameMapper
extends Object
implements NameMapper
Discriminating
NameMapper
, that wraps another NameMapper
and adds a "discriminator" as prefix, that
makes lock names unique including the hostname and local repository (by default). The discriminator may be passed
in via RepositorySystemSession
or is automatically calculated based on the local hostname and repository
path. The implementation retains order of collection elements as it got it from
NameMapper.nameLocks(RepositorySystemSession, Collection, Collection)
method.
The default setup wraps GAVNameMapper
, but manually may be created any instance needed.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
Configuration property to pass in discriminatorprivate static final String
Configuration property to pass in hostnameprivate static final String
private static final String
private final String
private static final org.slf4j.Logger
static final String
private final NameMapper
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
private String
nameLocks
(RepositorySystemSession session, Collection<? extends Artifact> artifacts, Collection<? extends Metadata> metadatas) Creates (opaque) names for passed in artifacts and metadata.
-
Field Details
-
NAME
- See Also:
-
CONFIG_PROP_DISCRIMINATOR
Configuration property to pass in discriminator- See Also:
-
CONFIG_PROP_HOSTNAME
Configuration property to pass in hostname- See Also:
-
DEFAULT_DISCRIMINATOR_DIGEST
- See Also:
-
DEFAULT_HOSTNAME
- See Also:
-
LOGGER
private static final org.slf4j.Logger LOGGER -
nameMapper
-
hostname
-
-
Constructor Details
-
DiscriminatingNameMapper
-
-
Method Details
-
nameLocks
public Collection<String> nameLocks(RepositorySystemSession session, Collection<? extends Artifact> artifacts, Collection<? extends Metadata> metadatas) Description copied from interface:NameMapper
Creates (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.- Specified by:
nameLocks
in interfaceNameMapper
-
getHostname
-
createDiscriminator
-