Merge remote-tracking branch 'origin/v11/dev' into v11/bugfix/fix-more-unstable-acceptance-tests
This commit is contained in:
@@ -41,6 +41,7 @@ public static partial class Constants
|
||||
public const string ConfigLogging = ConfigPrefix + "Logging";
|
||||
public const string ConfigMemberPassword = ConfigPrefix + "Security:MemberPassword";
|
||||
public const string ConfigModelsBuilder = ConfigPrefix + "ModelsBuilder";
|
||||
public const string ConfigModelsMode = ConfigModelsBuilder + ":ModelsMode";
|
||||
public const string ConfigNuCache = ConfigPrefix + "NuCache";
|
||||
public const string ConfigPlugins = ConfigPrefix + "Plugins";
|
||||
public const string ConfigRequestHandler = ConfigPrefix + "RequestHandler";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
|
||||
namespace Umbraco.Extensions;
|
||||
@@ -101,4 +102,7 @@ public static class ConfigurationExtensions
|
||||
/// </returns>
|
||||
public static RuntimeMode GetRuntimeMode(this IConfiguration configuration)
|
||||
=> configuration.GetValue<RuntimeMode>(Constants.Configuration.ConfigRuntimeMode);
|
||||
|
||||
public static ModelsMode GetModelsMode(this IConfiguration configuration) =>
|
||||
configuration.GetValue<ModelsMode>(Constants.Configuration.ConfigModelsMode);
|
||||
}
|
||||
|
||||
@@ -140,35 +140,27 @@ public static class UmbracoBuilderDependencyInjectionExtensions
|
||||
return builder;
|
||||
}
|
||||
|
||||
// See notes in RefreshingRazorViewEngine for information on what this is doing.
|
||||
private static IUmbracoBuilder AddInMemoryModelsRazorEngine(this IUmbracoBuilder builder)
|
||||
{
|
||||
// See notes in RefreshingRazorViewEngine for information on what this is doing.
|
||||
// We should only add/replace these services when models builder is InMemory, otherwise we'll cause issues.
|
||||
// Since these services expect the ModelsMode to be InMemoryAuto
|
||||
if (builder.Config.GetModelsMode() is ModelsMode.InMemoryAuto)
|
||||
{
|
||||
builder.Services.AddSingleton<UmbracoRazorReferenceManager>();
|
||||
builder.Services.AddSingleton<CompilationOptionsProvider>();
|
||||
builder.Services.AddSingleton<IViewCompilerProvider, UmbracoViewCompilerProvider>();
|
||||
builder.Services.AddSingleton<RuntimeCompilationCacheBuster>();
|
||||
builder.Services.AddSingleton<InMemoryAssemblyLoadContextManager>();
|
||||
|
||||
// copy the current collection, we need to use this later to rebuild a container
|
||||
// to re-create the razor compiler provider
|
||||
builder.Services.AddSingleton<UmbracoRazorReferenceManager>();
|
||||
builder.Services.AddSingleton<CompilationOptionsProvider>();
|
||||
builder.Services.AddSingleton<IViewCompilerProvider, UmbracoViewCompilerProvider>();
|
||||
builder.Services.AddSingleton<RuntimeCompilationCacheBuster>();
|
||||
builder.Services.AddSingleton<InMemoryAssemblyLoadContextManager>();
|
||||
|
||||
builder.Services.AddSingleton<InMemoryModelFactory>();
|
||||
builder.Services.AddSingleton<InMemoryModelFactory>();
|
||||
// Register the factory as IPublishedModelFactory
|
||||
builder.Services.AddSingleton<IPublishedModelFactory, InMemoryModelFactory>();
|
||||
return builder;
|
||||
}
|
||||
|
||||
// This is what the community MB would replace, all of the above services are fine to be registered
|
||||
// even if the community MB is in place.
|
||||
builder.Services.AddSingleton<IPublishedModelFactory>(factory =>
|
||||
{
|
||||
ModelsBuilderSettings modelsBuilderSettings = factory.GetRequiredService<IOptions<ModelsBuilderSettings>>().Value;
|
||||
if (modelsBuilderSettings.ModelsMode == ModelsMode.InMemoryAuto)
|
||||
{
|
||||
return factory.GetRequiredService<InMemoryModelFactory>();
|
||||
}
|
||||
else
|
||||
{
|
||||
return factory.CreateDefaultPublishedModelFactory();
|
||||
}
|
||||
});
|
||||
|
||||
builder.Services.AddSingleton<IPublishedModelFactory>(factory => factory.CreateDefaultPublishedModelFactory());
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
"datatype": "choice",
|
||||
"choices": [
|
||||
{
|
||||
"displayName": ".NET 6.0",
|
||||
"description": "Target net6.0",
|
||||
"choice": "net6.0"
|
||||
"displayName": ".NET 7.0",
|
||||
"description": "Target net7.0",
|
||||
"choice": "net7.0"
|
||||
}
|
||||
],
|
||||
"defaultValue": "net6.0",
|
||||
"replaces": "net6.0"
|
||||
"defaultValue": "net7.0",
|
||||
"replaces": "net7.0"
|
||||
},
|
||||
"UmbracoVersion": {
|
||||
"displayName": "Umbraco version",
|
||||
|
||||
@@ -38,13 +38,13 @@
|
||||
"datatype": "choice",
|
||||
"choices": [
|
||||
{
|
||||
"displayName": ".NET 6.0",
|
||||
"description": "Target net6.0",
|
||||
"choice": "net6.0"
|
||||
"displayName": ".NET 7.0",
|
||||
"description": "Target net7.0",
|
||||
"choice": "net7.0"
|
||||
}
|
||||
],
|
||||
"defaultValue": "net6.0",
|
||||
"replaces": "net6.0"
|
||||
"defaultValue": "net7.0",
|
||||
"replaces": "net7.0"
|
||||
},
|
||||
"UmbracoVersion": {
|
||||
"displayName": "Umbraco version",
|
||||
|
||||
Reference in New Issue
Block a user