public final class DefaultMirrorSelector extends java.lang.Object implements MirrorSelector
Modifier and Type | Class and Description |
---|---|
(package private) static class |
DefaultMirrorSelector.MirrorDef |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
EXTERNAL_WILDCARD |
private java.util.List<DefaultMirrorSelector.MirrorDef> |
mirrors |
private static java.lang.String |
WILDCARD |
Constructor and Description |
---|
DefaultMirrorSelector() |
Modifier and Type | Method and Description |
---|---|
DefaultMirrorSelector |
add(java.lang.String id,
java.lang.String url,
java.lang.String type,
boolean repositoryManager,
java.lang.String mirrorOfIds,
java.lang.String mirrorOfTypes)
Adds the specified mirror to this selector.
|
private DefaultMirrorSelector.MirrorDef |
findMirror(RemoteRepository repository) |
RemoteRepository |
getMirror(RemoteRepository repository)
Selects a mirror for the specified repository.
|
(package private) static boolean |
isExternalRepo(RemoteRepository repository)
Checks the URL to see if this repository refers to an external repository.
|
(package private) static boolean |
matchesType(java.lang.String repoType,
java.lang.String mirrorType)
Checks whether the types configured for a mirror match with the type of the repository.
|
(package private) static boolean |
matchPattern(RemoteRepository repository,
java.lang.String pattern)
This method checks if the pattern matches the originalRepository.
|
private static final java.lang.String WILDCARD
private static final java.lang.String EXTERNAL_WILDCARD
private final java.util.List<DefaultMirrorSelector.MirrorDef> mirrors
public DefaultMirrorSelector add(java.lang.String id, java.lang.String url, java.lang.String type, boolean repositoryManager, java.lang.String mirrorOfIds, java.lang.String mirrorOfTypes)
id
- The identifier of the mirror, must not be null
.url
- The URL of the mirror, must not be null
.type
- The content type of the mirror, must not be null
.repositoryManager
- A flag whether the mirror is a repository manager or a simple server.mirrorOfIds
- The identifier(s) of remote repositories to mirror, must not be null
. Multiple
identifiers can be separated by comma and additionally the wildcards "*" and "external:*" can be used
to match all (external) repositories, prefixing a repo id with an exclamation mark allows to express
an exclusion. For example "external:*,!central".mirrorOfTypes
- The content type(s) of remote repositories to mirror, may be null
or empty to match
any content type. Similar to the repo id specification, multiple types can be comma-separated, the
wildcard "*" and the "!" negation syntax are supported. For example "*,!p2".null
.public RemoteRepository getMirror(RemoteRepository repository)
MirrorSelector
getMirror
in interface MirrorSelector
repository
- The repository to select a mirror for, must not be null
.null
if none.RemoteRepository.getMirroredRepositories()
private DefaultMirrorSelector.MirrorDef findMirror(RemoteRepository repository)
static boolean matchPattern(RemoteRepository repository, java.lang.String pattern)
repository
- to compare for a match.pattern
- used for match. Currently only '*' is supported.static boolean isExternalRepo(RemoteRepository repository)
repository
- The repository to check, must not be null
.true
if external, false
otherwise.static boolean matchesType(java.lang.String repoType, java.lang.String mirrorType)
repoType
- The type of the repository, may be null
.mirrorType
- The types supported by the mirror, may be null
.true
if the types associated with the mirror match the type of the original repository,
false
otherwise.