diff --git a/src/Umbraco.Configuration/GlobalSettings.cs b/src/Umbraco.Configuration/GlobalSettings.cs index 8ade096c4a..440940cb85 100644 --- a/src/Umbraco.Configuration/GlobalSettings.cs +++ b/src/Umbraco.Configuration/GlobalSettings.cs @@ -1,12 +1,7 @@ using System; using System.Configuration; using System.Linq; -using System.Net.Configuration; -using System.Web; -using System.Web.Configuration; -using System.Web.Hosting; using System.Xml.Linq; -using Umbraco.Core.Composing; using Umbraco.Core.IO; namespace Umbraco.Core.Configuration @@ -20,7 +15,6 @@ namespace Umbraco.Core.Configuration public class GlobalSettings : IGlobalSettings { private readonly IIOHelper _ioHelper; - private string _localTempPath; // TODO these should not be static private static string _reservedPaths; diff --git a/src/Umbraco.Core/Composing/CompositionExtensions/FileSystems.cs b/src/Umbraco.Core/Composing/CompositionExtensions/FileSystems.cs index f9ce213d65..62c9e0ae0c 100644 --- a/src/Umbraco.Core/Composing/CompositionExtensions/FileSystems.cs +++ b/src/Umbraco.Core/Composing/CompositionExtensions/FileSystems.cs @@ -1,4 +1,5 @@ using Umbraco.Core.Compose; +using Umbraco.Core.Configuration; using Umbraco.Core.IO; using Umbraco.Core.IO.MediaPathSchemes; @@ -90,7 +91,7 @@ namespace Umbraco.Core.Composing.CompositionExtensions // register the IFileSystem supporting the IMediaFileSystem // THIS IS THE ONLY THING THAT NEEDS TO CHANGE, IN ORDER TO REPLACE THE UNDERLYING FILESYSTEM // and, SupportingFileSystem.For() returns the underlying filesystem - composition.SetMediaFileSystem(() => new PhysicalFileSystem(Current.Configs.Global().UmbracoMediaPath, Current.IOHelper)); + composition.SetMediaFileSystem(factory => new PhysicalFileSystem(factory.GetInstance().UmbracoMediaPath, factory.GetInstance())); return composition; } diff --git a/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs b/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs index b79e957c9c..4ed2fb5b2e 100644 --- a/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs +++ b/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs @@ -2,6 +2,7 @@ using System.IO; using System.Linq; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration; using Umbraco.Core.Events; using Umbraco.Core.IO; using Umbraco.Core.Logging; @@ -89,9 +90,11 @@ namespace Umbraco.Core.Composing.CompositionExtensions private static LocalizedTextServiceFileSources SourcesFactory(IFactory container) { - var mainLangFolder = new DirectoryInfo(Current.IOHelper.MapPath(Current.Configs.Global().UmbracoPath + "/config/lang/")); - var appPlugins = new DirectoryInfo(Current.IOHelper.MapPath(Constants.SystemDirectories.AppPlugins)); - var configLangFolder = new DirectoryInfo(Current.IOHelper.MapPath(Constants.SystemDirectories.Config + "/lang/")); + var ioHelper = container.GetInstance(); + var globalSettings = container.GetInstance(); + var mainLangFolder = new DirectoryInfo(ioHelper.MapPath(globalSettings.UmbracoPath + "/config/lang/")); + var appPlugins = new DirectoryInfo(ioHelper.MapPath(Constants.SystemDirectories.AppPlugins)); + var configLangFolder = new DirectoryInfo(ioHelper.MapPath(Constants.SystemDirectories.Config + "/lang/")); var pluginLangFolders = appPlugins.Exists == false ? Enumerable.Empty() diff --git a/src/Umbraco.Core/Migrations/Install/DatabaseBuilder.cs b/src/Umbraco.Core/Migrations/Install/DatabaseBuilder.cs index af39b6c7c5..cf4dd923de 100644 --- a/src/Umbraco.Core/Migrations/Install/DatabaseBuilder.cs +++ b/src/Umbraco.Core/Migrations/Install/DatabaseBuilder.cs @@ -6,6 +6,7 @@ using System.Xml.Linq; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; using Umbraco.Core.Exceptions; +using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Migrations.Upgrade; using Umbraco.Core.Persistence; diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs index 238f121964..d327cdd78c 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs @@ -110,8 +110,8 @@ namespace Umbraco.Core.Persistence.Repositories.Implement // validate path & extension var validDir = Constants.SystemDirectories.MvcViews; - var isValidPath = Current.IOHelper.VerifyEditPath(fullPath, validDir); - var isValidExtension = Current.IOHelper.VerifyFileExtension(fullPath, ValidExtensions); + var isValidPath = _ioHelper.VerifyEditPath(fullPath, validDir); + var isValidExtension = _ioHelper.VerifyFileExtension(fullPath, ValidExtensions); return isValidPath && isValidExtension; } diff --git a/src/Umbraco.Core/Runtime/CoreInitialComposer.cs b/src/Umbraco.Core/Runtime/CoreInitialComposer.cs index 61a9f472fe..2ab0de14ce 100644 --- a/src/Umbraco.Core/Runtime/CoreInitialComposer.cs +++ b/src/Umbraco.Core/Runtime/CoreInitialComposer.cs @@ -4,6 +4,7 @@ using Umbraco.Core.Composing; using Umbraco.Core.Composing.CompositionExtensions; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Manifest; using Umbraco.Core.Migrations; @@ -102,7 +103,8 @@ namespace Umbraco.Core.Runtime factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), - true, new DatabaseServerMessengerOptions())); + true, new DatabaseServerMessengerOptions(), + factory.GetInstance())); composition.WithCollectionBuilder() .Add(() => composition.TypeLoader.GetCacheRefreshers()); diff --git a/src/Umbraco.Core/Sync/DatabaseServerMessenger.cs b/src/Umbraco.Core/Sync/DatabaseServerMessenger.cs index 118080feb6..f616007f73 100644 --- a/src/Umbraco.Core/Sync/DatabaseServerMessenger.cs +++ b/src/Umbraco.Core/Sync/DatabaseServerMessenger.cs @@ -34,6 +34,7 @@ namespace Umbraco.Core.Sync private readonly ManualResetEvent _syncIdle; private readonly object _locko = new object(); private readonly IProfilingLogger _profilingLogger; + private readonly IIOHelper _ioHelper; private readonly ISqlContext _sqlContext; private readonly Lazy _distCacheFilePath; private int _lastId = -1; @@ -47,13 +48,14 @@ namespace Umbraco.Core.Sync public DatabaseServerMessenger( IRuntimeState runtime, IScopeProvider scopeProvider, ISqlContext sqlContext, IProfilingLogger proflog, IGlobalSettings globalSettings, - bool distributedEnabled, DatabaseServerMessengerOptions options) + bool distributedEnabled, DatabaseServerMessengerOptions options, IIOHelper ioHelper) : base(distributedEnabled) { ScopeProvider = scopeProvider ?? throw new ArgumentNullException(nameof(scopeProvider)); _sqlContext = sqlContext; _runtime = runtime; _profilingLogger = proflog ?? throw new ArgumentNullException(nameof(proflog)); + _ioHelper = ioHelper; Logger = proflog; Options = options ?? throw new ArgumentNullException(nameof(options)); _lastPruned = _lastSync = DateTime.UtcNow; @@ -534,7 +536,7 @@ namespace Umbraco.Core.Sync { var fileName = HttpRuntime.AppDomainAppId.ReplaceNonAlphanumericChars(string.Empty) + "-lastsynced.txt"; - var distCacheFilePath = Path.Combine(globalSettings.LocalTempPath(Current.IOHelper), "DistCache", fileName); + var distCacheFilePath = Path.Combine(globalSettings.LocalTempPath(_ioHelper), "DistCache", fileName); //ensure the folder exists var folder = Path.GetDirectoryName(distCacheFilePath); diff --git a/src/Umbraco.Examine/LuceneIndexCreator.cs b/src/Umbraco.Examine/LuceneIndexCreator.cs index d6bf8c262c..ccc0248868 100644 --- a/src/Umbraco.Examine/LuceneIndexCreator.cs +++ b/src/Umbraco.Examine/LuceneIndexCreator.cs @@ -18,10 +18,12 @@ namespace Umbraco.Examine public abstract class LuceneIndexCreator : IIndexCreator { private readonly ITypeFinder _typeFinder; + private readonly IIOHelper _ioHelper; - protected LuceneIndexCreator(ITypeFinder typeFinder) + protected LuceneIndexCreator(ITypeFinder typeFinder, IIOHelper ioHelper) { _typeFinder = typeFinder; + _ioHelper = ioHelper; } public abstract IEnumerable Create(); @@ -36,7 +38,7 @@ namespace Umbraco.Examine public virtual Lucene.Net.Store.Directory CreateFileSystemLuceneDirectory(string folderName) { - var dirInfo = new DirectoryInfo(Path.Combine(Current.IOHelper.MapPath(Constants.SystemDirectories.TempData), "ExamineIndexes", folderName)); + var dirInfo = new DirectoryInfo(Path.Combine(_ioHelper.MapPath(Constants.SystemDirectories.TempData), "ExamineIndexes", folderName)); if (!dirInfo.Exists) System.IO.Directory.CreateDirectory(dirInfo.FullName); diff --git a/src/Umbraco.Examine/LuceneIndexDiagnostics.cs b/src/Umbraco.Examine/LuceneIndexDiagnostics.cs index 3b23b57709..81ec7e3dcb 100644 --- a/src/Umbraco.Examine/LuceneIndexDiagnostics.cs +++ b/src/Umbraco.Examine/LuceneIndexDiagnostics.cs @@ -13,11 +13,11 @@ namespace Umbraco.Examine { private IIOHelper _ioHelper; - public LuceneIndexDiagnostics(LuceneIndex index, ILogger logger) + public LuceneIndexDiagnostics(LuceneIndex index, ILogger logger, IIOHelper ioHelper) { Index = index; Logger = logger; - _ioHelper = Current.IOHelper; + _ioHelper = ioHelper; } public LuceneIndex Index { get; } diff --git a/src/Umbraco.Examine/UmbracoContentIndex.cs b/src/Umbraco.Examine/UmbracoContentIndex.cs index e266ca789d..f160e56a41 100644 --- a/src/Umbraco.Examine/UmbracoContentIndex.cs +++ b/src/Umbraco.Examine/UmbracoContentIndex.cs @@ -11,6 +11,7 @@ using Lucene.Net.Store; using Umbraco.Core.Composing; using Umbraco.Core.Logging; using Examine.LuceneEngine; +using Umbraco.Core.IO; namespace Umbraco.Examine { @@ -32,6 +33,7 @@ namespace Umbraco.Examine /// /// /// + /// /// /// /// @@ -41,10 +43,11 @@ namespace Umbraco.Examine FieldDefinitionCollection fieldDefinitions, Analyzer defaultAnalyzer, IProfilingLogger profilingLogger, + IIOHelper ioHelper, ILocalizationService languageService, IContentValueSetValidator validator, IReadOnlyDictionary indexValueTypes = null) - : base(name, luceneDirectory, fieldDefinitions, defaultAnalyzer, profilingLogger, validator, indexValueTypes) + : base(name, luceneDirectory, fieldDefinitions, defaultAnalyzer, profilingLogger, ioHelper, validator, indexValueTypes) { if (validator == null) throw new ArgumentNullException(nameof(validator)); LanguageService = languageService ?? throw new ArgumentNullException(nameof(languageService)); diff --git a/src/Umbraco.Examine/UmbracoExamineIndex.cs b/src/Umbraco.Examine/UmbracoExamineIndex.cs index e1dd77b994..bfc6189a13 100644 --- a/src/Umbraco.Examine/UmbracoExamineIndex.cs +++ b/src/Umbraco.Examine/UmbracoExamineIndex.cs @@ -10,6 +10,7 @@ using Examine; using Examine.LuceneEngine; using Lucene.Net.Store; using Umbraco.Core.Composing; +using Umbraco.Core.IO; using Umbraco.Core.Logging; using Directory = Lucene.Net.Store.Directory; @@ -57,6 +58,7 @@ namespace Umbraco.Examine FieldDefinitionCollection fieldDefinitions, Analyzer defaultAnalyzer, IProfilingLogger profilingLogger, + IIOHelper ioHelper, IValueSetValidator validator = null, IReadOnlyDictionary indexValueTypes = null) : base(name, luceneDirectory, fieldDefinitions, defaultAnalyzer, validator, indexValueTypes) @@ -67,7 +69,7 @@ namespace Umbraco.Examine if (luceneDirectory is FSDirectory fsDir) LuceneIndexFolder = fsDir.Directory; - _diagnostics = new UmbracoExamineIndexDiagnostics(this, ProfilingLogger); + _diagnostics = new UmbracoExamineIndexDiagnostics(this, ProfilingLogger, ioHelper); } private readonly bool _configBased = false; @@ -185,7 +187,7 @@ namespace Umbraco.Examine e.ValueSet.Values[IconFieldName] = icon; } } - + #region IIndexDiagnostics private readonly UmbracoExamineIndexDiagnostics _diagnostics; diff --git a/src/Umbraco.Examine/UmbracoExamineIndexDiagnostics.cs b/src/Umbraco.Examine/UmbracoExamineIndexDiagnostics.cs index 4a926deebe..2ac8fde960 100644 --- a/src/Umbraco.Examine/UmbracoExamineIndexDiagnostics.cs +++ b/src/Umbraco.Examine/UmbracoExamineIndexDiagnostics.cs @@ -11,8 +11,8 @@ namespace Umbraco.Examine { private readonly UmbracoExamineIndex _index; - public UmbracoExamineIndexDiagnostics(UmbracoExamineIndex index, ILogger logger) - : base(index, logger) + public UmbracoExamineIndexDiagnostics(UmbracoExamineIndex index, ILogger logger, IIOHelper ioHelper) + : base(index, logger, ioHelper) { _index = index; } diff --git a/src/Umbraco.Examine/UmbracoMemberIndex.cs b/src/Umbraco.Examine/UmbracoMemberIndex.cs index 445707ab0c..69071855e3 100644 --- a/src/Umbraco.Examine/UmbracoMemberIndex.cs +++ b/src/Umbraco.Examine/UmbracoMemberIndex.cs @@ -2,6 +2,7 @@ using Examine; using Examine.LuceneEngine; using Lucene.Net.Analysis; +using Umbraco.Core.IO; using Umbraco.Core.Logging; using Directory = Lucene.Net.Store.Directory; @@ -20,6 +21,7 @@ namespace Umbraco.Examine /// /// /// + /// /// /// public UmbracoMemberIndex( @@ -28,8 +30,9 @@ namespace Umbraco.Examine Directory luceneDirectory, Analyzer analyzer, IProfilingLogger profilingLogger, + IIOHelper ioHelper, IValueSetValidator validator = null) : - base(name, luceneDirectory, fieldDefinitions, analyzer, profilingLogger, validator) + base(name, luceneDirectory, fieldDefinitions, analyzer, profilingLogger, ioHelper, validator) { } diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs index 997b275655..2d1c92f1b4 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs @@ -29,7 +29,7 @@ namespace Umbraco.Tests.Persistence.Repositories base.SetUp(); _fileSystems = Mock.Of(); - _fileSystem = new PhysicalFileSystem(SettingsForTests.GenerateMockGlobalSettings().UmbracoScriptsPath); + _fileSystem = new PhysicalFileSystem(SettingsForTests.GenerateMockGlobalSettings().UmbracoScriptsPath, IOHelper); Mock.Get(_fileSystems).Setup(x => x.ScriptsFileSystem).Returns(_fileSystem); using (var stream = CreateStream("Umbraco.Sys.registerNamespace(\"Umbraco.Utils\");")) { diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs index a1f0662ebd..d076734037 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -28,7 +28,7 @@ namespace Umbraco.Tests.Persistence.Repositories base.SetUp(); _fileSystems = Mock.Of(); - _fileSystem = new PhysicalFileSystem(SettingsForTests.GenerateMockGlobalSettings().UmbracoCssPath); + _fileSystem = new PhysicalFileSystem(SettingsForTests.GenerateMockGlobalSettings().UmbracoCssPath, IOHelper); Mock.Get(_fileSystems).Setup(x => x.StylesheetsFileSystem).Returns(_fileSystem); var stream = CreateStream("body {background:#EE7600; color:#FFF;}"); _fileSystem.AddFile("styles.css", stream); diff --git a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs index f801d02c5b..f2959c7e31 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs @@ -120,7 +120,7 @@ namespace Umbraco.Tests.PublishedContent var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(true))) using (indexer.ProcessNonAsync()) { @@ -149,7 +149,7 @@ namespace Umbraco.Tests.PublishedContent var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, //include unpublished content since this uses the 'internal' indexer, it's up to the media cache to filter validator: new ContentValueSetValidator(false))) using (indexer.ProcessNonAsync()) @@ -197,7 +197,7 @@ namespace Umbraco.Tests.PublishedContent var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(true))) using (indexer.ProcessNonAsync()) { @@ -225,7 +225,7 @@ namespace Umbraco.Tests.PublishedContent var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(true))) using (indexer.ProcessNonAsync()) { @@ -253,7 +253,7 @@ namespace Umbraco.Tests.PublishedContent var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(true))) using (indexer.ProcessNonAsync()) { @@ -282,7 +282,7 @@ namespace Umbraco.Tests.PublishedContent using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(true))) using (indexer.ProcessNonAsync()) { @@ -307,7 +307,7 @@ namespace Umbraco.Tests.PublishedContent var rebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(true))) using (indexer.ProcessNonAsync()) { diff --git a/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs b/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs index ed5ae07fc0..2f4208ab2b 100644 --- a/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs +++ b/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs @@ -19,7 +19,7 @@ namespace Umbraco.Tests.UmbracoExamine public void Events_Ignoring_Node() { using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, //make parent id 999 so all are ignored validator: new ContentValueSetValidator(false, 999))) using (indexer.ProcessNonAsync()) diff --git a/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs b/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs index 1653de827d..03178f85ac 100644 --- a/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs +++ b/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs @@ -8,6 +8,7 @@ using Lucene.Net.Analysis.Standard; using Lucene.Net.Store; using Moq; using Umbraco.Core; +using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; @@ -153,6 +154,7 @@ namespace Umbraco.Tests.UmbracoExamine public static UmbracoContentIndex GetUmbracoIndexer( IProfilingLogger profilingLogger, + IIOHelper ioHelper, Directory luceneDir, Analyzer analyzer = null, ILocalizationService languageService = null, @@ -173,6 +175,7 @@ namespace Umbraco.Tests.UmbracoExamine new UmbracoFieldDefinitionCollection(), analyzer, profilingLogger, + ioHelper, languageService, validator); diff --git a/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs b/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs index 9e59422310..e0a4f84486 100644 --- a/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs +++ b/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs @@ -32,7 +32,7 @@ namespace Umbraco.Tests.UmbracoExamine var contentValueSetBuilder = IndexInitializer.GetContentValueSetBuilder(Factory.GetInstance(), false); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(false))) using (indexer.ProcessNonAsync()) { @@ -125,7 +125,7 @@ namespace Umbraco.Tests.UmbracoExamine var mediaRebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(false))) using (indexer.ProcessNonAsync()) { @@ -153,7 +153,7 @@ namespace Umbraco.Tests.UmbracoExamine using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir)) + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir)) using (indexer.ProcessNonAsync()) using (var searcher = ((LuceneSearcher)indexer.GetSearcher()).GetLuceneSearcher()) { @@ -190,7 +190,7 @@ namespace Umbraco.Tests.UmbracoExamine var validator = new ContentValueSetValidator(false, 1116); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, validator: validator)) + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: validator)) using (indexer.ProcessNonAsync()) { var searcher = indexer.GetSearcher(); @@ -233,7 +233,7 @@ namespace Umbraco.Tests.UmbracoExamine var validator = new ContentValueSetValidator(false, 2222); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer1 = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, validator: validator)) + using (var indexer1 = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: validator)) using (indexer1.ProcessNonAsync()) { var searcher = indexer1.GetSearcher(); @@ -276,7 +276,7 @@ namespace Umbraco.Tests.UmbracoExamine { var rebuilder = IndexInitializer.GetContentIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockContentService(), ScopeProvider.SqlContext, false); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir, validator: new ContentValueSetValidator(false))) using (indexer.ProcessNonAsync()) { @@ -318,7 +318,7 @@ namespace Umbraco.Tests.UmbracoExamine var rebuilder = IndexInitializer.GetContentIndexRebuilder(Factory.GetInstance(), IndexInitializer.GetMockContentService(), ScopeProvider.SqlContext, false); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir)) + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir)) using (indexer.ProcessNonAsync()) { var searcher = indexer.GetSearcher(); diff --git a/src/Umbraco.Tests/UmbracoExamine/SearchTests.cs b/src/Umbraco.Tests/UmbracoExamine/SearchTests.cs index a45a33ec00..91a7eb9799 100644 --- a/src/Umbraco.Tests/UmbracoExamine/SearchTests.cs +++ b/src/Umbraco.Tests/UmbracoExamine/SearchTests.cs @@ -58,7 +58,7 @@ namespace Umbraco.Tests.UmbracoExamine var rebuilder = IndexInitializer.GetContentIndexRebuilder(propertyEditors, contentService, ScopeProvider.SqlContext, true); using (var luceneDir = new RandomIdRamDirectory()) - using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir)) + using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, IOHelper, luceneDir)) using (indexer.ProcessNonAsync()) { indexer.CreateIndex(); diff --git a/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs b/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs index 6596fee245..e9fcd6b305 100644 --- a/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs +++ b/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs @@ -14,6 +14,7 @@ using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Scoping; using Umbraco.Web.Composing; using System.ComponentModel; +using Umbraco.Core.IO; namespace Umbraco.Web { @@ -27,16 +28,9 @@ namespace Umbraco.Web { private readonly IUmbracoDatabaseFactory _databaseFactory; - [Obsolete("This overload should not be used, enableDistCalls has no effect")] - [EditorBrowsable(EditorBrowsableState.Never)] public BatchedDatabaseServerMessenger( - IRuntimeState runtime, IUmbracoDatabaseFactory databaseFactory, IScopeProvider scopeProvider, ISqlContext sqlContext, IProfilingLogger proflog, IGlobalSettings globalSettings, bool enableDistCalls, DatabaseServerMessengerOptions options) - : this(runtime, databaseFactory, scopeProvider, sqlContext, proflog, globalSettings, options) - { } - - public BatchedDatabaseServerMessenger( - IRuntimeState runtime, IUmbracoDatabaseFactory databaseFactory, IScopeProvider scopeProvider, ISqlContext sqlContext, IProfilingLogger proflog, IGlobalSettings globalSettings, DatabaseServerMessengerOptions options) - : base(runtime, scopeProvider, sqlContext, proflog, globalSettings, true, options) + IRuntimeState runtime, IUmbracoDatabaseFactory databaseFactory, IScopeProvider scopeProvider, ISqlContext sqlContext, IProfilingLogger proflog, IGlobalSettings globalSettings, DatabaseServerMessengerOptions options, IIOHelper ioHelper) + : base(runtime, scopeProvider, sqlContext, proflog, globalSettings, true, options, ioHelper) { _databaseFactory = databaseFactory; } diff --git a/src/Umbraco.Web/Editors/ExamineManagementController.cs b/src/Umbraco.Web/Editors/ExamineManagementController.cs index 0953b41cac..16bf071445 100644 --- a/src/Umbraco.Web/Editors/ExamineManagementController.cs +++ b/src/Umbraco.Web/Editors/ExamineManagementController.cs @@ -8,6 +8,7 @@ using Examine; using Examine.LuceneEngine.Providers; using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Examine; using Umbraco.Web.Models.ContentEditing; @@ -22,16 +23,18 @@ namespace Umbraco.Web.Editors { private readonly IExamineManager _examineManager; private readonly ILogger _logger; + private readonly IIOHelper _ioHelper; private readonly IAppPolicyCache _runtimeCache; private readonly IndexRebuilder _indexRebuilder; - public ExamineManagementController(IExamineManager examineManager, ILogger logger, + public ExamineManagementController(IExamineManager examineManager, ILogger logger, IIOHelper ioHelper, AppCaches appCaches, IndexRebuilder indexRebuilder) { _examineManager = examineManager; _logger = logger; + _ioHelper = ioHelper; _runtimeCache = appCaches.RuntimeCache; _indexRebuilder = indexRebuilder; } @@ -179,7 +182,7 @@ namespace Umbraco.Web.Editors if (!(index is IIndexDiagnostics indexDiag)) { if (index is LuceneIndex luceneIndex) - indexDiag = new LuceneIndexDiagnostics(luceneIndex, Logger); + indexDiag = new LuceneIndexDiagnostics(luceneIndex, Logger, _ioHelper); else indexDiag = new GenericIndexDiagnostics(index); } diff --git a/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs b/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs index b9dbc7d996..feeea2a12e 100644 --- a/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs +++ b/src/Umbraco.Web/Search/UmbracoIndexesCreator.cs @@ -8,6 +8,7 @@ using Examine.LuceneEngine; using Examine; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.IO; namespace Umbraco.Web.Search { @@ -23,8 +24,11 @@ namespace Umbraco.Web.Search IProfilingLogger profilingLogger, ILocalizationService languageService, IPublicAccessService publicAccessService, - IMemberService memberService, IUmbracoIndexConfig umbracoIndexConfig) : base(typeFinder) + IMemberService memberService, + IUmbracoIndexConfig umbracoIndexConfig, + IIOHelper ioHelper) : base(typeFinder, ioHelper) { + IOHelper = ioHelper; ProfilingLogger = profilingLogger ?? throw new System.ArgumentNullException(nameof(profilingLogger)); LanguageService = languageService ?? throw new System.ArgumentNullException(nameof(languageService)); PublicAccessService = publicAccessService ?? throw new System.ArgumentNullException(nameof(publicAccessService)); @@ -33,6 +37,7 @@ namespace Umbraco.Web.Search } protected IProfilingLogger ProfilingLogger { get; } + protected IIOHelper IOHelper { get; } protected ILocalizationService LanguageService { get; } protected IPublicAccessService PublicAccessService { get; } protected IMemberService MemberService { get; } @@ -60,6 +65,7 @@ namespace Umbraco.Web.Search new UmbracoFieldDefinitionCollection(), new CultureInvariantWhitespaceAnalyzer(), ProfilingLogger, + IOHelper, LanguageService, GetContentValueSetValidator() ); @@ -74,6 +80,7 @@ namespace Umbraco.Web.Search new UmbracoFieldDefinitionCollection(), new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30), ProfilingLogger, + IOHelper, LanguageService, GetPublishedContentValueSetValidator()); return index; @@ -87,6 +94,7 @@ namespace Umbraco.Web.Search CreateFileSystemLuceneDirectory(Constants.UmbracoIndexes.MembersIndexPath), new CultureInvariantWhitespaceAnalyzer(), ProfilingLogger, + IOHelper, GetMemberValueSetValidator() ); return index;