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 java.lang.Object implements NameMapper, FileSystemFriendly
ANameMapper
that creates same name mapping as Takari Local Repository does, withbaseDir
(local repo). Part of code blatantly copies parts of the TakariLockingSyncContext
.- See Also:
- Takari LockingSyncContext.java
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor Description FileGAVNameMapper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
LOCK_SUFFIX
private static final java.lang.String LOCK_SUFFIX
- See Also:
- Constant Field Values
-
SEPARATOR
private static final char SEPARATOR
- See Also:
- Constant Field Values
-
baseDirs
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.nio.file.Path> baseDirs
-
-
Method Detail
-
nameLocks
public java.util.TreeSet<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
-
getPath
private java.lang.String getPath(java.nio.file.Path baseDir, Artifact artifact)
-
getPath
private java.lang.String getPath(java.nio.file.Path baseDir, Metadata metadata)
-
-