in appactive-java-client/client-bridge/client-bridge-rpc-springcloud/client-bridge-rpc-springcloud-common/src/main/java/io/appactive/rpc/springcloud/common/consumer/SpringCloudAddressFilterByUnitServiceImpl.java [52:73]
public static String calcBestMatcher(AntPathMatcher antPathMatcher, Set<String> candidates, String nameOfTarget){
// org.springframework.web.servlet.handler.AbstractUrlHandlerMapping#lookupHandler(java.lang.String, javax.servlet.http.HttpServletRequest)
String bestMatcher = EMPTY_MATCHER;
List<String> matchingPatterns = new ArrayList<>();
String targetUri = getUriFromPrimaryName(nameOfTarget);
Set<String> candidateUris = candidates.stream().map(Util::getUriFromPrimaryName).collect(Collectors.toSet());
for (String candidateUri : candidateUris) {
if (antPathMatcher.match(candidateUri, targetUri)) {
matchingPatterns.add(candidateUri);
}
}
Comparator<String> patternComparator = antPathMatcher.getPatternComparator(targetUri);
if (!matchingPatterns.isEmpty()) {
matchingPatterns.sort(patternComparator);
if (logger.isDebugEnabled()) {
logger.debug("Matching patterns for request [" + targetUri + "] are " + matchingPatterns);
}
bestMatcher = matchingPatterns.get(0);
}
bestMatcher = buildServicePrimaryName(getAppNameFromPrimaryName(nameOfTarget),bestMatcher);
return bestMatcher;
}