From 52f4ea0a7d85c2c83c7d6c771a3bdc6dd74fdbc0 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 23 Feb 2021 09:23:01 -0800 Subject: Integrate the latest Extensibility changes --- src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs | 21 +++++++++++++-------- .../Bind/GenerateManifestDataFromIRCommand.cs | 6 +++--- src/WixToolset.Core.Burn/BundleBackend.cs | 2 +- .../Bundles/CreateBurnManifestCommand.cs | 4 ++-- .../Bundles/ProcessMsiPackageCommand.cs | 12 ++++++------ .../Bind/CreateOutputFromIRCommand.cs | 2 +- .../ExampleWindowsInstallerBackendExtension.cs | 4 ++-- 7 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs index dea1f47d..93620e1b 100644 --- a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs +++ b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs @@ -23,7 +23,7 @@ namespace WixToolset.Core.Burn /// internal class BindBundleCommand { - public BindBundleCommand(IBindContext context, IEnumerable backedExtensions) + public BindBundleCommand(IBindContext context, IEnumerable backedExtensions) { this.ServiceProvider = context.ServiceProvider; @@ -58,7 +58,7 @@ namespace WixToolset.Core.Burn public IEnumerable ExpectedEmbeddedFiles { get; } - private IEnumerable BackendExtensions { get; } + private IEnumerable BackendExtensions { get; } private Intermediate Output { get; } @@ -380,16 +380,21 @@ namespace WixToolset.Core.Burn // Update the bundle per-machine/per-user scope based on the chained packages. this.ResolveBundleInstallScope(section, bundleSymbol, orderedFacades); - // Generate data for all manifests. + // Give the extension one last hook before generating the output files. + foreach (var extension in this.BackendExtensions) { - var command = new GenerateManifestDataFromIRCommand(this.Messaging, section, this.BackendExtensions, this.InternalBurnBackendHelper, extensionSearchSymbolsById); - command.Execute(); + extension.SymbolsFinalized(section); } - // Give the extension one last hook before generating the output files. - foreach (var extension in this.BackendExtensions) + if (this.Messaging.EncounteredError) { - extension.BundleFinalize(); + return; + } + + // Generate data for all manifests. + { + var command = new GenerateManifestDataFromIRCommand(this.Messaging, section, this.BackendExtensions, this.InternalBurnBackendHelper, extensionSearchSymbolsById); + command.Execute(); } if (this.Messaging.EncounteredError) diff --git a/src/WixToolset.Core.Burn/Bind/GenerateManifestDataFromIRCommand.cs b/src/WixToolset.Core.Burn/Bind/GenerateManifestDataFromIRCommand.cs index 93a1a0bc..c51d380c 100644 --- a/src/WixToolset.Core.Burn/Bind/GenerateManifestDataFromIRCommand.cs +++ b/src/WixToolset.Core.Burn/Bind/GenerateManifestDataFromIRCommand.cs @@ -16,7 +16,7 @@ namespace WixToolset.Core.Burn.Bind internal class GenerateManifestDataFromIRCommand { - public GenerateManifestDataFromIRCommand(IMessaging messaging, IntermediateSection section, IEnumerable backendExtensions, IBurnBackendHelper backendHelper, IDictionary> extensionSearchSymbolsById) + public GenerateManifestDataFromIRCommand(IMessaging messaging, IntermediateSection section, IEnumerable backendExtensions, IBurnBackendHelper backendHelper, IDictionary> extensionSearchSymbolsById) { this.Messaging = messaging; this.Section = section; @@ -25,7 +25,7 @@ namespace WixToolset.Core.Burn.Bind this.ExtensionSearchSymbolsById = extensionSearchSymbolsById; } - private IEnumerable BackendExtensions { get; } + private IEnumerable BackendExtensions { get; } private IBurnBackendHelper BackendHelper { get; } @@ -220,7 +220,7 @@ namespace WixToolset.Core.Burn.Bind { foreach (var extension in this.BackendExtensions) { - if (extension.TryAddSymbolToDataManifest(this.Section, symbol)) + if (extension.TryProcessSymbol(this.Section, symbol)) { return true; } diff --git a/src/WixToolset.Core.Burn/BundleBackend.cs b/src/WixToolset.Core.Burn/BundleBackend.cs index 4ca54fae..60e9ea60 100644 --- a/src/WixToolset.Core.Burn/BundleBackend.cs +++ b/src/WixToolset.Core.Burn/BundleBackend.cs @@ -17,7 +17,7 @@ namespace WixToolset.Core.Burn { var extensionManager = context.ServiceProvider.GetService(); - var backendExtensions = extensionManager.GetServices(); + var backendExtensions = extensionManager.GetServices(); foreach (var extension in backendExtensions) { diff --git a/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs b/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs index 994e02f8..71bc0229 100644 --- a/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs @@ -18,7 +18,7 @@ namespace WixToolset.Core.Burn.Bundles internal class CreateBurnManifestCommand { - public CreateBurnManifestCommand(IMessaging messaging, IEnumerable backendExtensions, string executableName, IntermediateSection section, WixBundleSymbol bundleSymbol, IEnumerable containers, WixChainSymbol chainSymbol, IEnumerable orderedPackages, IEnumerable boundaries, IEnumerable uxPayloads, Dictionary allPayloadsById, IEnumerable orderedSearches, string intermediateFolder) + public CreateBurnManifestCommand(IMessaging messaging, IEnumerable backendExtensions, string executableName, IntermediateSection section, WixBundleSymbol bundleSymbol, IEnumerable containers, WixChainSymbol chainSymbol, IEnumerable orderedPackages, IEnumerable boundaries, IEnumerable uxPayloads, Dictionary allPayloadsById, IEnumerable orderedSearches, string intermediateFolder) { this.Messaging = messaging; this.BackendExtensions = backendExtensions; @@ -39,7 +39,7 @@ namespace WixToolset.Core.Burn.Bundles private IMessaging Messaging { get; } - private IEnumerable BackendExtensions { get; } + private IEnumerable BackendExtensions { get; } private string ExecutableName { get; } diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs index e13561bc..017f29bc 100644 --- a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs @@ -23,7 +23,7 @@ namespace WixToolset.Core.Burn.Bundles { private const string PropertySqlFormat = "SELECT `Value` FROM `Property` WHERE `Property` = '{0}'"; - public ProcessMsiPackageCommand(IWixToolsetServiceProvider serviceProvider, IEnumerable backendExtensions, IntermediateSection section, PackageFacade facade, Dictionary payloadSymbols) + public ProcessMsiPackageCommand(IWixToolsetServiceProvider serviceProvider, IEnumerable backendExtensions, IntermediateSection section, PackageFacade facade, Dictionary payloadSymbols) { this.Messaging = serviceProvider.GetService(); this.BackendHelper = serviceProvider.GetService(); @@ -42,7 +42,7 @@ namespace WixToolset.Core.Burn.Bundles private IPathResolver PathResolver { get; } - private IEnumerable BackendExtensions { get; } + private IEnumerable BackendExtensions { get; } private Dictionary AuthoredPayloads { get; } @@ -395,7 +395,7 @@ namespace WixToolset.Core.Burn.Bundles if (!payloadNames.Contains(cabinetName)) { var generatedId = Common.GenerateIdentifier("cab", packagePayload.Id.Id, cabinet); - var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, cabinet, "Cabinet", this.Facade.PackageSymbol.SourceLineNumbers, BindStage.Normal); + var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, cabinet, "Cabinet", this.Facade.PackageSymbol.SourceLineNumbers); this.Section.AddSymbol(new WixBundlePayloadSymbol(this.Facade.PackageSymbol.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) { @@ -472,7 +472,7 @@ namespace WixToolset.Core.Burn.Bundles if (!payloadNames.Contains(name)) { var generatedId = Common.GenerateIdentifier("f", packagePayload.Id.Id, record.GetString(2)); - var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, fileSourcePath, "File", this.Facade.PackageSymbol.SourceLineNumbers, BindStage.Normal); + var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, fileSourcePath, "File", this.Facade.PackageSymbol.SourceLineNumbers); this.Section.AddSymbol(new WixBundlePayloadSymbol(this.Facade.PackageSymbol.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) { @@ -542,13 +542,13 @@ namespace WixToolset.Core.Burn.Bundles } } - private string ResolveRelatedFile(string resolvedSource, string unresolvedSource, string relatedSource, string type, SourceLineNumber sourceLineNumbers, BindStage stage) + private string ResolveRelatedFile(string resolvedSource, string unresolvedSource, string relatedSource, string type, SourceLineNumber sourceLineNumbers) { var checkedPaths = new List(); foreach (var extension in this.BackendExtensions) { - var resolved = extension.ResolveRelatedFile(unresolvedSource, relatedSource, type, sourceLineNumbers, stage); + var resolved = extension.ResolveRelatedFile(unresolvedSource, relatedSource, type, sourceLineNumbers); if (resolved?.CheckedPaths != null) { diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs index e1e40f4a..b52ff434 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs @@ -1153,7 +1153,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind { foreach (var extension in this.BackendExtensions) { - if (extension.TryAddSymbolToOutput(this.Section, symbol, this.Output, this.TableDefinitions)) + if (extension.TryProcessSymbol(this.Section, symbol, this.Output, this.TableDefinitions)) { return true; } diff --git a/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs b/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs index 2c108d96..87b7855c 100644 --- a/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs +++ b/src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs @@ -11,7 +11,7 @@ namespace Example.Extension { public override IEnumerable TableDefinitions => ExampleTableDefinitions.All; - public override bool TryAddSymbolToOutput(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinitionCollection tableDefinitions) + public override bool TryProcessSymbol(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinitionCollection tableDefinitions) { if (ExampleSymbolDefinitions.TryGetSymbolType(symbol.Definition.Name, out var symbolType)) { @@ -27,7 +27,7 @@ namespace Example.Extension } } - return base.TryAddSymbolToOutput(section, symbol, output, tableDefinitions); + return base.TryProcessSymbol(section, symbol, output, tableDefinitions); } } } -- cgit v1.2.3-55-g6feb