/// <summary> /// Initializes a new instance of the <see cref="ConfigServerConfigurationProvider"/> class. /// </summary> /// <param name="settings">the configuration settings the provider uses when accessing the server.</param> /// <param name="httpClient">a HttpClient the provider uses to make requests of the server.</param> /// <param name="logFactory">optional logging factory</param> public ConfigNacosConfigurationProvider(ConfigNacosClientSettings settings, INacosConfigClient httpClient, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null) { _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _client = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); _logger = logFactory?.CreateLogger <ConfigNacosConfigurationProvider>(); _loggerFactory = logFactory; _configuration = new ConfigurationBuilder().Build(); }
/// <summary> /// Initializes a new instance of the <see cref="ConfigServerConfigurationProvider"/> class. /// </summary> /// <param name="settings">the configuration settings the provider uses when accessing the server.</param> /// <param name="logFactory">optional logging factory</param> public ConfigNacosConfigurationProvider(ConfigNacosClientSettings settings, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null) { _loggerFactory = logFactory; _clientFactory = clientFactory; _processor = processor ?? new MemoryLocalConfigInfoProcessor(); _logger = logFactory?.CreateLogger <ConfigNacosConfigurationProvider>(); _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _client = null; _configuration = new ConfigurationBuilder().Build(); }
/// <summary> /// Creates an appropriatly configured HttpClient that will be used in communicating with the /// Spring Cloud Configuration Server /// </summary> /// <param name="settings">the settings used in configuring the HttpClient</param> /// <returns>The HttpClient used by the provider</returns> protected static INacosConfigClient GetNacosClient(ConfigNacosClientSettings settings, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, ILoggerFactory loggerFactory = null) { NacosClientConfiguration nacosClientConfiguration = new NacosClientConfiguration() { ServerAddresses = settings.ServerAddr, IsSecure = settings.IsSecure, ServiceName = settings.Name }; return(new NacosConfigClient(loggerFactory, nacosClientConfiguration, clientFactory, processor)); }
public static IConfigurationBuilder AddNacosConfigServer(this IConfigurationBuilder configurationBuilder, string environment, string applicationName, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null) { if (configurationBuilder == null) { throw new ArgumentNullException(nameof(configurationBuilder)); } var settings = new ConfigNacosClientSettings() { Name = applicationName ?? Assembly.GetEntryAssembly()?.GetName().Name, Environment = environment ?? ConfigNacosClientSettings.DEFAULT_ENVIRONMENT }; return(configurationBuilder.AddNacosConfigServer(settings, clientFactory, processor, logFactory)); }
/// <summary> /// Initializes a new instance of the <see cref="ConfigServerConfigurationSource"/> class. /// </summary> /// <param name="defaultSettings">the default settings used by the Config Server client</param> /// <param name="sources">configuration sources used by the Config Server client. The <see cref="Configuration"/> will be built from these sources and the /// values will override those found in <see cref="DefaultSettings"/></param> /// <param name="properties">properties to be used when sources are built</param> /// <param name="logFactory">optional logger factory used by the client</param> public ConfigNacosConfigurationSource(ConfigNacosClientSettings defaultSettings, IList <IConfigurationSource> sources, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, IDictionary <string, object> properties = null, ILoggerFactory logFactory = null) { if (sources == null) { throw new ArgumentNullException(nameof(sources)); } _sources = new List <IConfigurationSource>(sources); if (properties != null) { _properties = new Dictionary <string, object>(properties); } Processor = processor; ClientFactory = clientFactory; DefaultSettings = defaultSettings ?? throw new ArgumentNullException(nameof(defaultSettings)); LogFactory = logFactory; }
public static void Initialize(string configPrefix, ConfigNacosClientSettings settings, IConfiguration config) { if (configPrefix == null) { throw new ArgumentNullException(nameof(configPrefix)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } var clientConfigsection = config.GetSection(configPrefix); settings.Name = GetApplicationName(clientConfigsection, config, settings.Name); settings.Environment = GetEnvironment(clientConfigsection, settings.Environment); settings.IsSecure = IsSecure(clientConfigsection); settings.GroupName = GetGroupName(clientConfigsection, settings.GroupName); settings.FileExtension = GetFileExtension(clientConfigsection, settings.FileExtension); settings.Namespace = GetNameSpace(clientConfigsection); settings.ServerAddr = GetServerAddress(clientConfigsection, settings.ServerAddr); settings.ClusterName = GetClusterName(clientConfigsection, settings.ClusterName); settings.Timeout = GetTimeout(clientConfigsection, settings.Timeout); settings.Interval = GetInterval(clientConfigsection, settings.Interval); settings.ContextPath = GetContextPath(clientConfigsection); settings.ExtConfigs = GetExtConfigs(clientConfigsection); settings.ShareDataIds = GetShareDataIds(clientConfigsection); settings.Prefix = GetPrefix(clientConfigsection); settings.Endpoint = GetEndpoint(clientConfigsection); settings.Enabled = GetEnabled(clientConfigsection, settings.Enabled); settings.RefreshableDataIds = GetRefreshableDataIds(clientConfigsection); // Override Config server URI settings.ServerAddr = GetCloudFoundryUri(clientConfigsection, config, settings.ServerAddr); }
/// <summary> /// Initializes a new instance of the <see cref="ConfigServerConfigurationSource"/> class. /// </summary> /// <param name="defaultSettings">the default settings used by the Config Server client</param> /// <param name="configuration">configuration used by the Config Server client. Values will override those found in default settings</param> /// <param name="logFactory">optional logger factory used by the client</param> public ConfigNacosConfigurationSource(ConfigNacosClientSettings defaultSettings, IConfiguration configuration, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null) { Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); DefaultSettings = defaultSettings ?? throw new ArgumentNullException(nameof(defaultSettings)); LogFactory = logFactory; }
public static IConfigurationBuilder AddNacosConfigServer(this IConfigurationBuilder configurationBuilder, ConfigNacosClientSettings defaultSettings, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null) { if (configurationBuilder == null) { throw new ArgumentNullException(nameof(configurationBuilder)); } if (defaultSettings == null) { throw new ArgumentNullException(nameof(defaultSettings)); } if (!configurationBuilder.Sources.Any(c => c.GetType() == typeof(CloudFoundryConfigurationSource))) { configurationBuilder.Add(new CloudFoundryConfigurationSource()); } configurationBuilder.Add(new ConfigNacosConfigurationSource(defaultSettings, configurationBuilder.Sources, clientFactory, processor, configurationBuilder.Properties, logFactory)); return(configurationBuilder); }