@Singleton @Named(value="prefixes") public final class PrefixesRemoteRepositoryFilterSource extends RemoteRepositoryFilterSourceSupport
The file can be authored manually: format is one prefix per line, comments starting with "#" (hash) and empty lines for structuring are supported, The "/" (slash) character is used as file separator. Some remote repositories and MRMs publish these kind of files, they can be downloaded from corresponding URLs.
The prefix file is expected on path "${basedir}/prefixes-${repository.id}.txt".
The prefixes file is once loaded and cached, so in-flight prefixes file change during component existence are not noticed.
Examples of published prefix files:
Modifier and Type | Class and Description |
---|---|
private static class |
PrefixesRemoteRepositoryFilterSource.Node |
private class |
PrefixesRemoteRepositoryFilterSource.PrefixesFilter |
RemoteRepositoryFilterSourceSupport.SimpleResult
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ConcurrentHashMap<RemoteRepository,RepositoryLayout> |
layouts |
private static org.slf4j.Logger |
LOGGER |
static java.lang.String |
NAME |
private static PrefixesRemoteRepositoryFilterSource.Node |
NOT_PRESENT_NODE |
private static RemoteRepositoryFilter.Result |
NOT_PRESENT_RESULT |
private java.util.concurrent.ConcurrentHashMap<RemoteRepository,PrefixesRemoteRepositoryFilterSource.Node> |
prefixes |
(package private) static java.lang.String |
PREFIXES_FILE_PREFIX |
(package private) static java.lang.String |
PREFIXES_FILE_SUFFIX |
private RepositoryLayoutProvider |
repositoryLayoutProvider |
LOCAL_REPO_PREFIX_DIR
Constructor and Description |
---|
PrefixesRemoteRepositoryFilterSource(RepositoryLayoutProvider repositoryLayoutProvider) |
Modifier and Type | Method and Description |
---|---|
private RepositoryLayout |
cacheLayout(RepositorySystemSession session,
RemoteRepository remoteRepository)
Caches layout instances for remote repository.
|
private PrefixesRemoteRepositoryFilterSource.Node |
cacheNode(java.nio.file.Path basedir,
RemoteRepository remoteRepository)
Caches prefixes instances for remote repository.
|
private static java.util.List<java.lang.String> |
elementsOf(java.lang.String path) |
RemoteRepositoryFilter |
getRemoteRepositoryFilter(RepositorySystemSession session)
Provides the filter instance for given session, or
null if this instance wants to abstain from
participating in filtering. |
private PrefixesRemoteRepositoryFilterSource.Node |
loadRepositoryPrefixes(java.nio.file.Path baseDir,
RemoteRepository remoteRepository)
Loads prefixes file and preprocesses it into
PrefixesRemoteRepositoryFilterSource.Node instance. |
configPropKey, getBasedir, isEnabled
public static final java.lang.String NAME
static final java.lang.String PREFIXES_FILE_PREFIX
static final java.lang.String PREFIXES_FILE_SUFFIX
private static final org.slf4j.Logger LOGGER
private final RepositoryLayoutProvider repositoryLayoutProvider
private final java.util.concurrent.ConcurrentHashMap<RemoteRepository,PrefixesRemoteRepositoryFilterSource.Node> prefixes
private final java.util.concurrent.ConcurrentHashMap<RemoteRepository,RepositoryLayout> layouts
private static final PrefixesRemoteRepositoryFilterSource.Node NOT_PRESENT_NODE
private static final RemoteRepositoryFilter.Result NOT_PRESENT_RESULT
@Inject public PrefixesRemoteRepositoryFilterSource(RepositoryLayoutProvider repositoryLayoutProvider)
public RemoteRepositoryFilter getRemoteRepositoryFilter(RepositorySystemSession session)
RemoteRepositoryFilterSource
null
if this instance wants to abstain from
participating in filtering.null
.private RepositoryLayout cacheLayout(RepositorySystemSession session, RemoteRepository remoteRepository)
null
.null
if layout not supported.private PrefixesRemoteRepositoryFilterSource.Node cacheNode(java.nio.file.Path basedir, RemoteRepository remoteRepository)
private PrefixesRemoteRepositoryFilterSource.Node loadRepositoryPrefixes(java.nio.file.Path baseDir, RemoteRepository remoteRepository)
PrefixesRemoteRepositoryFilterSource.Node
instance.private static java.util.List<java.lang.String> elementsOf(java.lang.String path)