From 2d175ffb86ad6aa52165d5695c2317ca83bf6861 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Tue, 3 Mar 2020 14:15:30 +0100 Subject: [PATCH] - Moved ModelsBuilder constant into Core under constants - Move the registration of configs into the factory - Moved extension methods of ModelsMode into Umbraco.Core - Removed references to Umbraco.Configuration from Umbraco.Infrastructure and Umbraco.ModelsBuilder.Embedded --- .../ActiveDirectorySettings.cs | 4 ++-- src/Umbraco.Configuration/ConfigsFactory.cs | 16 ++++++++++++++++ .../ModelsBuilderConfig.cs | 6 +++--- .../Configuration}/ModelsModeExtensions.cs | 0 src/Umbraco.Core/Constants-ModelsBuilder.cs | 17 +++++++++++++++++ src/Umbraco.Core/Constants-Web.cs | 1 + .../CompositionExtensions/Configuration.cs | 8 -------- .../Umbraco.Infrastructure.csproj | 1 - .../BackOffice/DashboardReport.cs | 2 +- .../ModelsBuilderDashboardController.cs | 2 +- .../Building/Builder.cs | 6 ++++-- .../Compose/ModelsBuilderComponent.cs | 2 +- .../Compose/ModelsBuilderComposer.cs | 5 ----- .../Umbraco.ModelsBuilder.Embedded.csproj | 4 ---- src/Umbraco.Tests/ModelsBuilder/ConfigTests.cs | 3 ++- 15 files changed, 48 insertions(+), 29 deletions(-) rename src/{Umbraco.Configuration => Umbraco.Core/Configuration}/ModelsModeExtensions.cs (100%) create mode 100644 src/Umbraco.Core/Constants-ModelsBuilder.cs diff --git a/src/Umbraco.Configuration/ActiveDirectorySettings.cs b/src/Umbraco.Configuration/ActiveDirectorySettings.cs index 2485edad66..d85def7f33 100644 --- a/src/Umbraco.Configuration/ActiveDirectorySettings.cs +++ b/src/Umbraco.Configuration/ActiveDirectorySettings.cs @@ -3,9 +3,9 @@ using Umbraco.Core.Configuration; namespace Umbraco.Configuration { - public class ActiveDirectory : IActiveDirectorySettings + public class ActiveDirectorySettings : IActiveDirectorySettings { - public ActiveDirectory() + public ActiveDirectorySettings() { ActiveDirectoryDomain = ConfigurationManager.AppSettings["ActiveDirectoryDomain"]; } diff --git a/src/Umbraco.Configuration/ConfigsFactory.cs b/src/Umbraco.Configuration/ConfigsFactory.cs index 3979720f9b..3742b7d7fa 100644 --- a/src/Umbraco.Configuration/ConfigsFactory.cs +++ b/src/Umbraco.Configuration/ConfigsFactory.cs @@ -12,6 +12,12 @@ namespace Umbraco.Core.Configuration public ICoreDebug CoreDebug { get; } = new CoreDebug(); public IMachineKeyConfig MachineKeyConfig { get; } = new MachineKeyConfig(); + public IIndexCreatorSettings IndexCreatorSettings { get; } = new IndexCreatorSettings(); + public INuCacheSettings NuCacheSettings { get; } = new NuCacheSettings(); + public ITypeFinderSettings TypeFinderSettings { get; } = new TypeFinderSettings(); + public IRuntimeSettings RuntimeSettings { get; } = new RuntimeSettings(); + public IActiveDirectorySettings ActiveDirectorySettings { get; } = new ActiveDirectorySettings(); + public IExceptionFilterSettings ExceptionFilterSettings { get; } = new ExceptionFilterSettings(); public IUmbracoSettingsSection UmbracoSettings { get; } @@ -31,6 +37,16 @@ namespace Umbraco.Core.Configuration configs.Add(() => CoreDebug); configs.Add(() => MachineKeyConfig); configs.Add(() => new ConnectionStrings(ioHelper)); + configs.Add(() => new ModelsBuilderConfig(ioHelper)); + + + configs.Add(() => IndexCreatorSettings); + configs.Add(() => NuCacheSettings); + configs.Add(() => TypeFinderSettings); + configs.Add(() => RuntimeSettings); + configs.Add(() => ActiveDirectorySettings); + configs.Add(() => ExceptionFilterSettings); + configs.AddCoreConfigs(ioHelper); return configs; } diff --git a/src/Umbraco.Configuration/ModelsBuilderConfig.cs b/src/Umbraco.Configuration/ModelsBuilderConfig.cs index 9f24bf3d8b..151e9908a1 100644 --- a/src/Umbraco.Configuration/ModelsBuilderConfig.cs +++ b/src/Umbraco.Configuration/ModelsBuilderConfig.cs @@ -21,7 +21,7 @@ namespace Umbraco.Configuration private object _flagOutOfDateModelsLock; private bool _flagOutOfDateModelsConfigured; private bool _flagOutOfDateModels; - public const string DefaultModelsNamespace = "Umbraco.Web.PublishedModels"; + public string DefaultModelsDirectory => _ioHelper.MapPath("~/App_Data/Models"); @@ -37,7 +37,7 @@ namespace Umbraco.Configuration Enable = ConfigurationManager.AppSettings[Prefix + "Enable"] == "true"; // ensure defaults are initialized for tests - ModelsNamespace = DefaultModelsNamespace; + ModelsNamespace = Constants.ModelsBuilder.DefaultModelsNamespace; ModelsDirectory = DefaultModelsDirectory; DebugLevel = 0; @@ -95,7 +95,7 @@ namespace Umbraco.Configuration Enable = enable; _modelsMode = modelsMode; - ModelsNamespace = string.IsNullOrWhiteSpace(modelsNamespace) ? DefaultModelsNamespace : modelsNamespace; + ModelsNamespace = string.IsNullOrWhiteSpace(modelsNamespace) ? Constants.ModelsBuilder.DefaultModelsNamespace : modelsNamespace; EnableFactory = enableFactory; _flagOutOfDateModels = flagOutOfDateModels; ModelsDirectory = string.IsNullOrWhiteSpace(modelsDirectory) ? DefaultModelsDirectory : modelsDirectory; diff --git a/src/Umbraco.Configuration/ModelsModeExtensions.cs b/src/Umbraco.Core/Configuration/ModelsModeExtensions.cs similarity index 100% rename from src/Umbraco.Configuration/ModelsModeExtensions.cs rename to src/Umbraco.Core/Configuration/ModelsModeExtensions.cs diff --git a/src/Umbraco.Core/Constants-ModelsBuilder.cs b/src/Umbraco.Core/Constants-ModelsBuilder.cs new file mode 100644 index 0000000000..28e70ed383 --- /dev/null +++ b/src/Umbraco.Core/Constants-ModelsBuilder.cs @@ -0,0 +1,17 @@ +namespace Umbraco.Core +{ + /// + /// Defines constants. + /// + public static partial class Constants + { + /// + /// Defines constants for ModelsBuilder. + /// + public static class ModelsBuilder + { + + public const string DefaultModelsNamespace = "Umbraco.Web.PublishedModels"; + } + } +} diff --git a/src/Umbraco.Core/Constants-Web.cs b/src/Umbraco.Core/Constants-Web.cs index a1e138116d..5b64319fb0 100644 --- a/src/Umbraco.Core/Constants-Web.cs +++ b/src/Umbraco.Core/Constants-Web.cs @@ -34,6 +34,7 @@ /// The header name that angular uses to pass in the token to validate the cookie /// public const string AngularHeadername = "X-UMB-XSRF-TOKEN"; + } } } diff --git a/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Configuration.cs b/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Configuration.cs index d0b8714aa8..5c931a225b 100644 --- a/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Configuration.cs +++ b/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Configuration.cs @@ -18,14 +18,6 @@ namespace Umbraco.Core.Composing.CompositionExtensions composition.RegisterUnique(factory => factory.GetInstance().RequestHandler); composition.RegisterUnique(factory => factory.GetInstance().Security); - composition.RegisterUnique(); - composition.RegisterUnique(); - composition.RegisterUnique(); - composition.RegisterUnique(); - composition.RegisterUnique(); - composition.RegisterUnique(); - composition.RegisterUnique(); - return composition; } } diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj index 44d520c69d..1db36a9c09 100644 --- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj +++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj @@ -62,7 +62,6 @@ - diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs index 7ea9c263de..6e22313474 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs @@ -1,6 +1,6 @@ using System.Text; -using Umbraco.Core.Configuration; using Umbraco.Configuration; +using Umbraco.Core.Configuration; namespace Umbraco.ModelsBuilder.Embedded.BackOffice { diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs index 5fb0639ac5..17b694de56 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs @@ -3,8 +3,8 @@ using System.Net; using System.Net.Http; using System.Runtime.Serialization; using System.Web.Hosting; -using Umbraco.Core.Configuration; using Umbraco.Configuration; +using Umbraco.Core.Configuration; using Umbraco.Core.Exceptions; using Umbraco.ModelsBuilder.Embedded.Building; using Umbraco.Web.Editors; diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs b/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs index 7423a3a3ad..f64e5ed1ce 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; +using Umbraco.Core; using Umbraco.Core.Configuration; -using Umbraco.Configuration; namespace Umbraco.ModelsBuilder.Embedded.Building { @@ -19,6 +19,8 @@ namespace Umbraco.ModelsBuilder.Embedded.Building internal abstract class Builder { + + private readonly IList _typeModels; protected Dictionary ModelsMap { get; } = new Dictionary(); @@ -210,7 +212,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Building // use configured else fallback to default return string.IsNullOrWhiteSpace(Config.ModelsNamespace) - ? ModelsBuilderConfig.DefaultModelsNamespace + ? Constants.ModelsBuilder.DefaultModelsNamespace : Config.ModelsNamespace; } diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs index 0c25a29d70..769cca7317 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs @@ -4,8 +4,8 @@ using System.Reflection; using System.Web; using System.Web.Mvc; using System.Web.Routing; -using Umbraco.Core.Configuration; using Umbraco.Configuration; +using Umbraco.Core.Configuration; using Umbraco.Core.Composing; using Umbraco.Core.IO; using Umbraco.Core.Services; diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs index 008cdb2250..2914fe1b12 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs @@ -1,7 +1,6 @@ using System.Linq; using System.Reflection; using Umbraco.Core.Configuration; -using Umbraco.Configuration; using Umbraco.Core; using Umbraco.Core.Logging; using Umbraco.Core.Composing; @@ -20,16 +19,12 @@ namespace Umbraco.ModelsBuilder.Embedded.Compose { var isLegacyModelsBuilderInstalled = IsLegacyModelsBuilderInstalled(); - - composition.Configs.Add(() => new ModelsBuilderConfig(composition.IOHelper)); - if (isLegacyModelsBuilderInstalled) { ComposeForLegacyModelsBuilder(composition); return; } - composition.Components().Append(); composition.Register(Lifetime.Singleton); composition.RegisterUnique(); diff --git a/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj b/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj index 5f072be561..23391c5b0c 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj +++ b/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj @@ -97,10 +97,6 @@ - - {FBE7C065-DAC0-4025-A78B-63B24D3AB00B} - Umbraco.Configuration - {29aa69d9-b597-4395-8d42-43b1263c240a} Umbraco.Core diff --git a/src/Umbraco.Tests/ModelsBuilder/ConfigTests.cs b/src/Umbraco.Tests/ModelsBuilder/ConfigTests.cs index 8d6c0b4c6a..4a9e8704ec 100644 --- a/src/Umbraco.Tests/ModelsBuilder/ConfigTests.cs +++ b/src/Umbraco.Tests/ModelsBuilder/ConfigTests.cs @@ -1,6 +1,7 @@ using System.Configuration; using NUnit.Framework; using Umbraco.Configuration; +using Umbraco.Core; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.ModelsBuilder @@ -26,7 +27,7 @@ namespace Umbraco.Tests.ModelsBuilder public void DefaultModelsNamespace() { var config = new ModelsBuilderConfig(TestHelper.IOHelper); - Assert.AreEqual(ModelsBuilderConfig.DefaultModelsNamespace, config.ModelsNamespace); + Assert.AreEqual(Constants.ModelsBuilder.DefaultModelsNamespace, config.ModelsNamespace); } [TestCase("c:/path/to/root", "~/dir/models", false, "c:\\path\\to\\root\\dir\\models")]