@Singleton @Named(value="file-gav") public class FileGAVNameMapper extends java.lang.Object implements NameMapper, FileSystemFriendly
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
.Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ConcurrentMap<java.lang.String,java.nio.file.Path> |
baseDirs |
private static java.lang.String |
LOCK_SUFFIX |
static java.lang.String |
NAME |
private static char |
SEPARATOR |
Constructor and Description |
---|
FileGAVNameMapper() |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
getPath(java.nio.file.Path baseDir,
Artifact artifact) |
private java.lang.String |
getPath(java.nio.file.Path baseDir,
Metadata metadata) |
java.util.TreeSet<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.
|
public static final java.lang.String NAME
private static final java.lang.String LOCK_SUFFIX
private static final char SEPARATOR
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.nio.file.Path> baseDirs
public java.util.TreeSet<java.lang.String> nameLocks(RepositorySystemSession session, java.util.Collection<? extends Artifact> artifacts, java.util.Collection<? extends Metadata> metadatas)
NameMapper
null
. 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.nameLocks
in interface NameMapper
private java.lang.String getPath(java.nio.file.Path baseDir, Artifact artifact)
private java.lang.String getPath(java.nio.file.Path baseDir, Metadata metadata)