Skip to content

Commit

Permalink
merge fix
Browse files Browse the repository at this point in the history
  • Loading branch information
jlukawska committed May 16, 2024
1 parent 06b0ad7 commit 8c3ec5a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@ public class DiskFileConfigurationRepository : IFileConfigurationRepository
private FileInfo _environmentFile;
private readonly object _lock = new();

public DiskFileConfigurationRepository(IWebHostEnvironment hosting, IOcelotConfigurationChangeTokenSource changeTokenSource)
public DiskFileConfigurationRepository(IWebHostEnvironment hostingEnvironment, IOcelotConfigurationChangeTokenSource changeTokenSource)
{
_hostingEnvironment = hostingEnvironment;
_changeTokenSource = changeTokenSource;
_environmentFilePath = $"{AppContext.BaseDirectory}{ConfigurationFileName}{(string.IsNullOrEmpty(hosting.EnvironmentName) ? string.Empty : ".")}{hosting.EnvironmentName}.json";
Initialize(AppContext.BaseDirectory);
}

Expand All @@ -41,7 +40,6 @@ private void Initialize(string folder)
_environmentFile = new FileInfo(Path.Combine(folder, envFile));
}

public Task<Response<FileConfiguration>> Get()
public Task<FileConfiguration> GetAsync()
{
string jsonConfiguration;
Expand Down
19 changes: 10 additions & 9 deletions src/Ocelot/DependencyInjection/ConfigurationBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,11 @@ private static string GetMergedOcelotJson(string folder, IWebHostEnvironment env
!fi.FullName.Equals(environmentFileInfo.FullName, StringComparison.OrdinalIgnoreCase))
.ToArray();

dynamic fileConfiguration = new JObject();
fileConfiguration.GlobalConfiguration = new JObject();
fileConfiguration.Aggregates = new JArray();
fileConfiguration.Routes = new JArray();
dynamic fileConfigurationMerged = fileConfiguration != null ? JObject.FromObject(fileConfiguration) : new JObject();
fileConfigurationMerged.GlobalConfiguration ??= new JObject();
fileConfigurationMerged.Aggregates ??= new JArray();
fileConfigurationMerged.Routes ??= new JArray();

primaryFile ??= PrimaryConfigFile;
globalFile ??= GlobalConfigFile;
var primaryFileInfo = new FileInfo(primaryFile);
Expand All @@ -136,13 +137,13 @@ private static string GetMergedOcelotJson(string folder, IWebHostEnvironment env

var lines = File.ReadAllText(file.FullName);
dynamic config = JToken.Parse(lines);
var isGlobal = file.Name.Equals(globalFileInfo.Name, StringComparison.OrdinalIgnoreCase) &&
var isGlobal = file.Name.Equals(globalFileInfo.Name, StringComparison.OrdinalIgnoreCase) &&
file.FullName.Equals(globalFileInfo.FullName, StringComparison.OrdinalIgnoreCase);

MergeConfig(fileConfiguration, config, isGlobal);
MergeConfig(fileConfigurationMerged, config, isGlobal);
}

return (JObject)fileConfiguration.ToString();
return ((JObject)fileConfigurationMerged).ToString();
}

public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder, JObject fileConfiguration)
Expand All @@ -163,10 +164,10 @@ public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder
string primaryConfigFile = null, bool? optional = null, bool? reloadOnChange = null) // optional injections
=> SerializeToFile(builder, fileConfiguration);

private static IConfigurationBuilder SerializeToFile(IConfigurationBuilder builder, object fileConfiguration)
private static IConfigurationBuilder SerializeToFile(IConfigurationBuilder builder, object fileConfiguration, bool? optional = null, bool? reloadOnChange = null)
{
var json = JsonConvert.SerializeObject(fileConfiguration, Formatting.Indented);
return AddOcelotJsonFile(builder, json, primaryConfigFile, optional, reloadOnChange);
return AddOcelotJsonFile(builder, json, PrimaryConfigFile, optional, reloadOnChange);
}
/// <summary>
/// Adds Ocelot configuration by ready configuration object, environment and merge option, reading the required files from the current default folder.
Expand Down

0 comments on commit 8c3ec5a

Please sign in to comment.