diff --git a/src/Umbraco.Core/Configuration/GlobalSettings.cs b/src/Umbraco.Core/Configuration/GlobalSettings.cs
index 5f023b8dea..7c274089f7 100644
--- a/src/Umbraco.Core/Configuration/GlobalSettings.cs
+++ b/src/Umbraco.Core/Configuration/GlobalSettings.cs
@@ -215,10 +215,7 @@ namespace Umbraco.Core.Configuration
ConfigurationManager.RefreshSection("appSettings");
}
}
-
- [Obsolete("Use IOHelper.GetRootDirectorySafe() instead")]
- public static string FullPathToRoot => IOHelper.GetRootDirectorySafe();
-
+
///
/// Gets a value indicating whether umbraco is running in [debug mode].
///
diff --git a/src/Umbraco.Core/Logging/AsynchronousRollingFileAppender.cs b/src/Umbraco.Core/Logging/AsynchronousRollingFileAppender.cs
deleted file mode 100644
index e14ef92451..0000000000
--- a/src/Umbraco.Core/Logging/AsynchronousRollingFileAppender.cs
+++ /dev/null
@@ -1,206 +0,0 @@
-using log4net.Core;
-using log4net.Util;
-using System;
-using System.ComponentModel;
-using System.Runtime.Remoting.Messaging;
-using System.Security.Principal;
-using System.Threading;
-using System.Threading.Tasks;
-using log4net.Appender;
-
-namespace Umbraco.Core.Logging
-{
- ///
- /// Based on https://github.com/cjbhaines/Log4Net.Async
- /// which is based on code by Chris Haines http://cjbhaines.wordpress.com/2012/02/13/asynchronous-log4net-appenders/
- /// This is an old/deprecated logger and has been superceded by ParallelForwardingAppender which is included in Umbraco and
- /// also by AsyncForwardingAppender in the Log4Net.Async library.
- ///
- [Obsolete("This is superceded by the ParallelForwardingAppender, this will be removed in v8, do not use this")]
- [EditorBrowsable(EditorBrowsableState.Never)]
- public class AsynchronousRollingFileAppender : RollingFileAppender
- {
- private RingBuffer pendingAppends;
- private readonly ManualResetEvent manualResetEvent;
- private bool shuttingDown;
- private bool hasFinished;
- private bool forceStop;
- private bool logBufferOverflow;
- private int bufferOverflowCounter;
- private DateTime lastLoggedBufferOverflow;
- private int queueSizeLimit = 1000;
- public int QueueSizeLimit
- {
- get
- {
- return queueSizeLimit;
- }
- set
- {
- queueSizeLimit = value;
- }
- }
-
- public AsynchronousRollingFileAppender()
- {
- manualResetEvent = new ManualResetEvent(false);
- }
-
- public override void ActivateOptions()
- {
- base.ActivateOptions();
- pendingAppends = new RingBuffer(QueueSizeLimit);
- pendingAppends.BufferOverflow += OnBufferOverflow;
- StartAppendTask();
- }
-
- protected override void Append(LoggingEvent[] loggingEvents)
- {
- Array.ForEach(loggingEvents, Append);
- }
-
- protected override void Append(LoggingEvent loggingEvent)
- {
- if (FilterEvent(loggingEvent))
- {
- pendingAppends.Enqueue(loggingEvent);
- }
- }
-
- protected override void OnClose()
- {
- shuttingDown = true;
- manualResetEvent.WaitOne(TimeSpan.FromSeconds(5));
-
- if (!hasFinished)
- {
- forceStop = true;
- base.Append(new LoggingEvent(new LoggingEventData
- {
- Level = Level.Error,
- Message = "Unable to clear out the AsyncRollingFileAppender buffer in the allotted time, forcing a shutdown",
- TimeStamp = DateTime.UtcNow,
- Identity = "",
- ExceptionString = "",
- UserName = WindowsIdentity.GetCurrent() != null ? WindowsIdentity.GetCurrent().Name : "",
- Domain = AppDomain.CurrentDomain.FriendlyName,
- ThreadName = Thread.CurrentThread.ManagedThreadId.ToString(),
- LocationInfo = new LocationInfo(this.GetType().Name, "OnClose", "AsyncRollingFileAppender.cs", "75"),
- LoggerName = this.GetType().FullName,
- Properties = new PropertiesDictionary(),
- })
- );
- }
-
- base.OnClose();
- }
-
- private void StartAppendTask()
- {
- if (!shuttingDown)
- {
- Task appendTask = new Task(AppendLoggingEvents, TaskCreationOptions.LongRunning);
- appendTask.LogErrors(LogAppenderError).ContinueWith(x => StartAppendTask()).LogErrors(LogAppenderError);
- appendTask.Start();
- }
- }
-
- private void LogAppenderError(string logMessage, Exception exception)
- {
- base.Append(new LoggingEvent(new LoggingEventData
- {
- Level = Level.Error,
- Message = "Appender exception: " + logMessage,
- TimeStamp = DateTime.UtcNow,
- Identity = "",
- ExceptionString = exception.ToString(),
- UserName = WindowsIdentity.GetCurrent() != null ? WindowsIdentity.GetCurrent().Name : "",
- Domain = AppDomain.CurrentDomain.FriendlyName,
- ThreadName = Thread.CurrentThread.ManagedThreadId.ToString(),
- LocationInfo = new LocationInfo(this.GetType().Name, "LogAppenderError", "AsyncRollingFileAppender.cs", "152"),
- LoggerName = this.GetType().FullName,
- Properties = new PropertiesDictionary(),
- }));
- }
-
- private void AppendLoggingEvents()
- {
- LoggingEvent loggingEventToAppend;
- while (!shuttingDown)
- {
- if (logBufferOverflow)
- {
- LogBufferOverflowError();
- logBufferOverflow = false;
- bufferOverflowCounter = 0;
- lastLoggedBufferOverflow = DateTime.UtcNow;
- }
-
- while (!pendingAppends.TryDequeue(out loggingEventToAppend))
- {
- Thread.Sleep(10);
- if (shuttingDown)
- {
- break;
- }
- }
- if (loggingEventToAppend == null)
- {
- continue;
- }
-
- try
- {
- base.Append(loggingEventToAppend);
- }
- catch
- {
- }
- }
-
- while (pendingAppends.TryDequeue(out loggingEventToAppend) && !forceStop)
- {
- try
- {
- base.Append(loggingEventToAppend);
- }
- catch
- {
- }
- }
- hasFinished = true;
- manualResetEvent.Set();
- }
-
- private void LogBufferOverflowError()
- {
- base.Append(new LoggingEvent(new LoggingEventData
- {
- Level = Level.Error,
- Message = string.Format("Buffer overflow. {0} logging events have been lost in the last 30 seconds. [QueueSizeLimit: {1}]", bufferOverflowCounter, QueueSizeLimit),
- TimeStamp = DateTime.UtcNow,
- Identity = "",
- ExceptionString = "",
- UserName = WindowsIdentity.GetCurrent() != null ? WindowsIdentity.GetCurrent().Name : "",
- Domain = AppDomain.CurrentDomain.FriendlyName,
- ThreadName = Thread.CurrentThread.ManagedThreadId.ToString(),
- LocationInfo = new LocationInfo(this.GetType().Name, "LogBufferOverflowError", "AsyncRollingFileAppender.cs", "152"),
- LoggerName = this.GetType().FullName,
- Properties = new PropertiesDictionary(),
- }));
- }
-
- private void OnBufferOverflow(object sender, EventArgs eventArgs)
- {
- bufferOverflowCounter++;
- if (logBufferOverflow == false)
- {
- if (lastLoggedBufferOverflow < DateTime.UtcNow.AddSeconds(-30))
- {
- logBufferOverflow = true;
- }
- }
- }
- }
-
-}
diff --git a/src/Umbraco.Core/Models/ContentType.cs b/src/Umbraco.Core/Models/ContentType.cs
index 196c68b23c..ff647dc189 100644
--- a/src/Umbraco.Core/Models/ContentType.cs
+++ b/src/Umbraco.Core/Models/ContentType.cs
@@ -136,15 +136,5 @@ namespace Umbraco.Core.Models
return result;
}
-
- ///
- /// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
- ///
- ///
- [Obsolete("Use DeepCloneWithResetIdentities instead")]
- public IContentType Clone(string alias)
- {
- return DeepCloneWithResetIdentities(alias);
- }
}
}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 3954267118..321458b05f 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -543,7 +543,6 @@
-
diff --git a/src/Umbraco.Tests/Models/ContentTypeTests.cs b/src/Umbraco.Tests/Models/ContentTypeTests.cs
index c63853940f..a0e9a370da 100644
--- a/src/Umbraco.Tests/Models/ContentTypeTests.cs
+++ b/src/Umbraco.Tests/Models/ContentTypeTests.cs
@@ -72,7 +72,7 @@ namespace Umbraco.Tests.Models
//ensure that nothing is marked as dirty
contentType.ResetDirtyProperties(false);
- var clone = (ContentType)contentType.Clone("newAlias");
+ var clone = (ContentType)contentType.DeepCloneWithResetIdentities("newAlias");
Assert.AreEqual("newAlias", clone.Alias);
Assert.AreNotEqual("newAlias", contentType.Alias);
diff --git a/src/Umbraco.Tests/Packaging/PackageExtractionTests.cs b/src/Umbraco.Tests/Packaging/PackageExtractionTests.cs
index 118d57ab2a..5416162ed2 100644
--- a/src/Umbraco.Tests/Packaging/PackageExtractionTests.cs
+++ b/src/Umbraco.Tests/Packaging/PackageExtractionTests.cs
@@ -2,6 +2,7 @@
using System.IO;
using System.Linq;
using NUnit.Framework;
+using Umbraco.Core.IO;
using Umbraco.Core.Packaging;
namespace Umbraco.Tests.Packaging
@@ -14,7 +15,7 @@ namespace Umbraco.Tests.Packaging
private static string GetTestPackagePath(string packageName)
{
const string testPackagesDirName = "Packaging\\Packages";
- string path = Path.Combine(Core.Configuration.GlobalSettings.FullPathToRoot, testPackagesDirName, packageName);
+ string path = Path.Combine(IOHelper.GetRootDirectorySafe(), testPackagesDirName, packageName);
return path;
}
diff --git a/src/Umbraco.Tests/Services/PackagingServiceTests.cs b/src/Umbraco.Tests/Services/PackagingServiceTests.cs
index 829365ae7f..87225c1288 100644
--- a/src/Umbraco.Tests/Services/PackagingServiceTests.cs
+++ b/src/Umbraco.Tests/Services/PackagingServiceTests.cs
@@ -5,6 +5,7 @@ using System.IO;
using System.Linq;
using System.Xml.Linq;
using NUnit.Framework;
+using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Packaging;
using Umbraco.Core.Services;
@@ -76,7 +77,7 @@ namespace Umbraco.Tests.Services
private static string GetTestPackagePath(string packageName)
{
const string testPackagesDirName = "Packaging\\Packages";
- string path = Path.Combine(Core.Configuration.GlobalSettings.FullPathToRoot, testPackagesDirName, packageName);
+ string path = Path.Combine(IOHelper.GetRootDirectorySafe(), testPackagesDirName, packageName);
return path;
}