Class FileGAVNameMapper
java.lang.Object
org.eclipse.aether.internal.impl.synccontext.named.FileGAVNameMapper
- All Implemented Interfaces:
NameMapper
,FileSystemFriendly
@Singleton
@Named("file-gav")
public class FileGAVNameMapper
extends Object
implements NameMapper, FileSystemFriendly
A
NameMapper
that creates same name mapping as Takari Local Repository does, with
baseDir
(local repo). Part of code blatantly copies parts of the Takari
LockingSyncContext
.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConcurrentMap<String,
Path> private static final String
static final String
private static final char
-
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:
-
LOCK_SUFFIX
- See Also:
-
SEPARATOR
private static final char SEPARATOR- See Also:
-
baseDirs
-
-
Constructor Details
-
FileGAVNameMapper
public FileGAVNameMapper()
-
-
Method Details
-
nameLocks
public TreeSet<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
-
getPath
-
getPath
-