diff options
4 files changed, 60 insertions, 2 deletions
diff --git a/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs b/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs index 7d3acff9..59efcbc9 100644 --- a/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs +++ b/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs | |||
@@ -9,16 +9,41 @@ namespace WixToolset.Core.Burn.ExtensibilityServices | |||
9 | using System.Xml; | 9 | using System.Xml; |
10 | using WixToolset.Core.Burn.Bundles; | 10 | using WixToolset.Core.Burn.Bundles; |
11 | using WixToolset.Data; | 11 | using WixToolset.Data; |
12 | using WixToolset.Extensibility.Data; | ||
13 | using WixToolset.Extensibility.Services; | ||
12 | 14 | ||
13 | internal class BurnBackendHelper : IInternalBurnBackendHelper | 15 | internal class BurnBackendHelper : IInternalBurnBackendHelper |
14 | { | 16 | { |
15 | public static readonly XmlReaderSettings ReaderSettings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment }; | 17 | public static readonly XmlReaderSettings ReaderSettings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment }; |
16 | public static readonly XmlWriterSettings WriterSettings = new XmlWriterSettings { ConformanceLevel = ConformanceLevel.Fragment }; | 18 | public static readonly XmlWriterSettings WriterSettings = new XmlWriterSettings { ConformanceLevel = ConformanceLevel.Fragment }; |
17 | 19 | ||
20 | private readonly IBackendHelper backendHelper; | ||
21 | |||
18 | private ManifestData BootstrapperApplicationManifestData { get; } = new ManifestData(); | 22 | private ManifestData BootstrapperApplicationManifestData { get; } = new ManifestData(); |
19 | 23 | ||
20 | private Dictionary<string, ManifestData> BundleExtensionDataById { get; } = new Dictionary<string, ManifestData>(); | 24 | private Dictionary<string, ManifestData> BundleExtensionDataById { get; } = new Dictionary<string, ManifestData>(); |
21 | 25 | ||
26 | public BurnBackendHelper(IWixToolsetServiceProvider serviceProvider) | ||
27 | { | ||
28 | this.backendHelper = serviceProvider.GetService<IBackendHelper>(); | ||
29 | } | ||
30 | |||
31 | #region IBackendHelper interfaces | ||
32 | |||
33 | public IFileTransfer CreateFileTransfer(string source, string destination, bool move, SourceLineNumber sourceLineNumbers = null) => this.backendHelper.CreateFileTransfer(source, destination, move, sourceLineNumbers); | ||
34 | |||
35 | public string CreateGuid(Guid namespaceGuid, string value) => this.backendHelper.CreateGuid(namespaceGuid, value); | ||
36 | |||
37 | public IResolvedDirectory CreateResolvedDirectory(string directoryParent, string name) => this.backendHelper.CreateResolvedDirectory(directoryParent, name); | ||
38 | |||
39 | public string GetCanonicalRelativePath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string relativePath) => this.backendHelper.GetCanonicalRelativePath(sourceLineNumbers, elementName, attributeName, relativePath); | ||
40 | |||
41 | public ITrackedFile TrackFile(string path, TrackedFileType type, SourceLineNumber sourceLineNumbers = null) => this.backendHelper.TrackFile(path, type, sourceLineNumbers); | ||
42 | |||
43 | #endregion | ||
44 | |||
45 | #region IBurnBackendHelper interfaces | ||
46 | |||
22 | public void AddBootstrapperApplicationData(string xml) | 47 | public void AddBootstrapperApplicationData(string xml) |
23 | { | 48 | { |
24 | this.BootstrapperApplicationManifestData.AddXml(xml); | 49 | this.BootstrapperApplicationManifestData.AddXml(xml); |
@@ -41,6 +66,10 @@ namespace WixToolset.Core.Burn.ExtensibilityServices | |||
41 | manifestData.AddSymbol(symbol, symbolIdIsIdAttribute, BurnCommon.BundleExtensionDataNamespace); | 66 | manifestData.AddSymbol(symbol, symbolIdIsIdAttribute, BurnCommon.BundleExtensionDataNamespace); |
42 | } | 67 | } |
43 | 68 | ||
69 | #endregion | ||
70 | |||
71 | #region IInternalBurnBackendHelper interfaces | ||
72 | |||
44 | public void WriteBootstrapperApplicationData(XmlWriter writer) | 73 | public void WriteBootstrapperApplicationData(XmlWriter writer) |
45 | { | 74 | { |
46 | this.BootstrapperApplicationManifestData.Write(writer); | 75 | this.BootstrapperApplicationManifestData.Write(writer); |
@@ -54,6 +83,8 @@ namespace WixToolset.Core.Burn.ExtensibilityServices | |||
54 | } | 83 | } |
55 | } | 84 | } |
56 | 85 | ||
86 | #endregion | ||
87 | |||
57 | private ManifestData GetBundleExtensionManifestData(string extensionId) | 88 | private ManifestData GetBundleExtensionManifestData(string extensionId) |
58 | { | 89 | { |
59 | if (!Common.IsIdentifier(extensionId)) | 90 | if (!Common.IsIdentifier(extensionId)) |
diff --git a/src/WixToolset.Core.Burn/WixToolsetCoreServiceProviderExtensions.cs b/src/WixToolset.Core.Burn/WixToolsetCoreServiceProviderExtensions.cs index 5303899f..b0401b4a 100644 --- a/src/WixToolset.Core.Burn/WixToolsetCoreServiceProviderExtensions.cs +++ b/src/WixToolset.Core.Burn/WixToolsetCoreServiceProviderExtensions.cs | |||
@@ -30,7 +30,7 @@ namespace WixToolset.Core.Burn | |||
30 | private static void AddServices(IWixToolsetCoreServiceProvider coreProvider) | 30 | private static void AddServices(IWixToolsetCoreServiceProvider coreProvider) |
31 | { | 31 | { |
32 | // Singletons. | 32 | // Singletons. |
33 | coreProvider.AddService((provider, singletons) => AddSingleton<IInternalBurnBackendHelper>(singletons, new BurnBackendHelper())); | 33 | coreProvider.AddService((provider, singletons) => AddSingleton<IInternalBurnBackendHelper>(singletons, new BurnBackendHelper(provider))); |
34 | coreProvider.AddService((provider, singletons) => AddSingleton<IBurnBackendHelper>(singletons, provider.GetService<IInternalBurnBackendHelper>())); | 34 | coreProvider.AddService((provider, singletons) => AddSingleton<IBurnBackendHelper>(singletons, provider.GetService<IInternalBurnBackendHelper>())); |
35 | } | 35 | } |
36 | 36 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs b/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs index 0082bc7c..248dea9b 100644 --- a/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs +++ b/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs | |||
@@ -2,13 +2,38 @@ | |||
2 | 2 | ||
3 | namespace WixToolset.Core.WindowsInstaller.ExtensibilityServices | 3 | namespace WixToolset.Core.WindowsInstaller.ExtensibilityServices |
4 | { | 4 | { |
5 | using System; | ||
5 | using System.Linq; | 6 | using System.Linq; |
6 | using WixToolset.Data; | 7 | using WixToolset.Data; |
7 | using WixToolset.Data.WindowsInstaller; | 8 | using WixToolset.Data.WindowsInstaller; |
9 | using WixToolset.Extensibility.Data; | ||
8 | using WixToolset.Extensibility.Services; | 10 | using WixToolset.Extensibility.Services; |
9 | 11 | ||
10 | internal class WindowsInstallerBackendHelper : IWindowsInstallerBackendHelper | 12 | internal class WindowsInstallerBackendHelper : IWindowsInstallerBackendHelper |
11 | { | 13 | { |
14 | private readonly IBackendHelper backendHelper; | ||
15 | |||
16 | public WindowsInstallerBackendHelper(IWixToolsetServiceProvider serviceProvider) | ||
17 | { | ||
18 | this.backendHelper = serviceProvider.GetService<IBackendHelper>(); | ||
19 | } | ||
20 | |||
21 | #region IBackendHelper interfaces | ||
22 | |||
23 | public IFileTransfer CreateFileTransfer(string source, string destination, bool move, SourceLineNumber sourceLineNumbers = null) => this.backendHelper.CreateFileTransfer(source, destination, move, sourceLineNumbers); | ||
24 | |||
25 | public string CreateGuid(Guid namespaceGuid, string value) => this.backendHelper.CreateGuid(namespaceGuid, value); | ||
26 | |||
27 | public IResolvedDirectory CreateResolvedDirectory(string directoryParent, string name) => this.backendHelper.CreateResolvedDirectory(directoryParent, name); | ||
28 | |||
29 | public string GetCanonicalRelativePath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string relativePath) => this.backendHelper.GetCanonicalRelativePath(sourceLineNumbers, elementName, attributeName, relativePath); | ||
30 | |||
31 | public ITrackedFile TrackFile(string path, TrackedFileType type, SourceLineNumber sourceLineNumbers = null) => this.backendHelper.TrackFile(path, type, sourceLineNumbers); | ||
32 | |||
33 | #endregion | ||
34 | |||
35 | #region IWindowsInstallerBackendHelper interfaces | ||
36 | |||
12 | public Row CreateRow(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinition tableDefinition) | 37 | public Row CreateRow(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinition tableDefinition) |
13 | { | 38 | { |
14 | var table = output.EnsureTable(tableDefinition); | 39 | var table = output.EnsureTable(tableDefinition); |
@@ -57,5 +82,7 @@ namespace WixToolset.Core.WindowsInstaller.ExtensibilityServices | |||
57 | 82 | ||
58 | return true; | 83 | return true; |
59 | } | 84 | } |
85 | |||
86 | #endregion | ||
60 | } | 87 | } |
61 | } | 88 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs b/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs index e013cefb..d9649dec 100644 --- a/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs +++ b/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs | |||
@@ -30,7 +30,7 @@ namespace WixToolset.Core.WindowsInstaller | |||
30 | private static void AddServices(IWixToolsetCoreServiceProvider coreProvider) | 30 | private static void AddServices(IWixToolsetCoreServiceProvider coreProvider) |
31 | { | 31 | { |
32 | // Singletons. | 32 | // Singletons. |
33 | coreProvider.AddService((provider, singletons) => AddSingleton<IWindowsInstallerBackendHelper>(singletons, new WindowsInstallerBackendHelper())); | 33 | coreProvider.AddService((provider, singletons) => AddSingleton<IWindowsInstallerBackendHelper>(singletons, new WindowsInstallerBackendHelper(provider))); |
34 | coreProvider.AddService<IUnbinder>((provider, singletons) => new Unbinder(provider)); | 34 | coreProvider.AddService<IUnbinder>((provider, singletons) => new Unbinder(provider)); |
35 | } | 35 | } |
36 | 36 | ||