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 NameMapperDiscriminatingNameMapper, that wraps anotherNameMapperand adds a "discriminator" as prefix, that makes lock names unique including the hostname and local repository (by default). The discriminator may be passed in viaRepositorySystemSessionor 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 static java.lang.StringNAME
-
Constructor Summary
Constructors Constructor Description DiscriminatingNameMapper(NameMapper nameMapper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DiscriminatingNameMapper
@Inject public DiscriminatingNameMapper(@Named("gav") NameMapper nameMapper)
-
-
Method Detail
-
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.- Specified by:
nameLocksin interfaceNameMapper
-
-