in maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java [136:176]
static boolean matchPattern(RemoteRepository repository, String pattern) {
boolean result = false;
String originalId = repository.getId();
// simple checks first to short circuit processing below.
if (WILDCARD.equals(pattern) || pattern.equals(originalId)) {
result = true;
} else {
// process the list
String[] repos = pattern.split(",");
for (String repo : repos) {
// see if this is a negative match
if (repo.length() > 1 && repo.startsWith("!")) {
if (repo.substring(1).equals(originalId)) {
// explicitly exclude. Set result and stop processing.
result = false;
break;
}
}
// check for exact match
else if (repo.equals(originalId)) {
result = true;
break;
}
// check for external:*
else if (EXTERNAL_WILDCARD.equals(repo) && isExternalRepo(repository)) {
result = true;
// don't stop processing in case a future segment explicitly excludes this repo
}
// check for external:http:*
else if (EXTERNAL_HTTP_WILDCARD.equals(repo) && isExternalHttpRepo(repository)) {
result = true;
// don't stop processing in case a future segment explicitly excludes this repo
} else if (WILDCARD.equals(repo)) {
result = true;
// don't stop processing in case a future segment explicitly excludes this repo
}
}
}
return result;
}