aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs31
-rw-r--r--src/WixToolset.Core.Burn/WixToolsetCoreServiceProviderExtensions.cs2
-rw-r--r--src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs27
-rw-r--r--src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs2
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
3namespace WixToolset.Core.WindowsInstaller.ExtensibilityServices 3namespace 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