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,