diff --git a/src/Umbraco.Core/Builder/UmbracoBuilder.cs b/src/Umbraco.Core/Builder/UmbracoBuilder.cs index 28b44e15eb..9514b0de59 100644 --- a/src/Umbraco.Core/Builder/UmbracoBuilder.cs +++ b/src/Umbraco.Core/Builder/UmbracoBuilder.cs @@ -11,6 +11,11 @@ namespace Umbraco.Web.Common.Builder { public class UmbracoBuilder : IUmbracoBuilder { + public IServiceCollection Services { get; } + public IConfiguration Config { get; } + public TypeLoader TypeLoader { get; } + public ILoggerFactory BuilderLoggerFactory { get; } + private readonly Dictionary _builders = new Dictionary(); public UmbracoBuilder(IServiceCollection services, IConfiguration config, TypeLoader typeLoader) @@ -25,13 +30,6 @@ namespace Umbraco.Web.Common.Builder TypeLoader = typeLoader; } - public IServiceCollection Services { get; } - public IConfiguration Config { get; } - - - public TypeLoader TypeLoader { get; } - public ILoggerFactory BuilderLoggerFactory { get; } - /// /// Gets a collection builder (and registers the collection). /// @@ -50,8 +48,6 @@ namespace Umbraco.Web.Common.Builder return builder; } - - public void Build() { foreach (var builder in _builders.Values) diff --git a/src/Umbraco.Core/Services/IRuntimeState.cs b/src/Umbraco.Core/Services/IRuntimeState.cs index fd817f1986..ef826014be 100644 --- a/src/Umbraco.Core/Services/IRuntimeState.cs +++ b/src/Umbraco.Core/Services/IRuntimeState.cs @@ -55,5 +55,7 @@ namespace Umbraco.Core /// void DetermineRuntimeLevel(); + void Configure(RuntimeLevel level, RuntimeLevelReason reason); + } } diff --git a/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs b/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs index 65933399a3..7b98bd150e 100644 --- a/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs +++ b/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs @@ -24,7 +24,7 @@ namespace Umbraco.Core.Persistence /// // TODO: these comments are not true anymore // TODO: this class needs not be disposable! - internal class UmbracoDatabaseFactory : DisposableObjectSlim, IUmbracoDatabaseFactory + public class UmbracoDatabaseFactory : DisposableObjectSlim, IUmbracoDatabaseFactory { private readonly IDbProviderFactoryCreator _dbProviderFactoryCreator; private readonly GlobalSettings _globalSettings; diff --git a/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs b/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs index dfcbaa4c6b..cb02a90ebe 100644 --- a/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs +++ b/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs @@ -1,11 +1,12 @@ using System; using Microsoft.Extensions.Logging; +using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.Hosting; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; -namespace Umbraco.Core.Runtime +namespace Umbraco.Infrastructure.Runtime { public class CoreRuntime : IRuntime { @@ -60,7 +61,7 @@ namespace Umbraco.Core.Runtime throw new InvalidOperationException($"An instance of {typeof(IApplicationShutdownRegistry)} could not be resolved from the container, ensure that one if registered in your runtime before calling {nameof(IRuntime)}.{nameof(Start)}"); // acquire the main domain - if this fails then anything that should be registered with MainDom will not operate - AcquireMainDom(_mainDom, _applicationShutdownRegistry); + AcquireMainDom(); // create & initialize the components _components.Initialize(); @@ -68,16 +69,16 @@ namespace Umbraco.Core.Runtime public void Terminate() { - _components?.Terminate(); + _components.Terminate(); } - private void AcquireMainDom(IMainDom mainDom, IApplicationShutdownRegistry applicationShutdownRegistry) + private void AcquireMainDom() { using (var timer = _profilingLogger.DebugDuration("Acquiring MainDom.", "Acquired.")) { try { - mainDom.Acquire(applicationShutdownRegistry); + _mainDom.Acquire(_applicationShutdownRegistry); } catch { @@ -105,10 +106,7 @@ namespace Umbraco.Core.Runtime } catch { - - // BOO a cast, yay no CoreRuntimeBootstrapper - ((RuntimeState)State).Level = RuntimeLevel.BootFailed; - ((RuntimeState)State).Reason = RuntimeLevelReason.BootFailedOnException; + State.Configure(RuntimeLevel.BootFailed, RuntimeLevelReason.BootFailedOnException); timer?.Fail(); throw; } diff --git a/src/Umbraco.Infrastructure/Runtime/RuntimeEssentialsEventArgs.cs b/src/Umbraco.Infrastructure/Runtime/RuntimeEssentialsEventArgs.cs deleted file mode 100644 index dc8ed627f8..0000000000 --- a/src/Umbraco.Infrastructure/Runtime/RuntimeEssentialsEventArgs.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using Umbraco.Core.Builder; -using Umbraco.Core.Persistence; - -namespace Umbraco.Core.Runtime -{ - public class RuntimeEssentialsEventArgs : EventArgs - { - public RuntimeEssentialsEventArgs(IUmbracoBuilder builder, IUmbracoDatabaseFactory databaseFactory) - { - Builder = builder; - DatabaseFactory = databaseFactory; - } - - public IUmbracoBuilder Builder { get; } - - public IUmbracoDatabaseFactory DatabaseFactory { get; } - } -} diff --git a/src/Umbraco.Infrastructure/RuntimeState.cs b/src/Umbraco.Infrastructure/RuntimeState.cs index ed7ff9adb8..505cf045c3 100644 --- a/src/Umbraco.Infrastructure/RuntimeState.cs +++ b/src/Umbraco.Infrastructure/RuntimeState.cs @@ -161,6 +161,12 @@ namespace Umbraco.Core Reason = RuntimeLevelReason.UpgradeMigrations; } + public void Configure(RuntimeLevel level, RuntimeLevelReason reason) + { + Level = level; + Reason = reason; + } + private bool EnsureUmbracoUpgradeState(IUmbracoDatabaseFactory databaseFactory, ILogger logger) { var upgrader = new Upgrader(new UmbracoPlan(_umbracoVersion)); diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj index 90937eda01..b9368da89b 100644 --- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj +++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj @@ -92,9 +92,6 @@ <_Parameter1>DynamicProxyGenAssembly2 - - <_Parameter1>Umbraco.Web.Common - diff --git a/src/Umbraco.Tests.Integration/RuntimeTests.cs b/src/Umbraco.Tests.Integration/RuntimeTests.cs index b8ecb8e793..89006ef245 100644 --- a/src/Umbraco.Tests.Integration/RuntimeTests.cs +++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs @@ -14,6 +14,7 @@ using Umbraco.Core.Builder; using Umbraco.Core.Cache; using Umbraco.Core.Composing; using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Runtime; @@ -61,9 +62,15 @@ namespace Umbraco.Tests.Integration services.AddRequiredNetCoreServices(testHelper, webHostEnvironment); // Add it! - var typeLoader = services.AddTypeLoader(GetType().Assembly, webHostEnvironment, testHelper.GetHostingEnvironment(), - testHelper.ConsoleLoggerFactory, AppCaches.NoCache, hostContext.Configuration); - + var typeLoader = services.AddTypeLoader( + GetType().Assembly, + webHostEnvironment, + testHelper.GetHostingEnvironment(), + testHelper.ConsoleLoggerFactory, + AppCaches.NoCache, + hostContext.Configuration, + testHelper.Profiler); + var builder = new UmbracoBuilder(services, hostContext.Configuration, typeLoader, testHelper.ConsoleLoggerFactory); builder.Services.AddUnique(AppCaches.NoCache); builder.AddConfiguration(); @@ -105,9 +112,14 @@ namespace Umbraco.Tests.Integration // Add it! - var typeLoader = services.AddTypeLoader(GetType().Assembly, - webHostEnvironment, testHelper.GetHostingEnvironment(), testHelper.ConsoleLoggerFactory, AppCaches.NoCache, - hostContext.Configuration); + var typeLoader = services.AddTypeLoader( + GetType().Assembly, + webHostEnvironment, + testHelper.GetHostingEnvironment(), + testHelper.ConsoleLoggerFactory, + AppCaches.NoCache, + hostContext.Configuration, + testHelper.Profiler); var builder = new UmbracoBuilder(services, hostContext.Configuration, typeLoader, testHelper.ConsoleLoggerFactory); builder.Services.AddUnique(AppCaches.NoCache); diff --git a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs index 07637169e2..897bc38c2f 100644 --- a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs @@ -2,8 +2,8 @@ using Umbraco.Core; using Umbraco.Core.Builder; using Umbraco.Core.Cache; +using Umbraco.Core.Logging; using Umbraco.Core.Runtime; -using Umbraco.Extensions; using Umbraco.Tests.Integration.Implementations; using Umbraco.Web.Common.Builder; @@ -21,7 +21,6 @@ namespace Umbraco.Tests.Integration.TestServerTest builder.AddUmbracoCore(); builder.Services.AddUnique(AppCaches.NoCache); - builder.Services.AddUnique(Mock.Of()); builder.Services.AddUnique(testHelper.MainDom); diff --git a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs index 64c2292252..f6ece372ea 100644 --- a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs +++ b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs @@ -131,7 +131,7 @@ namespace Umbraco.Tests.Integration.TestServerTest public override void ConfigureServices(IServiceCollection services) { var typeLoader = services.AddTypeLoader(GetType().Assembly, TestHelper.GetWebHostEnvironment(), TestHelper.GetHostingEnvironment(), - TestHelper.ConsoleLoggerFactory, AppCaches.NoCache, Configuration); + TestHelper.ConsoleLoggerFactory, AppCaches.NoCache, Configuration, TestHelper.Profiler); var builder = new UmbracoBuilder(services, Configuration, typeLoader); diff --git a/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs b/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs index 2ed2a42cbe..c556d4d29d 100644 --- a/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs +++ b/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs @@ -57,8 +57,6 @@ namespace Umbraco.Tests.Integration.Testing builder.Services.AddUnique(); builder.Services.AddUnique(); - - } /// diff --git a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs index c92fbb7341..db71603089 100644 --- a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs +++ b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs @@ -174,7 +174,14 @@ namespace Umbraco.Tests.Integration.Testing // Add it! - var typeLoader = services.AddTypeLoader(GetType().Assembly, webHostEnvironment, TestHelper.GetHostingEnvironment(), TestHelper.ConsoleLoggerFactory, AppCaches.NoCache, Configuration); + var typeLoader = services.AddTypeLoader( + GetType().Assembly, + webHostEnvironment, + TestHelper.GetHostingEnvironment(), + TestHelper.ConsoleLoggerFactory, + AppCaches.NoCache, + Configuration, + TestHelper.Profiler); var builder = new UmbracoBuilder(services, Configuration, typeLoader, TestHelper.ConsoleLoggerFactory); @@ -184,8 +191,6 @@ namespace Umbraco.Tests.Integration.Testing .AddUmbracoCore(); builder.Services.AddUnique(GetAppCaches()); - - builder.Services.AddUnique(Mock.Of()); builder.Services.AddUnique(TestHelper.MainDom); diff --git a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs index ded65e4228..511d20588f 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs @@ -250,7 +250,6 @@ namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Persistence.Repositor } [Test] - [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, Boot = true)] public void Get_Paged_Child_Entities_By_Parent_Id() { CreateTestDataForPagingTests(out var createdContent, out var createdMembers, out _); diff --git a/src/Umbraco.Web.BackOffice/Extensions/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/Extensions/UmbracoBuilderExtensions.cs index dbbb14dc96..76fd4a46f7 100644 --- a/src/Umbraco.Web.BackOffice/Extensions/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.BackOffice/Extensions/UmbracoBuilderExtensions.cs @@ -30,10 +30,6 @@ namespace Umbraco.Extensions public static IUmbracoBuilder AddBackOffice(this IUmbracoBuilder builder) { builder.Services.AddAntiforgery(); - - // TODO: We had this check in v8 where we don't enable these unless we can run... - //if (runtimeState.Level != RuntimeLevel.Upgrade && runtimeState.Level != RuntimeLevel.Run) return app; - builder.Services.AddSingleton(); builder.Services .AddAuthentication(Core.Constants.Security.BackOfficeAuthenticationType) diff --git a/src/Umbraco.Web.Common/AspNetCore/OptionsMonitorAdapter.cs b/src/Umbraco.Web.Common/AspNetCore/OptionsMonitorAdapter.cs index d8b50fedf1..9162c85cdd 100644 --- a/src/Umbraco.Web.Common/AspNetCore/OptionsMonitorAdapter.cs +++ b/src/Umbraco.Web.Common/AspNetCore/OptionsMonitorAdapter.cs @@ -4,9 +4,12 @@ using Microsoft.Extensions.Options; namespace Umbraco.Web.Common.AspNetCore { /// - /// OptionsMonitor but without the monitoring + /// HACK: OptionsMonitor but without the monitoring, hopefully temporary. + /// This is just used so we can get an AspNetCoreHostingEnvironment to + /// build a TypeLoader long before ServiceProvider is built. /// - public class OptionsMonitorAdapter : IOptionsMonitor where T : class, new() + [Obsolete("Please let the container wire up a real OptionsMonitor for you")] + internal class OptionsMonitorAdapter : IOptionsMonitor where T : class, new() { private readonly T _inner; @@ -26,6 +29,5 @@ namespace Umbraco.Web.Common.AspNetCore } public T CurrentValue => _inner; - } } diff --git a/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs index a123664f60..4c464ad989 100644 --- a/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs @@ -34,10 +34,12 @@ using Umbraco.Core.Runtime; using Umbraco.Extensions; using Umbraco.Infrastructure.HostedServices; using Umbraco.Infrastructure.HostedServices.ServerRegistration; +using Umbraco.Infrastructure.Runtime; using Umbraco.Web.Common.ApplicationModels; using Umbraco.Web.Common.AspNetCore; using Umbraco.Web.Common.Filters; using Umbraco.Web.Common.ModelBinders; +using Umbraco.Web.Common.Profiler; using IHostingEnvironment = Umbraco.Core.Hosting.IHostingEnvironment; namespace Umbraco.Web.Common.Builder @@ -55,9 +57,8 @@ namespace Umbraco.Web.Common.Builder var loggingConfig = new LoggingConfiguration(Path.Combine(webHostEnvironment.ContentRootPath, "umbraco", "logs")); - var hostingSettings = config.GetSection(Core.Constants.Configuration.ConfigHosting).Get() ?? new HostingSettings(); - var hostingEnvironment = new AspNetCoreHostingEnvironment(new OptionsMonitorAdapter(hostingSettings), webHostEnvironment); - services.AddLogger(hostingEnvironment, loggingConfig, config); + var tempHostingEnvironment = GetTemporaryHostingEnvironment(webHostEnvironment, config); + services.AddLogger(tempHostingEnvironment, loggingConfig, config); IHttpContextAccessor httpContextAccessor = new HttpContextAccessor(); services.AddSingleton(httpContextAccessor); @@ -66,8 +67,11 @@ namespace Umbraco.Web.Common.Builder var appCaches = AppCaches.Create(requestCache); services.AddUnique(appCaches); + var profiler = GetWebProfiler(config); + services.AddUnique(profiler); + var loggerFactory = LoggerFactory.Create(cfg => cfg.AddSerilog(Log.Logger, false)); - var typeLoader = services.AddTypeLoader(Assembly.GetEntryAssembly(), webHostEnvironment, hostingEnvironment, loggerFactory, appCaches, config); + var typeLoader = services.AddTypeLoader(Assembly.GetEntryAssembly(), webHostEnvironment, tempHostingEnvironment, loggerFactory, appCaches, config, profiler); return new UmbracoBuilder(services, config, typeLoader, loggerFactory); } @@ -79,15 +83,6 @@ namespace Umbraco.Web.Common.Builder builder.Services.AddLazySupport(); - // Add service session - // This can be overwritten by the user by adding their own call to AddSession - // since the last call of AddSession take precedence - builder.Services.AddSession(options => - { - options.Cookie.Name = "UMB_SESSION"; - options.Cookie.HttpOnly = true; - }); - // Add supported databases builder.AddUmbracoSqlCeSupport(); builder.AddUmbracoSqlServerSupport(); @@ -114,8 +109,6 @@ namespace Umbraco.Web.Common.Builder : new MainDomSemaphoreLock(loggerFactory.CreateLogger(), hostingEnvironment); }); - var profiler = UmbracoCoreServiceCollectionExtensions.GetWebProfiler(builder.Config); - builder.Services.AddUnique(profiler); builder.Services.AddUnique(); builder.Services.AddUnique(factory => factory.GetRequiredService().RuntimeCache); builder.Services.AddUnique(factory => factory.GetRequiredService().RequestCache); @@ -236,6 +229,15 @@ namespace Umbraco.Web.Common.Builder public static IUmbracoBuilder AddWebComponents(this IUmbracoBuilder builder) { + // Add service session + // This can be overwritten by the user by adding their own call to AddSession + // since the last call of AddSession take precedence + builder.Services.AddSession(options => + { + options.Cookie.Name = "UMB_SESSION"; + options.Cookie.HttpOnly = true; + }); + builder.Services.ConfigureOptions(); builder.Services.TryAddEnumerable(ServiceDescriptor.Transient()); builder.Services.TryAddEnumerable(ServiceDescriptor.Transient()); @@ -314,5 +316,35 @@ namespace Umbraco.Web.Common.Builder return builder; } + + private static IProfiler GetWebProfiler(IConfiguration config) + { + var isDebug = config.GetValue($"{Core.Constants.Configuration.ConfigHosting}:Debug"); + // create and start asap to profile boot + if (!isDebug) + { + // should let it be null, that's how MiniProfiler is meant to work, + // but our own IProfiler expects an instance so let's get one + return new VoidProfiler(); + } + + var webProfiler = new WebProfiler(); + webProfiler.StartBoot(); + + return webProfiler; + } + + /// + /// HACK: returns an AspNetCoreHostingEnvironment that doesn't monitor changes to configuration.
+ /// We require this to create a TypeLoader during ConfigureServices.
+ /// Instances returned from this method shouldn't be registered in the service collection. + ///
+ private static IHostingEnvironment GetTemporaryHostingEnvironment(IWebHostEnvironment webHostEnvironment, IConfiguration config) + { + var hostingSettings = config.GetSection(Core.Constants.Configuration.ConfigHosting).Get() ?? new HostingSettings(); + var wrappedHostingSettings = new OptionsMonitorAdapter(hostingSettings); + + return new AspNetCoreHostingEnvironment(wrappedHostingSettings, webHostEnvironment); + } } } diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index b41b4d515d..49500a7eda 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -65,31 +65,19 @@ namespace Umbraco.Extensions return services; } - internal static IProfiler GetWebProfiler(IConfiguration config) + internal static ITypeFinder AddTypeFinder( + this IServiceCollection services, + ILoggerFactory loggerFactory, + IWebHostEnvironment webHostEnvironment, + Assembly entryAssembly, + IConfiguration config, + IProfilingLogger profilingLogger) { - var isDebug = config.GetValue($"{Constants.Configuration.ConfigHosting}:Debug"); - // create and start asap to profile boot - if (!isDebug) - { - // should let it be null, that's how MiniProfiler is meant to work, - // but our own IProfiler expects an instance so let's get one - return new VoidProfiler(); - } - - var webProfiler = new WebProfiler(); - webProfiler.StartBoot(); - - return webProfiler; - } - - internal static ITypeFinder AddTypeFinder(this IServiceCollection services, ILoggerFactory loggerFactory, IWebHostEnvironment webHostEnvironment, Assembly entryAssembly, IConfiguration config) - { - var profiler = GetWebProfiler(config); var typeFinderSettings = config.GetSection(Core.Constants.Configuration.ConfigTypeFinder).Get() ?? new TypeFinderSettings(); var runtimeHashPaths = new RuntimeHashPaths().AddFolder(new DirectoryInfo(Path.Combine(webHostEnvironment.ContentRootPath, "bin"))); - var runtimeHash = new RuntimeHash(new ProfilingLogger(loggerFactory.CreateLogger(), profiler), runtimeHashPaths); + var runtimeHash = new RuntimeHash(profilingLogger, runtimeHashPaths); var typeFinder = new TypeFinder( loggerFactory.CreateLogger(), @@ -103,20 +91,20 @@ namespace Umbraco.Extensions return typeFinder; } - internal static TypeLoader AddTypeLoader( + public static TypeLoader AddTypeLoader( this IServiceCollection services, Assembly entryAssembly, IWebHostEnvironment webHostEnvironment, IHostingEnvironment hostingEnvironment, ILoggerFactory loggerFactory, AppCaches appCaches, - IConfiguration configuration) + IConfiguration configuration, + IProfiler profiler) { - var typeFinder = services.AddTypeFinder(loggerFactory, webHostEnvironment, entryAssembly, configuration); + var profilingLogger = new ProfilingLogger(loggerFactory.CreateLogger(), profiler); + var typeFinder = services.AddTypeFinder(loggerFactory, webHostEnvironment, entryAssembly, configuration, profilingLogger); - var profilingLogger = new ProfilingLogger(loggerFactory.CreateLogger(), GetWebProfiler(configuration)); - - var typeLoader = new TypeLoader( + var typeLoader = new TypeLoader( typeFinder, appCaches.RuntimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), @@ -128,15 +116,5 @@ namespace Umbraco.Extensions return typeLoader; } - - internal class AspNetCoreBootPermissionsChecker : IUmbracoBootPermissionChecker - { - public void ThrowIfNotPermissions() - { - // nothing to check - } - } - } - } diff --git a/src/Umbraco.Web.Common/Umbraco.Web.Common.csproj b/src/Umbraco.Web.Common/Umbraco.Web.Common.csproj index 5e4f4eeb98..a712a43a45 100644 --- a/src/Umbraco.Web.Common/Umbraco.Web.Common.csproj +++ b/src/Umbraco.Web.Common/Umbraco.Web.Common.csproj @@ -34,9 +34,6 @@ <_Parameter1>Umbraco.Tests.UnitTests - - <_Parameter1>Umbraco.Tests.Integration -