in dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/InstanceRegistryQueryHelper.java [157:192]
private List<Provider> urlsToProviderList(List<InstanceAddressURL> urls) {
List<Provider> providers = Lists.newArrayList();
urls.stream().distinct().forEach(url -> {
ServiceInstance instance = url.getInstance();
MetadataInfo metadataInfo = url.getMetadataInfo();
metadataInfo.getServices().forEach((serviceKey, serviceInfo) -> {
// build consumer url
ServiceConfigURL consumerUrl = new URLBuilder()
.setProtocol(serviceInfo.getProtocol())
.setPath(serviceInfo.getPath())
.addParameter("group", serviceInfo.getGroup())
.addParameter("version", serviceInfo.getVersion())
.build();
RpcContext.getServiceContext().setConsumerUrl(consumerUrl);
Provider p = new Provider();
String service = serviceInfo.getServiceKey();
p.setService(service);
p.setAddress(url.getAddress());
p.setApplication(instance.getServiceName());
p.setUrl(url.toFullString());
p.setDynamic(url.getParameter("dynamic", true));
p.setEnabled(url.getParameter(Constants.ENABLED_KEY, true));
p.setSerialization(url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, "hessian2"));
p.setTimeout(url.getParameter(CommonConstants.TIMEOUT_KEY, CommonConstants.DEFAULT_TIMEOUT));
p.setWeight(url.getParameter(Constants.WEIGHT_KEY, Constants.DEFAULT_WEIGHT));
p.setUsername(url.getParameter("owner"));
p.setRegistrySource(RegistrySource.INSTANCE);
providers.add(p);
RpcContext.getServiceContext().setConsumerUrl(null);
});
});
return providers;
}