From 2c9a1d97352ca2229a6074a4de3cbf42327d1c45 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Tue, 19 Nov 2019 13:01:00 +0100 Subject: [PATCH] AB3869 move packages to abstractions --- .../Packaging/CompiledPackageXmlParser.cs | 14 +++++++------- .../Packaging/ICreatedPackagesRepository.cs | 0 .../Packaging/IInstalledPackagesRepository.cs | 0 .../Packaging/IPackageDefinitionRepository.cs | 0 .../Packaging/IPackageInstallation.cs | 0 .../Packaging/InstallationSummary.cs | 0 .../Packaging/PackageDefinitionXmlParser.cs | 14 ++++++++------ .../Packaging/PackageFileInstallation.cs | 2 +- .../Packaging/UninstallationSummary.cs | 0 .../Composing/CompositionExtensions/Services.cs | 11 ++++++++++- .../Packaging/PackageDataInstallation.cs | 3 --- src/Umbraco.Core/Umbraco.Core.csproj | 17 +++++------------ .../Packaging/CreatedPackagesRepositoryTests.cs | 1 + .../Packaging/PackageInstallationTest.cs | 3 ++- 14 files changed, 34 insertions(+), 31 deletions(-) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/CompiledPackageXmlParser.cs (96%) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/ICreatedPackagesRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/IInstalledPackagesRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/IPackageDefinitionRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/IPackageInstallation.cs (100%) rename src/{Umbraco.Core/Models => Umbraco.Abstractions}/Packaging/InstallationSummary.cs (100%) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/PackageDefinitionXmlParser.cs (92%) rename src/{Umbraco.Core => Umbraco.Abstractions}/Packaging/PackageFileInstallation.cs (98%) rename src/{Umbraco.Core/Models => Umbraco.Abstractions}/Packaging/UninstallationSummary.cs (100%) diff --git a/src/Umbraco.Core/Packaging/CompiledPackageXmlParser.cs b/src/Umbraco.Abstractions/Packaging/CompiledPackageXmlParser.cs similarity index 96% rename from src/Umbraco.Core/Packaging/CompiledPackageXmlParser.cs rename to src/Umbraco.Abstractions/Packaging/CompiledPackageXmlParser.cs index c8b5720c21..510a4122e9 100644 --- a/src/Umbraco.Core/Packaging/CompiledPackageXmlParser.cs +++ b/src/Umbraco.Abstractions/Packaging/CompiledPackageXmlParser.cs @@ -3,9 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Xml.Linq; -using Umbraco.Core.Composing; -using Umbraco.Core.IO; -using Umbraco.Core.Models; +using Umbraco.Core.Configuration; using Umbraco.Core.Models.Packaging; using File = System.IO.File; @@ -14,13 +12,15 @@ namespace Umbraco.Core.Packaging /// /// Parses the xml document contained in a compiled (zip) Umbraco package /// - internal class CompiledPackageXmlParser + public class CompiledPackageXmlParser { private readonly ConflictingPackageData _conflictingPackageData; + private readonly IGlobalSettings _globalSettings; - public CompiledPackageXmlParser(ConflictingPackageData conflictingPackageData) + public CompiledPackageXmlParser(ConflictingPackageData conflictingPackageData, IGlobalSettings globalSettings) { _conflictingPackageData = conflictingPackageData; + _globalSettings = globalSettings; } public CompiledPackage ToCompiledPackage(XDocument xml, FileInfo packageFile, string applicationRootFolder) @@ -133,12 +133,12 @@ namespace Umbraco.Core.Packaging return pathElement.TrimStart(new[] { '\\', '/', '~' }).Replace("/", "\\"); } - private static string UpdatePathPlaceholders(string path) + private string UpdatePathPlaceholders(string path) { if (path.Contains("[$")) { //this is experimental and undocumented... - path = path.Replace("[$UMBRACO]", Current.Configs.Global().UmbracoPath); + path = path.Replace("[$UMBRACO]", _globalSettings.UmbracoPath); path = path.Replace("[$CONFIG]", Constants.SystemDirectories.Config); path = path.Replace("[$DATA]", Constants.SystemDirectories.Data); } diff --git a/src/Umbraco.Core/Packaging/ICreatedPackagesRepository.cs b/src/Umbraco.Abstractions/Packaging/ICreatedPackagesRepository.cs similarity index 100% rename from src/Umbraco.Core/Packaging/ICreatedPackagesRepository.cs rename to src/Umbraco.Abstractions/Packaging/ICreatedPackagesRepository.cs diff --git a/src/Umbraco.Core/Packaging/IInstalledPackagesRepository.cs b/src/Umbraco.Abstractions/Packaging/IInstalledPackagesRepository.cs similarity index 100% rename from src/Umbraco.Core/Packaging/IInstalledPackagesRepository.cs rename to src/Umbraco.Abstractions/Packaging/IInstalledPackagesRepository.cs diff --git a/src/Umbraco.Core/Packaging/IPackageDefinitionRepository.cs b/src/Umbraco.Abstractions/Packaging/IPackageDefinitionRepository.cs similarity index 100% rename from src/Umbraco.Core/Packaging/IPackageDefinitionRepository.cs rename to src/Umbraco.Abstractions/Packaging/IPackageDefinitionRepository.cs diff --git a/src/Umbraco.Core/Packaging/IPackageInstallation.cs b/src/Umbraco.Abstractions/Packaging/IPackageInstallation.cs similarity index 100% rename from src/Umbraco.Core/Packaging/IPackageInstallation.cs rename to src/Umbraco.Abstractions/Packaging/IPackageInstallation.cs diff --git a/src/Umbraco.Core/Models/Packaging/InstallationSummary.cs b/src/Umbraco.Abstractions/Packaging/InstallationSummary.cs similarity index 100% rename from src/Umbraco.Core/Models/Packaging/InstallationSummary.cs rename to src/Umbraco.Abstractions/Packaging/InstallationSummary.cs diff --git a/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs b/src/Umbraco.Abstractions/Packaging/PackageDefinitionXmlParser.cs similarity index 92% rename from src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs rename to src/Umbraco.Abstractions/Packaging/PackageDefinitionXmlParser.cs index 50cb692530..d28ee828c5 100644 --- a/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs +++ b/src/Umbraco.Abstractions/Packaging/PackageDefinitionXmlParser.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; -using System.Xml.XPath; +using Umbraco.Core.Configuration; using Umbraco.Core.Logging; using Umbraco.Core.Models.Packaging; @@ -14,10 +14,12 @@ namespace Umbraco.Core.Packaging public class PackageDefinitionXmlParser { private readonly ILogger _logger; + private readonly IUmbracoVersion _umbracoVersion; - public PackageDefinitionXmlParser(ILogger logger) + public PackageDefinitionXmlParser(ILogger logger, IUmbracoVersion umbracoVersion) { _logger = logger; + _umbracoVersion = umbracoVersion; } public PackageDefinition ToPackageDefinition(XElement xml) @@ -66,7 +68,7 @@ namespace Umbraco.Core.Packaging } catch (Exception e) { - _logger.Warn(e, "Could not add package actions to the package xml definition, the xml did not parse"); + _logger.Warn(e, "Could not add package actions to the package xml definition, the xml did not parse"); } var packageXml = new XElement("package", @@ -76,7 +78,7 @@ namespace Umbraco.Core.Packaging new XAttribute("name", def.Name ?? string.Empty), new XAttribute("packagePath", def.PackagePath ?? string.Empty), new XAttribute("iconUrl", def.IconUrl ?? string.Empty), - new XAttribute("umbVersion", def.UmbracoVersion), + new XAttribute("umbVersion", def.UmbracoVersion ?? _umbracoVersion.Current), new XAttribute("packageGuid", def.PackageId), new XAttribute("view", def.PackageView ?? string.Empty), @@ -104,11 +106,11 @@ namespace Umbraco.Core.Packaging new XElement("macros", string.Join(",", def.Macros ?? Array.Empty())), new XElement("files", (def.Files ?? Array.Empty()).Where(x => !x.IsNullOrWhiteSpace()).Select(x => new XElement("file", x))), new XElement("languages", string.Join(",", def.Languages ?? Array.Empty())), - new XElement("dictionaryitems", string.Join(",", def.DictionaryItems ?? Array.Empty()))); + new XElement("dictionaryitems", string.Join(",", def.DictionaryItems ?? Array.Empty()))); return packageXml; } - + } } diff --git a/src/Umbraco.Core/Packaging/PackageFileInstallation.cs b/src/Umbraco.Abstractions/Packaging/PackageFileInstallation.cs similarity index 98% rename from src/Umbraco.Core/Packaging/PackageFileInstallation.cs rename to src/Umbraco.Abstractions/Packaging/PackageFileInstallation.cs index 01bb316612..4ae20cd951 100644 --- a/src/Umbraco.Core/Packaging/PackageFileInstallation.cs +++ b/src/Umbraco.Abstractions/Packaging/PackageFileInstallation.cs @@ -17,7 +17,7 @@ namespace Umbraco.Core.Packaging /// /// Installs package files /// - internal class PackageFileInstallation + public class PackageFileInstallation { private readonly CompiledPackageXmlParser _parser; private readonly IIOHelper _ioHelper; diff --git a/src/Umbraco.Core/Models/Packaging/UninstallationSummary.cs b/src/Umbraco.Abstractions/Packaging/UninstallationSummary.cs similarity index 100% rename from src/Umbraco.Core/Models/Packaging/UninstallationSummary.cs rename to src/Umbraco.Abstractions/Packaging/UninstallationSummary.cs diff --git a/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs b/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs index 4ed2fb5b2e..a9f46ce965 100644 --- a/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs +++ b/src/Umbraco.Core/Composing/CompositionExtensions/Services.cs @@ -85,7 +85,16 @@ namespace Umbraco.Core.Composing.CompositionExtensions /// private static PackagesRepository CreatePackageRepository(IFactory factory, string packageRepoFileName) => new PackagesRepository( - factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), + factory.GetInstance(), packageRepoFileName); private static LocalizedTextServiceFileSources SourcesFactory(IFactory container) diff --git a/src/Umbraco.Core/Packaging/PackageDataInstallation.cs b/src/Umbraco.Core/Packaging/PackageDataInstallation.cs index 3a87b28d0e..4146ef1664 100644 --- a/src/Umbraco.Core/Packaging/PackageDataInstallation.cs +++ b/src/Umbraco.Core/Packaging/PackageDataInstallation.cs @@ -6,13 +6,10 @@ using System.Web; using System.Xml.Linq; using System.Xml.XPath; using Umbraco.Core.Collections; -using Umbraco.Core.Composing; -using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Entities; using Umbraco.Core.Models.Packaging; -using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; using Umbraco.Core.Services; diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 098d1df110..748161d9d0 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -206,7 +206,6 @@ - @@ -216,6 +215,8 @@ + + @@ -325,14 +326,6 @@ - - - - - - - - @@ -419,7 +412,6 @@ - @@ -473,8 +465,6 @@ - - @@ -889,5 +879,8 @@ Umbraco.Abstractions + + + \ No newline at end of file diff --git a/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs b/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs index f2b97b521e..594e59bdbc 100644 --- a/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs +++ b/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs @@ -41,6 +41,7 @@ namespace Umbraco.Tests.Packaging ServiceContext.ContentService, ServiceContext.ContentTypeService, ServiceContext.DataTypeService, ServiceContext.FileService, ServiceContext.MacroService, ServiceContext.LocalizationService, IOHelper, + UmbracoVersion, Factory.GetInstance(), Logger, "createdPackages.config", //temp paths diff --git a/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs b/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs index 8b33859e5b..0af5cf1b70 100644 --- a/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs +++ b/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs @@ -6,6 +6,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration; using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Models.Packaging; @@ -40,7 +41,7 @@ namespace Umbraco.Tests.Packaging Directory.Delete(path, true); } - private CompiledPackageXmlParser Parser => new CompiledPackageXmlParser(new ConflictingPackageData(ServiceContext.MacroService, ServiceContext.FileService)); + private CompiledPackageXmlParser Parser => new CompiledPackageXmlParser(new ConflictingPackageData(ServiceContext.MacroService, ServiceContext.FileService),Factory.GetInstance()); private PackageDataInstallation PackageDataInstallation => new PackageDataInstallation( Logger, ServiceContext.FileService, ServiceContext.MacroService, ServiceContext.LocalizationService,