Class DiscriminatingNameMapper
- java.lang.Object
-
- org.eclipse.aether.internal.impl.synccontext.named.DiscriminatingNameMapper
-
- All Implemented Interfaces:
NameMapper
@Singleton @Named("discriminating") public class DiscriminatingNameMapper extends java.lang.Object implements NameMapper
DiscriminatingNameMapper
, that wraps anotherNameMapper
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 viaRepositorySystemSession
or is automatically calculated based on the local hostname and repository path. The implementation retains order of collection elements as it got it fromNameMapper.nameLocks(RepositorySystemSession, Collection, Collection)
method.The default setup wraps
GAVNameMapper
, but manually may be created any instance needed.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
CONFIG_PROP_DISCRIMINATOR
Configuration property to pass in discriminatorprivate static java.lang.String
CONFIG_PROP_HOSTNAME
Configuration property to pass in hostnameprivate static java.lang.String
DEFAULT_DISCRIMINATOR_DIGEST
private static java.lang.String
DEFAULT_HOSTNAME
private java.lang.String
hostname
private static org.slf4j.Logger
LOGGER
static java.lang.String
NAME
private NameMapper
nameMapper
-
Constructor Summary
Constructors Constructor Description DiscriminatingNameMapper(NameMapper nameMapper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
createDiscriminator(RepositorySystemSession session)
private java.lang.String
getHostname()
java.util.Collection<java.lang.String>
nameLocks(RepositorySystemSession session, java.util.Collection<? extends Artifact> artifacts, java.util.Collection<? extends Metadata> metadatas)
Creates (opaque) names for passed in artifacts and metadata.
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
CONFIG_PROP_DISCRIMINATOR
private static final java.lang.String CONFIG_PROP_DISCRIMINATOR
Configuration property to pass in discriminator- See Also:
- Constant Field Values
-
CONFIG_PROP_HOSTNAME
private static final java.lang.String CONFIG_PROP_HOSTNAME
Configuration property to pass in hostname- See Also:
- Constant Field Values
-
DEFAULT_DISCRIMINATOR_DIGEST
private static final java.lang.String DEFAULT_DISCRIMINATOR_DIGEST
- See Also:
- Constant Field Values
-
DEFAULT_HOSTNAME
private static final java.lang.String DEFAULT_HOSTNAME
- See Also:
- Constant Field Values
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
nameMapper
private final NameMapper nameMapper
-
hostname
private final java.lang.String hostname
-
-
Constructor Detail
-
DiscriminatingNameMapper
@Inject public DiscriminatingNameMapper(@Named("gav") NameMapper nameMapper)
-
-
Method Detail
-
nameLocks
public java.util.Collection<java.lang.String> nameLocks(RepositorySystemSession session, java.util.Collection<? extends Artifact> artifacts, java.util.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
private java.lang.String getHostname()
-
createDiscriminator
private java.lang.String createDiscriminator(RepositorySystemSession session)
-
-