Merge remote-tracking branch 'origin/netcore/netcore' into feature/8651-config-options-patten
Signed-off-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
@@ -172,12 +172,17 @@ namespace Umbraco.Extensions
|
||||
|
||||
IHttpContextAccessor httpContextAccessor = new HttpContextAccessor();
|
||||
services.AddSingleton<IHttpContextAccessor>(httpContextAccessor);
|
||||
|
||||
var requestCache = new GenericDictionaryRequestAppCache(() => httpContextAccessor.HttpContext?.Items);
|
||||
var appCaches = new AppCaches(
|
||||
new DeepCloneAppCache(new ObjectCacheAppCache()),
|
||||
requestCache,
|
||||
new IsolatedCaches(type => new DeepCloneAppCache(new ObjectCacheAppCache())));
|
||||
|
||||
services.AddUmbracoCore(webHostEnvironment,
|
||||
umbContainer,
|
||||
Assembly.GetEntryAssembly(),
|
||||
requestCache,
|
||||
appCaches,
|
||||
loggingConfig,
|
||||
out factory);
|
||||
|
||||
@@ -191,7 +196,7 @@ namespace Umbraco.Extensions
|
||||
/// <param name="webHostEnvironment"></param>
|
||||
/// <param name="umbContainer"></param>
|
||||
/// <param name="entryAssembly"></param>
|
||||
/// <param name="requestCache"></param>
|
||||
/// <param name="appCaches"></param>
|
||||
/// <param name="httpContextAccessor"></param>
|
||||
/// <param name="loggingConfiguration"></param>
|
||||
/// <param name="factory"></param>
|
||||
@@ -201,9 +206,35 @@ namespace Umbraco.Extensions
|
||||
IWebHostEnvironment webHostEnvironment,
|
||||
IRegister umbContainer,
|
||||
Assembly entryAssembly,
|
||||
IRequestCache requestCache,
|
||||
AppCaches appCaches,
|
||||
ILoggingConfiguration loggingConfiguration,
|
||||
out IFactory factory)
|
||||
=> services.AddUmbracoCore(webHostEnvironment, umbContainer, entryAssembly, appCaches, loggingConfiguration, GetCoreRuntime, out factory);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Adds the Umbraco Back Core requirements
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="webHostEnvironment"></param>
|
||||
/// <param name="umbContainer"></param>
|
||||
/// <param name="entryAssembly"></param>
|
||||
/// <param name="appCaches"></param>
|
||||
/// <param name="httpContextAccessor"></param>
|
||||
/// <param name="loggingConfiguration"></param>
|
||||
/// <param name="getRuntime">Delegate to create an <see cref="IRuntime"/></param>
|
||||
/// <param name="factory"></param>
|
||||
/// <returns></returns>
|
||||
public static IServiceCollection AddUmbracoCore(
|
||||
this IServiceCollection services,
|
||||
IWebHostEnvironment webHostEnvironment,
|
||||
IRegister umbContainer,
|
||||
Assembly entryAssembly,
|
||||
AppCaches appCaches,
|
||||
ILoggingConfiguration loggingConfiguration,
|
||||
// TODO: Yep that's extremely ugly
|
||||
Func<Configs, GlobalSettings, ConnectionStrings, IUmbracoVersion, IIOHelper, Core.Logging.ILogger, IProfiler, Core.Hosting.IHostingEnvironment, IBackOfficeInfo, ITypeFinder, AppCaches, IDbProviderFactoryCreator, IRuntime> getRuntime,
|
||||
out IFactory factory)
|
||||
{
|
||||
if (services is null) throw new ArgumentNullException(nameof(services));
|
||||
var container = umbContainer;
|
||||
@@ -236,6 +267,7 @@ namespace Umbraco.Extensions
|
||||
var typeFinderSettings = serviceProvider.GetService<IOptionsMonitor<TypeFinderSettings>>();
|
||||
|
||||
var dbProviderFactoryCreator = serviceProvider.GetRequiredService<IDbProviderFactoryCreator>();
|
||||
var configs = serviceProvider.GetRequiredService<Configs>();
|
||||
|
||||
CreateCompositionRoot(services,
|
||||
globalSettings,
|
||||
@@ -247,8 +279,7 @@ namespace Umbraco.Extensions
|
||||
var umbracoVersion = new UmbracoVersion();
|
||||
var typeFinder = CreateTypeFinder(logger, profiler, webHostEnvironment, entryAssembly, typeFinderSettings);
|
||||
|
||||
var configs = serviceProvider.GetService<Configs>();
|
||||
var coreRuntime = GetCoreRuntime(
|
||||
var runtime = getRuntime(
|
||||
configs,
|
||||
globalSettings.CurrentValue,
|
||||
connectionStrings.Value,
|
||||
@@ -259,10 +290,10 @@ namespace Umbraco.Extensions
|
||||
hostingEnvironment,
|
||||
backOfficeInfo,
|
||||
typeFinder,
|
||||
requestCache,
|
||||
appCaches,
|
||||
dbProviderFactoryCreator);
|
||||
|
||||
factory = coreRuntime.Configure(container);
|
||||
factory = runtime.Configure(container);
|
||||
|
||||
return services;
|
||||
}
|
||||
@@ -278,7 +309,7 @@ namespace Umbraco.Extensions
|
||||
private static IRuntime GetCoreRuntime(
|
||||
Configs configs, GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, Core.Logging.ILogger logger,
|
||||
IProfiler profiler, Core.Hosting.IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo,
|
||||
ITypeFinder typeFinder, IRequestCache requestCache, IDbProviderFactoryCreator dbProviderFactoryCreator)
|
||||
ITypeFinder typeFinder, AppCaches appCaches, IDbProviderFactoryCreator dbProviderFactoryCreator)
|
||||
{
|
||||
// Determine if we should use the sql main dom or the default
|
||||
var appSettingMainDomLock = globalSettings.MainDomLock;
|
||||
@@ -304,7 +335,7 @@ namespace Umbraco.Extensions
|
||||
dbProviderFactoryCreator,
|
||||
mainDom,
|
||||
typeFinder,
|
||||
requestCache);
|
||||
appCaches);
|
||||
|
||||
return coreRuntime;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user