Source:
public static Map<String, ExternalResourceDriver> externalResourceDriversFromConfig(Configuration config, PluginManager pluginManager) throws Exception { final Set<String> resourceSet = getExternalResourceList(config); LOG.info("Enabled external resources: {}", resourceSet); if (resourceSet.isEmpty()) { return Collections.emptyMap(); } final Iterator<ExternalResourceDriverFactory> factoryIterator = pluginManager.load(ExternalResourceDriverFactory.class); final Map<String, ExternalResourceDriverFactory> externalResourceFactories = new HashMap<>(); factoryIterator.forEachRemaining( externalResourceDriverFactory -> { externalResourceFactories.put(externalResourceDriverFactory.getClass().getName(), externalResourceDriverFactory); }); final Map<String, ExternalResourceDriver> externalResourceDrivers = new HashMap<>(); for (String resourceName: resourceSet) { final String driverFactoryClassName = config.getString(ExternalResourceConstants.EXTERNAL_RESOURCE_PREFIX + resourceName + ExternalResourceConstants.EXTERNAL_RESOURCE_DRIVER_FACTORY_SUFFIX, ""); if (StringUtils.isNullOrWhitespaceOnly(driverFactoryClassName)) { LOG.warn("Could not found driver class name for {}. Please make sure {}{}{} is configured.", resourceName, ExternalResourceConstants.EXTERNAL_RESOURCE_PREFIX, resourceName, ExternalResourceConstants.EXTERNAL_RESOURCE_DRIVER_FACTORY_SUFFIX); continue; } if (externalResourceFactories.containsKey(driverFactoryClassName)) { externalResourceDrivers.put(resourceName, externalResourceFactories.get(driverFactoryClassName).createExternalResourceDriver(config)); LOG.info("Add external resources driver for {}.", resourceName); } else { LOG.error("Could not find factory class for {}. The information might not be exposed/reported.", driverFactoryClassName, resourceName); } } return externalResourceDrivers; }

Target:
public static Map<String, ExternalResourceDriver> externalResourceDriversFromConfig(Configuration config, PluginManager pluginManager) { final Set<String> resourceSet = getExternalResourceSet(config); LOG.info("Enabled external resources: {}", resourceSet); if (resourceSet.isEmpty()) { return Collections.emptyMap(); } final Iterator<ExternalResourceDriverFactory> factoryIterator = pluginManager.load(ExternalResourceDriverFactory.class); final Map<String, ExternalResourceDriverFactory> externalResourceFactories = new HashMap<>(); factoryIterator.forEachRemaining( externalResourceDriverFactory -> externalResourceFactories.put(externalResourceDriverFactory.getClass().getName(), externalResourceDriverFactory)); final Map<String, ExternalResourceDriver> externalResourceDrivers = new HashMap<>(); for (String resourceName: resourceSet) { final ConfigOption<String> driverClassOption = key(ExternalResourceOptions.getExternalResourceDriverFactoryConfigOptionForResource(resourceName)) .stringType() .noDefaultValue(); final String driverFactoryClassName = config.getString(driverClassOption); if (StringUtils.isNullOrWhitespaceOnly(driverFactoryClassName)) { LOG.warn("Could not find driver class name for {}. Please make sure is configured.", resourceName, driverClassOption.key()); continue; } ExternalResourceDriverFactory externalResourceDriverFactory = externalResourceFactories.get(driverFactoryClassName); if (externalResourceDriverFactory != null) { DelegatingConfiguration delegatingConfiguration = new DelegatingConfiguration(config, ExternalResourceOptions.getExternalResourceParamConfigPrefixForResource(resourceName)); try { externalResourceDrivers.put(resourceName, externalResourceDriverFactory.createExternalResourceDriver(delegatingConfiguration)); LOG.info("Add external resources driver for {}.", resourceName); } catch (Exception e) { LOG.warn("Could not instantiate driver with factory for {}. {}", driverFactoryClassName, resourceName, e); } } else { LOG.warn("Could not find factory class for {}.", driverFactoryClassName, resourceName); } } return externalResourceDrivers; }