diff --git a/build/NuSpecs/tools/Web.config.install.xdt b/build/NuSpecs/tools/Web.config.install.xdt
index 2b79f95c70..f118fa8c3a 100644
--- a/build/NuSpecs/tools/Web.config.install.xdt
+++ b/build/NuSpecs/tools/Web.config.install.xdt
@@ -5,9 +5,9 @@
-
+
-
+
diff --git a/src/Umbraco.Abstractions/Properties/AssemblyInfo.cs b/src/Umbraco.Abstractions/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..6d5520f975
--- /dev/null
+++ b/src/Umbraco.Abstractions/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: ComVisible(false)]
+[assembly: Guid("DA322714-FB89-4943-92BD-BB122B82F66B")]
+
+// Umbraco Cms
+[assembly: InternalsVisibleTo("Umbraco.Web")]
+[assembly: InternalsVisibleTo("Umbraco.Web.UI")]
+[assembly: InternalsVisibleTo("Umbraco.Examine")]
+[assembly: InternalsVisibleTo("Umbraco.ModelsBuilder.Embedded")]
+
+[assembly: InternalsVisibleTo("Umbraco.Tests")]
+[assembly: InternalsVisibleTo("Umbraco.Tests.Benchmarks")]
+
+// Allow this to be mocked in our unit tests
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
+
+// Umbraco Deploy
+[assembly: InternalsVisibleTo("Umbraco.Deploy")]
+[assembly: InternalsVisibleTo("Umbraco.Deploy.UI")]
+[assembly: InternalsVisibleTo("Umbraco.Deploy.Cloud")]
+
+// Umbraco Forms
+[assembly: InternalsVisibleTo("Umbraco.Forms.Core")]
+[assembly: InternalsVisibleTo("Umbraco.Forms.Core.Providers")]
+[assembly: InternalsVisibleTo("Umbraco.Forms.Web")]
+
+// Umbraco Headless
+[assembly: InternalsVisibleTo("Umbraco.Cloud.Headless")]
+
+// code analysis
+// IDE1006 is broken, wants _value syntax for consts, etc - and it's even confusing ppl at MS, kill it
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "~_~")]
diff --git a/src/Umbraco.Abstractions/Umbraco.Abstractions.csproj b/src/Umbraco.Abstractions/Umbraco.Abstractions.csproj
index a5e5a94520..1b52570acf 100644
--- a/src/Umbraco.Abstractions/Umbraco.Abstractions.csproj
+++ b/src/Umbraco.Abstractions/Umbraco.Abstractions.csproj
@@ -4,6 +4,10 @@
netstandard2.0
7.3
Umbraco.Core
+ 9.0.0
+ 9.0.0
+ 9.0.0
+ Umbraco CMS
diff --git a/src/Umbraco.Core/Configuration/CaseInsensitiveEnumConfigConverter.cs b/src/Umbraco.Configuration/CaseInsensitiveEnumConfigConverter.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/CaseInsensitiveEnumConfigConverter.cs
rename to src/Umbraco.Configuration/CaseInsensitiveEnumConfigConverter.cs
diff --git a/src/Umbraco.Core/Configuration/CommaDelimitedConfigurationElement.cs b/src/Umbraco.Configuration/CommaDelimitedConfigurationElement.cs
similarity index 93%
rename from src/Umbraco.Core/Configuration/CommaDelimitedConfigurationElement.cs
rename to src/Umbraco.Configuration/CommaDelimitedConfigurationElement.cs
index 3ced2fab46..00dde5f206 100644
--- a/src/Umbraco.Core/Configuration/CommaDelimitedConfigurationElement.cs
+++ b/src/Umbraco.Configuration/CommaDelimitedConfigurationElement.cs
@@ -8,7 +8,7 @@ namespace Umbraco.Core.Configuration
///
/// Defines a configuration section that contains inner text that is comma delimited
///
- internal class CommaDelimitedConfigurationElement : InnerTextConfigurationElement, IEnumerable
+ public class CommaDelimitedConfigurationElement : InnerTextConfigurationElement, IEnumerable
{
public override CommaDelimitedStringCollection Value
{
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/DisabledHealthCheckElement.cs b/src/Umbraco.Configuration/HealthChecks/DisabledHealthCheckElement.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/DisabledHealthCheckElement.cs
rename to src/Umbraco.Configuration/HealthChecks/DisabledHealthCheckElement.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs b/src/Umbraco.Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs
rename to src/Umbraco.Configuration/HealthChecks/DisabledHealthChecksElementCollection.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs b/src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs
rename to src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationSettingsElement.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs b/src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs
rename to src/Umbraco.Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/HealthChecksSection.cs b/src/Umbraco.Configuration/HealthChecks/HealthChecksSection.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/HealthChecksSection.cs
rename to src/Umbraco.Configuration/HealthChecks/HealthChecksSection.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/IDisabledHealthCheck.cs b/src/Umbraco.Configuration/HealthChecks/IDisabledHealthCheck.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/IDisabledHealthCheck.cs
rename to src/Umbraco.Configuration/HealthChecks/IDisabledHealthCheck.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs b/src/Umbraco.Configuration/HealthChecks/IHealthCheckNotificationSettings.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs
rename to src/Umbraco.Configuration/HealthChecks/IHealthCheckNotificationSettings.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/IHealthChecks.cs b/src/Umbraco.Configuration/HealthChecks/IHealthChecks.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/IHealthChecks.cs
rename to src/Umbraco.Configuration/HealthChecks/IHealthChecks.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/INotificationMethod.cs b/src/Umbraco.Configuration/HealthChecks/INotificationMethod.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/INotificationMethod.cs
rename to src/Umbraco.Configuration/HealthChecks/INotificationMethod.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/INotificationMethodSettings.cs b/src/Umbraco.Configuration/HealthChecks/INotificationMethodSettings.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/INotificationMethodSettings.cs
rename to src/Umbraco.Configuration/HealthChecks/INotificationMethodSettings.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodElement.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodElement.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodElement.cs
rename to src/Umbraco.Configuration/HealthChecks/NotificationMethodElement.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodSettingsElement.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElement.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodSettingsElement.cs
rename to src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElement.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs
rename to src/Umbraco.Configuration/HealthChecks/NotificationMethodSettingsElementCollection.cs
diff --git a/src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodsElementCollection.cs b/src/Umbraco.Configuration/HealthChecks/NotificationMethodsElementCollection.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/HealthChecks/NotificationMethodsElementCollection.cs
rename to src/Umbraco.Configuration/HealthChecks/NotificationMethodsElementCollection.cs
diff --git a/src/Umbraco.Core/Configuration/OptionalCommaDelimitedConfigurationElement.cs b/src/Umbraco.Configuration/OptionalCommaDelimitedConfigurationElement.cs
similarity index 92%
rename from src/Umbraco.Core/Configuration/OptionalCommaDelimitedConfigurationElement.cs
rename to src/Umbraco.Configuration/OptionalCommaDelimitedConfigurationElement.cs
index 610067d2db..b6771f98b0 100644
--- a/src/Umbraco.Core/Configuration/OptionalCommaDelimitedConfigurationElement.cs
+++ b/src/Umbraco.Configuration/OptionalCommaDelimitedConfigurationElement.cs
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration
///
/// Used for specifying default values for comma delimited config
///
- internal class OptionalCommaDelimitedConfigurationElement : CommaDelimitedConfigurationElement
+ public class OptionalCommaDelimitedConfigurationElement : CommaDelimitedConfigurationElement
{
private readonly CommaDelimitedConfigurationElement _wrapped;
private readonly string[] _defaultValue;
diff --git a/src/Umbraco.Core/Configuration/OptionalInnerTextConfigurationElement.cs b/src/Umbraco.Configuration/OptionalInnerTextConfigurationElement.cs
similarity index 88%
rename from src/Umbraco.Core/Configuration/OptionalInnerTextConfigurationElement.cs
rename to src/Umbraco.Configuration/OptionalInnerTextConfigurationElement.cs
index b15e33019d..08dffd5975 100644
--- a/src/Umbraco.Core/Configuration/OptionalInnerTextConfigurationElement.cs
+++ b/src/Umbraco.Configuration/OptionalInnerTextConfigurationElement.cs
@@ -4,7 +4,7 @@
/// This is used to supply optional/default values when using InnerTextConfigurationElement
///
///
- internal class OptionalInnerTextConfigurationElement : InnerTextConfigurationElement
+ public class OptionalInnerTextConfigurationElement : InnerTextConfigurationElement
{
private readonly InnerTextConfigurationElement _wrapped;
private readonly T _defaultValue;
diff --git a/src/Umbraco.Configuration/Properties/AssemblyInfo.cs b/src/Umbraco.Configuration/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..d10dd929da
--- /dev/null
+++ b/src/Umbraco.Configuration/Properties/AssemblyInfo.cs
@@ -0,0 +1,10 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Umbraco Cms
+[assembly: InternalsVisibleTo("Umbraco.Tests")]
+[assembly: InternalsVisibleTo("Umbraco.Tests.Benchmarks")]
+
+// Allow this to be mocked in our unit tests
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
diff --git a/src/Umbraco.Core/Configuration/RawXmlConfigurationElement.cs b/src/Umbraco.Configuration/RawXmlConfigurationElement.cs
similarity index 90%
rename from src/Umbraco.Core/Configuration/RawXmlConfigurationElement.cs
rename to src/Umbraco.Configuration/RawXmlConfigurationElement.cs
index 5bc6ad3d32..d7f0ed0332 100644
--- a/src/Umbraco.Core/Configuration/RawXmlConfigurationElement.cs
+++ b/src/Umbraco.Configuration/RawXmlConfigurationElement.cs
@@ -8,7 +8,7 @@ namespace Umbraco.Core.Configuration
/// A configuration section that simply exposes the entire raw xml of the section itself which inheritors can use
/// to do with as they please.
///
- internal abstract class RawXmlConfigurationElement : ConfigurationElement
+ public abstract class RawXmlConfigurationElement : ConfigurationElement
{
protected RawXmlConfigurationElement()
{
diff --git a/src/Umbraco.Configuration/Umbraco.Configuration.csproj b/src/Umbraco.Configuration/Umbraco.Configuration.csproj
index 15c6ac263f..04f8eb14d3 100644
--- a/src/Umbraco.Configuration/Umbraco.Configuration.csproj
+++ b/src/Umbraco.Configuration/Umbraco.Configuration.csproj
@@ -18,6 +18,8 @@
<_UnmanagedRegistrationCache Remove="obj\Umbraco.Configuration.csproj.UnmanagedRegistration.cache" />
+ <_UnmanagedRegistrationCache Remove="obj\Umbraco.Configuration.csproj.UnmanagedRegistration.cache" />
+ <_UnmanagedRegistrationCache Remove="obj\Umbraco.Configuration.csproj.UnmanagedRegistration.cache" />
@@ -28,4 +30,10 @@
+
+
+ C:\Users\Bjarke\AppData\Local\Temp\Temporary ASP.NET Files\root\408beac9\de517473\assembly\dl3\77bf709f\48ac59e4_3595d501\Umbraco.Core.dll
+
+
+
diff --git a/src/Umbraco.Core/Configuration/UmbracoConfigurationSection.cs b/src/Umbraco.Configuration/UmbracoConfigurationSection.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/UmbracoConfigurationSection.cs
rename to src/Umbraco.Configuration/UmbracoConfigurationSection.cs
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/BackOfficeElement.cs b/src/Umbraco.Configuration/UmbracoSettings/BackOfficeElement.cs
similarity index 76%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/BackOfficeElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/BackOfficeElement.cs
index 79bff51d05..1a939d4c9e 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/BackOfficeElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/BackOfficeElement.cs
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class BackOfficeElement : UmbracoConfigurationElement, IBackOfficeSection
+ public class BackOfficeElement : UmbracoConfigurationElement, IBackOfficeSection
{
[ConfigurationProperty("tours")]
internal TourConfigElement Tours => (TourConfigElement)this["tours"];
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/CharCollection.cs b/src/Umbraco.Configuration/UmbracoSettings/CharCollection.cs
similarity index 90%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/CharCollection.cs
rename to src/Umbraco.Configuration/UmbracoSettings/CharCollection.cs
index 7b62fcc123..3926e700c1 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/CharCollection.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/CharCollection.cs
@@ -3,7 +3,7 @@ using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class CharCollection : ConfigurationElementCollection, IEnumerable
+ public class CharCollection : ConfigurationElementCollection, IEnumerable
{
internal void Add(CharElement c)
{
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/CharElement.cs b/src/Umbraco.Configuration/UmbracoSettings/CharElement.cs
similarity index 87%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/CharElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/CharElement.cs
index 1ff63ac017..2971228d9e 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/CharElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/CharElement.cs
@@ -1,6 +1,6 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class CharElement : InnerTextConfigurationElement, IChar
+ public class CharElement : InnerTextConfigurationElement, IChar
{
private string _char;
private string _replacement;
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs b/src/Umbraco.Configuration/UmbracoSettings/ContentElement.cs
similarity index 98%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ContentElement.cs
index 77ad7df0dc..1e1ecb4d0c 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/ContentElement.cs
@@ -4,7 +4,7 @@ using Umbraco.Core.Macros;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class ContentElement : UmbracoConfigurationElement, IContentSection
+ public class ContentElement : UmbracoConfigurationElement, IContentSection
{
private const string DefaultPreviewBadge = @"";
@@ -33,7 +33,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
[ConfigurationProperty("allowedUploadFiles")]
internal CommaDelimitedConfigurationElement AllowedUploadFiles => GetOptionalDelimitedElement("allowedUploadFiles", new string[0]);
-
+
[ConfigurationProperty("showDeprecatedPropertyEditors")]
internal InnerTextConfigurationElement ShowDeprecatedPropertyEditors => GetOptionalTextElement("showDeprecatedPropertyEditors", false);
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentError404Collection.cs b/src/Umbraco.Configuration/UmbracoSettings/ContentError404Collection.cs
similarity index 89%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ContentError404Collection.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ContentError404Collection.cs
index bdbcb27b4c..da146b14ec 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentError404Collection.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/ContentError404Collection.cs
@@ -3,7 +3,7 @@ using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class ContentError404Collection : ConfigurationElementCollection, IEnumerable
+ public class ContentError404Collection : ConfigurationElementCollection, IEnumerable
{
internal void Add(ContentErrorPageElement element)
{
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentErrorPageElement.cs b/src/Umbraco.Configuration/UmbracoSettings/ContentErrorPageElement.cs
similarity index 92%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ContentErrorPageElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ContentErrorPageElement.cs
index 96cea71a8e..8f5a5b3259 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentErrorPageElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/ContentErrorPageElement.cs
@@ -3,7 +3,7 @@ using System.Xml.Linq;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class ContentErrorPageElement : InnerTextConfigurationElement, IContentErrorPage
+ public class ContentErrorPageElement : InnerTextConfigurationElement, IContentErrorPage
{
public ContentErrorPageElement(XElement rawXml)
: base(rawXml)
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentErrorsElement.cs b/src/Umbraco.Configuration/UmbracoSettings/ContentErrorsElement.cs
similarity index 95%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ContentErrorsElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ContentErrorsElement.cs
index 5b5b54380d..a393267b9d 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentErrorsElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/ContentErrorsElement.cs
@@ -3,7 +3,7 @@ using System.Linq;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class ContentErrorsElement : RawXmlConfigurationElement
+ public class ContentErrorsElement : RawXmlConfigurationElement
{
public IEnumerable Error404Collection
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentSectionExtensions.cs b/src/Umbraco.Configuration/UmbracoSettings/ContentSectionExtensions.cs
similarity index 100%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ContentSectionExtensions.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ContentSectionExtensions.cs
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ImagingAutoFillPropertiesCollection.cs b/src/Umbraco.Configuration/UmbracoSettings/ImagingAutoFillPropertiesCollection.cs
similarity index 88%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ImagingAutoFillPropertiesCollection.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ImagingAutoFillPropertiesCollection.cs
index 0bac9721a3..69680251af 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/ImagingAutoFillPropertiesCollection.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/ImagingAutoFillPropertiesCollection.cs
@@ -3,7 +3,7 @@ using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class ImagingAutoFillPropertiesCollection : ConfigurationElementCollection, IEnumerable
+ public class ImagingAutoFillPropertiesCollection : ConfigurationElementCollection, IEnumerable
{
protected override ConfigurationElement CreateNewElement()
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ImagingAutoFillUploadFieldElement.cs b/src/Umbraco.Configuration/UmbracoSettings/ImagingAutoFillUploadFieldElement.cs
similarity index 93%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/ImagingAutoFillUploadFieldElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/ImagingAutoFillUploadFieldElement.cs
index 9b4c45b5c6..ec3dc43caf 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/ImagingAutoFillUploadFieldElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/ImagingAutoFillUploadFieldElement.cs
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class ImagingAutoFillUploadFieldElement : UmbracoConfigurationElement, IImagingAutoFillUploadField
+ public class ImagingAutoFillUploadFieldElement : UmbracoConfigurationElement, IImagingAutoFillUploadField
{
///
/// Allow setting internally so we can create a default
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/LoggingElement.cs b/src/Umbraco.Configuration/UmbracoSettings/LoggingElement.cs
similarity index 80%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/LoggingElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/LoggingElement.cs
index 106b6cc134..daa45cf114 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/LoggingElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/LoggingElement.cs
@@ -3,7 +3,7 @@ using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class LoggingElement : UmbracoConfigurationElement, ILoggingSection
+ public class LoggingElement : UmbracoConfigurationElement, ILoggingSection
{
[ConfigurationProperty("maxLogAge")]
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/NotificationsElement.cs b/src/Umbraco.Configuration/UmbracoSettings/NotificationsElement.cs
similarity index 86%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/NotificationsElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/NotificationsElement.cs
index afadff5654..cc76b2cb00 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/NotificationsElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/NotificationsElement.cs
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class NotificationsElement : UmbracoConfigurationElement
+ public class NotificationsElement : UmbracoConfigurationElement
{
[ConfigurationProperty("email")]
internal InnerTextConfigurationElement NotificationEmailAddress => (InnerTextConfigurationElement)this["email"];
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/SecurityElement.cs b/src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs
similarity index 97%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/SecurityElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs
index d45a3e7d85..42bafe4bd1 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/SecurityElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/SecurityElement.cs
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class SecurityElement : UmbracoConfigurationElement, ISecuritySection
+ public class SecurityElement : UmbracoConfigurationElement, ISecuritySection
{
[ConfigurationProperty("keepUserLoggedIn")]
internal InnerTextConfigurationElement KeepUserLoggedIn => GetOptionalTextElement("keepUserLoggedIn", true);
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/TourConfigElement.cs b/src/Umbraco.Configuration/UmbracoSettings/TourConfigElement.cs
similarity index 85%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/TourConfigElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/TourConfigElement.cs
index dab69f3da0..f62d766d76 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/TourConfigElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/TourConfigElement.cs
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class TourConfigElement : UmbracoConfigurationElement, ITourSection
+ public class TourConfigElement : UmbracoConfigurationElement, ITourSection
{
//disabled by default so that upgraders don't get it enabled by default
// TODO: we probably just want to disable the initial one from automatically loading ?
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoConfigurationElement.cs b/src/Umbraco.Configuration/UmbracoSettings/UmbracoConfigurationElement.cs
similarity index 95%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoConfigurationElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/UmbracoConfigurationElement.cs
index 670f620b15..30cc33a260 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoConfigurationElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/UmbracoConfigurationElement.cs
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
///
/// Base class with shared helper methods
///
- internal class UmbracoConfigurationElement : ConfigurationElement
+ public class UmbracoConfigurationElement : ConfigurationElement
{
///
/// Used so the RawElement types are not re-created every time they are accessed
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoSettingsSection.cs b/src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs
similarity index 64%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoSettingsSection.cs
rename to src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs
index 7cf8096345..bc91dfd48a 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoSettingsSection.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsSection.cs
@@ -5,23 +5,23 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
public class UmbracoSettingsSection : ConfigurationSection, IUmbracoSettingsSection
{
[ConfigurationProperty("backOffice")]
- internal BackOfficeElement BackOffice => (BackOfficeElement)this["backOffice"];
+ public BackOfficeElement BackOffice => (BackOfficeElement)this["backOffice"];
[ConfigurationProperty("content")]
- internal ContentElement Content => (ContentElement)this["content"];
+ public ContentElement Content => (ContentElement)this["content"];
[ConfigurationProperty("security")]
- internal SecurityElement Security => (SecurityElement)this["security"];
+ public SecurityElement Security => (SecurityElement)this["security"];
[ConfigurationProperty("requestHandler")]
- internal RequestHandlerElement RequestHandler => (RequestHandlerElement)this["requestHandler"];
+ public RequestHandlerElement RequestHandler => (RequestHandlerElement)this["requestHandler"];
[ConfigurationProperty("logging")]
- internal LoggingElement Logging => (LoggingElement)this["logging"];
+ public LoggingElement Logging => (LoggingElement)this["logging"];
[ConfigurationProperty("web.routing")]
- internal WebRoutingElement WebRouting => (WebRoutingElement)this["web.routing"];
+ public WebRoutingElement WebRouting => (WebRoutingElement)this["web.routing"];
IContentSection IUmbracoSettingsSection.Content => Content;
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/UrlReplacingElement.cs b/src/Umbraco.Configuration/UmbracoSettings/UrlReplacingElement.cs
similarity index 92%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/UrlReplacingElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/UrlReplacingElement.cs
index 3e12d106ff..45fe2c4294 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/UrlReplacingElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/UrlReplacingElement.cs
@@ -3,7 +3,7 @@ using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class UrlReplacingElement : ConfigurationElement
+ public class UrlReplacingElement : ConfigurationElement
{
[ConfigurationProperty("removeDoubleDashes", DefaultValue = true)]
internal bool RemoveDoubleDashes => (bool) base["removeDoubleDashes"];
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs b/src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs
similarity index 94%
rename from src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs
rename to src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs
index 7b7102f2e7..4c74398e25 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs
+++ b/src/Umbraco.Configuration/UmbracoSettings/WebRoutingElement.cs
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
- internal class WebRoutingElement : ConfigurationElement, IWebRoutingSection
+ public class WebRoutingElement : ConfigurationElement, IWebRoutingSection
{
[ConfigurationProperty("trySkipIisCustomErrors", DefaultValue = "false")]
public bool TrySkipIisCustomErrors => (bool) base["trySkipIisCustomErrors"];
diff --git a/src/Umbraco.Core/Configuration/UmbracoVersion.cs b/src/Umbraco.Configuration/UmbracoVersion.cs
similarity index 98%
rename from src/Umbraco.Core/Configuration/UmbracoVersion.cs
rename to src/Umbraco.Configuration/UmbracoVersion.cs
index 2f615d26b3..d7058fda01 100644
--- a/src/Umbraco.Core/Configuration/UmbracoVersion.cs
+++ b/src/Umbraco.Configuration/UmbracoVersion.cs
@@ -12,7 +12,7 @@ namespace Umbraco.Core.Configuration
{
static UmbracoVersion()
{
- var umbracoCoreAssembly = typeof(UmbracoVersion).Assembly;
+ var umbracoCoreAssembly = typeof(SemVersion).Assembly;
// gets the value indicated by the AssemblyVersion attribute
AssemblyVersion = umbracoCoreAssembly.GetName().Version;
diff --git a/src/Umbraco.Core/Configuration/ConfigsExtensions.cs b/src/Umbraco.Core/Configuration/ConfigsExtensions.cs
new file mode 100644
index 0000000000..4761b14d1e
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/ConfigsExtensions.cs
@@ -0,0 +1,34 @@
+using System.IO;
+using Umbraco.Core.Cache;
+using Umbraco.Core.Composing;
+using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Grid;
+using Umbraco.Core.Configuration.UmbracoSettings;
+using Umbraco.Core.IO;
+using Umbraco.Core.Logging;
+using Umbraco.Core.Manifest;
+
+namespace Umbraco.Core
+{
+ ///
+ /// Provides extension methods for the class.
+ ///
+ public static class ConfigsExtensions
+ {
+
+
+
+ public static void AddCoreConfigs(this Configs configs)
+ {
+ var configDir = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Config));
+
+ // GridConfig depends on runtime caches, manifest parsers... and cannot be available during composition
+ configs.Add(factory => new GridConfig(
+ factory.GetInstance(),
+ factory.GetInstance(),
+ configDir,
+ factory.GetInstance(),
+ factory.GetInstance().Debug));
+ }
+ }
+}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index f80066bef8..a0e50032b2 100755
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -160,8 +160,11 @@
-
-
+
+
+
+
+
@@ -261,6 +264,7 @@
+
@@ -301,53 +305,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -977,7 +934,6 @@
-
@@ -1169,6 +1125,10 @@
{29aa69d9-b597-4395-8d42-43b1263c240a}
Umbraco.Abstractions
+
+ {fbe7c065-dac0-4025-a78b-63b24d3ab00b}
+ Umbraco.Configuration
+
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/web.config b/src/Umbraco.Tests/Configurations/UmbracoSettings/web.config
index 3b247ecbff..5ac2d56d14 100644
--- a/src/Umbraco.Tests/Configurations/UmbracoSettings/web.config
+++ b/src/Umbraco.Tests/Configurations/UmbracoSettings/web.config
@@ -1,10 +1,10 @@
-
+
-
-
+
+
@@ -13,4 +13,4 @@
-
\ No newline at end of file
+
diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj
index de76b94ff1..4f4a20d94e 100644
--- a/src/Umbraco.Tests/Umbraco.Tests.csproj
+++ b/src/Umbraco.Tests/Umbraco.Tests.csproj
@@ -107,6 +107,7 @@
+
@@ -552,6 +553,10 @@
{29aa69d9-b597-4395-8d42-43b1263c240a}
Umbraco.Abstractions
+
+ {fbe7c065-dac0-4025-a78b-63b24d3ab00b}
+ Umbraco.Configuration
+
{31785BC3-256C-4613-B2F5-A1B0BDDED8C1}
Umbraco.Core
diff --git a/src/Umbraco.Web.UI/web.Template.config b/src/Umbraco.Web.UI/web.Template.config
index 6d68ea845a..e694afe5ff 100644
--- a/src/Umbraco.Web.UI/web.Template.config
+++ b/src/Umbraco.Web.UI/web.Template.config
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj
index 317786b970..788a6dd737 100755
--- a/src/Umbraco.Web/Umbraco.Web.csproj
+++ b/src/Umbraco.Web/Umbraco.Web.csproj
@@ -104,6 +104,10 @@
{29aa69d9-b597-4395-8d42-43b1263c240a}
Umbraco.Abstractions
+
+ {fbe7c065-dac0-4025-a78b-63b24d3ab00b}
+ Umbraco.Configuration
+
{31785bc3-256c-4613-b2f5-a1b0bdded8c1}
Umbraco.Core