MetaDataCollector getMetadataCollector()

in dubbo-admin-server/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java [174:200]


    MetaDataCollector getMetadataCollector() {
        MetaDataCollector metaDataCollector = new NoOpMetadataCollector();
        if (metadataUrl == null) {
            if (StringUtils.isNotEmpty(metadataAddress)) {
                metadataUrl = formUrl(metadataAddress, metadataGroup, metadataGroupNameSpace, username, password);
                metadataUrl = metadataUrl.addParameter(CLUSTER_KEY, cluster);
            }
            logger.info("Admin using metadata address: " + metadataUrl);
        }
        if (metadataUrl != null) {
            metaDataCollector = ApplicationModel.defaultModel().getExtensionLoader(MetaDataCollector.class).getExtension(metadataUrl.getProtocol());
            metaDataCollector.setUrl(metadataUrl);
            metaDataCollector.init();
        } else {
            logger.warn("you are using dubbo.registry.address, which is not recommend, please refer to: https://github.com/apache/dubbo-admin/wiki/Dubbo-Admin-configuration");
            ApplicationModel applicationModel = ApplicationModel.defaultModel();
            ScopeBeanFactory beanFactory = applicationModel.getBeanFactory();
            MetadataReportInstance metadataReportInstance = beanFactory.registerBean(MetadataReportInstance.class);

            Optional<MetadataReport> metadataReport = metadataReportInstance.getMetadataReports(true)
                    .values().stream().findAny();

            metaDataCollector = new DubboDelegateMetadataCollector(metadataReport.get());
            metaDataCollector.setUrl(registryUrl);
        }
        return metaDataCollector;
    }