in appactive-java-client/client-bridge/client-bridge-rpc-springcloud/client-bridge-rpc-springcloud-common/src/main/java/io/appactive/rpc/springcloud/common/provider/URIRegister.java [29:82]
public static void collectUris(List<FilterRegistrationBean> beanList){
if (CollectionUtils.isNotEmpty(beanList)){
List<ServiceMeta> serviceMetaList = new LinkedList<>();
boolean hasWildChar = false;
for (FilterRegistrationBean filterRegistrationBean : beanList) {
Filter filter = filterRegistrationBean.getFilter();
if (filter==null){
continue;
}
if (filter instanceof UnitServiceFilter){
Collection<String> urlPatterns = filterRegistrationBean.getUrlPatterns();
for (String urlPattern : urlPatterns) {
if (MATCH_ALL.equalsIgnoreCase(urlPattern)){
hasWildChar = true;
}
ServiceMeta serviceMeta = new ServiceMeta(urlPattern, ResourceActiveType.UNIT_RESOURCE_TYPE);
serviceMetaList.add(serviceMeta);
}
}else if(filter instanceof CenterServiceFilter){
Collection<String> urlPatterns = filterRegistrationBean.getUrlPatterns();
for (String urlPattern : urlPatterns) {
if (MATCH_ALL.equalsIgnoreCase(urlPattern)){
hasWildChar = true;
}
ServiceMeta serviceMeta = new ServiceMeta(urlPattern, ResourceActiveType.CENTER_RESOURCE_TYPE);
serviceMetaList.add(serviceMeta);
}
}else if (filter instanceof NormalServiceFilter){
Collection<String> urlPatterns = filterRegistrationBean.getUrlPatterns();
for (String urlPattern : urlPatterns) {
if (MATCH_ALL.equalsIgnoreCase(urlPattern)){
hasWildChar = true;
}
ServiceMeta serviceMeta = new ServiceMeta(urlPattern, ResourceActiveType.NORMAL_RESOURCE_TYPE);
serviceMetaList.add(serviceMeta);
}
}
}
if (CollectionUtils.isNotEmpty(serviceMetaList)){
if (!hasWildChar){
// 保证所有 service(app+uri) 都纳入管理,不然不好做缓存管理
ServiceMeta serviceMeta = new ServiceMeta(MATCH_ALL, ResourceActiveType.NORMAL_RESOURCE_TYPE);
serviceMetaList.add(serviceMeta);
}
serviceMetaObject = new ServiceMetaObject();
Collections.sort(serviceMetaList);
serviceMetaObject.setServiceMetaList(serviceMetaList);
String meta = JSON.toJSONString(serviceMetaList);
serviceMetaObject.setMeta(meta);
String md5 = DigestUtils.md5Hex(meta.getBytes(StandardCharsets.UTF_8));
serviceMetaObject.setMd5OfList(md5);
}
}
}