@joebigelow / wix / commits / 52f4ea0a

Integrate the latest Extensibility changes

Rob Mensching committed Feb 23, 2021 at 09:23 UTC 52f4ea0a7d85c2c83c7d6c771a3bdc6dd74fdbc0
7 files changed +28 -23
src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
+13 -8
@@ -23,7 +23,7 @@ namespace WixToolset.Core.Burn
23 /// </summary>
24 internal class BindBundleCommand
25 {
26 - public BindBundleCommand(IBindContext context, IEnumerable<IBurnBackendExtension> backedExtensions)
26 + public BindBundleCommand(IBindContext context, IEnumerable<IBurnBackendBinderExtension> backedExtensions)
27 {
28 this.ServiceProvider = context.ServiceProvider;
29
@@ -58,7 +58,7 @@ namespace WixToolset.Core.Burn
58
59 public IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; }
60
61 - private IEnumerable<IBurnBackendExtension> BackendExtensions { get; }
61 + private IEnumerable<IBurnBackendBinderExtension> BackendExtensions { get; }
62
63 private Intermediate Output { get; }
64
@@ -380,16 +380,21 @@ namespace WixToolset.Core.Burn
380 // Update the bundle per-machine/per-user scope based on the chained packages.
381 this.ResolveBundleInstallScope(section, bundleSymbol, orderedFacades);
382
383 - // Generate data for all manifests.
383 + // Give the extension one last hook before generating the output files.
384 + foreach (var extension in this.BackendExtensions)
385 {
385 - var command = new GenerateManifestDataFromIRCommand(this.Messaging, section, this.BackendExtensions, this.InternalBurnBackendHelper, extensionSearchSymbolsById);
386 - command.Execute();
386 + extension.SymbolsFinalized(section);
387 }
388
389 - // Give the extension one last hook before generating the output files.
390 - foreach (var extension in this.BackendExtensions)
389 + if (this.Messaging.EncounteredError)
390 {
392 - extension.BundleFinalize();
391 + return;
392 + }
393 +
394 + // Generate data for all manifests.
395 + {
396 + var command = new GenerateManifestDataFromIRCommand(this.Messaging, section, this.BackendExtensions, this.InternalBurnBackendHelper, extensionSearchSymbolsById);
397 + command.Execute();
398 }
399
400 if (this.Messaging.EncounteredError)
src/WixToolset.Core.Burn/Bind/GenerateManifestDataFromIRCommand.cs
+3 -3
@@ -16,7 +16,7 @@ namespace WixToolset.Core.Burn.Bind
16
17 internal class GenerateManifestDataFromIRCommand
18 {
19 - public GenerateManifestDataFromIRCommand(IMessaging messaging, IntermediateSection section, IEnumerable<IBurnBackendExtension> backendExtensions, IBurnBackendHelper backendHelper, IDictionary<string, IList<IntermediateSymbol>> extensionSearchSymbolsById)
19 + public GenerateManifestDataFromIRCommand(IMessaging messaging, IntermediateSection section, IEnumerable<IBurnBackendBinderExtension> backendExtensions, IBurnBackendHelper backendHelper, IDictionary<string, IList<IntermediateSymbol>> extensionSearchSymbolsById)
20 {
21 this.Messaging = messaging;
22 this.Section = section;
@@ -25,7 +25,7 @@ namespace WixToolset.Core.Burn.Bind
25 this.ExtensionSearchSymbolsById = extensionSearchSymbolsById;
26 }
27
28 - private IEnumerable<IBurnBackendExtension> BackendExtensions { get; }
28 + private IEnumerable<IBurnBackendBinderExtension> BackendExtensions { get; }
29
30 private IBurnBackendHelper BackendHelper { get; }
31
@@ -220,7 +220,7 @@ namespace WixToolset.Core.Burn.Bind
220 {
221 foreach (var extension in this.BackendExtensions)
222 {
223 - if (extension.TryAddSymbolToDataManifest(this.Section, symbol))
223 + if (extension.TryProcessSymbol(this.Section, symbol))
224 {
225 return true;
226 }
src/WixToolset.Core.Burn/BundleBackend.cs
+1 -1
@@ -17,7 +17,7 @@ namespace WixToolset.Core.Burn
17 {
18 var extensionManager = context.ServiceProvider.GetService<IExtensionManager>();
19
20 - var backendExtensions = extensionManager.GetServices<IBurnBackendExtension>();
20 + var backendExtensions = extensionManager.GetServices<IBurnBackendBinderExtension>();
21
22 foreach (var extension in backendExtensions)
23 {
src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
+2 -2
@@ -18,7 +18,7 @@ namespace WixToolset.Core.Burn.Bundles
18
19 internal class CreateBurnManifestCommand
20 {
21 - public CreateBurnManifestCommand(IMessaging messaging, IEnumerable<IBurnBackendExtension> backendExtensions, string executableName, IntermediateSection section, WixBundleSymbol bundleSymbol, IEnumerable<WixBundleContainerSymbol> containers, WixChainSymbol chainSymbol, IEnumerable<PackageFacade> orderedPackages, IEnumerable<WixBundleRollbackBoundarySymbol> boundaries, IEnumerable<WixBundlePayloadSymbol> uxPayloads, Dictionary<string, WixBundlePayloadSymbol> allPayloadsById, IEnumerable<ISearchFacade> orderedSearches, string intermediateFolder)
21 + public CreateBurnManifestCommand(IMessaging messaging, IEnumerable<IBurnBackendBinderExtension> backendExtensions, string executableName, IntermediateSection section, WixBundleSymbol bundleSymbol, IEnumerable<WixBundleContainerSymbol> containers, WixChainSymbol chainSymbol, IEnumerable<PackageFacade> orderedPackages, IEnumerable<WixBundleRollbackBoundarySymbol> boundaries, IEnumerable<WixBundlePayloadSymbol> uxPayloads, Dictionary<string, WixBundlePayloadSymbol> allPayloadsById, IEnumerable<ISearchFacade> orderedSearches, string intermediateFolder)
22 {
23 this.Messaging = messaging;
24 this.BackendExtensions = backendExtensions;
@@ -39,7 +39,7 @@ namespace WixToolset.Core.Burn.Bundles
39
40 private IMessaging Messaging { get; }
41
42 - private IEnumerable<IBurnBackendExtension> BackendExtensions { get; }
42 + private IEnumerable<IBurnBackendBinderExtension> BackendExtensions { get; }
43
44 private string ExecutableName { get; }
45
src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
+6 -6
@@ -23,7 +23,7 @@ namespace WixToolset.Core.Burn.Bundles
23 {
24 private const string PropertySqlFormat = "SELECT `Value` FROM `Property` WHERE `Property` = '{0}'";
25
26 - public ProcessMsiPackageCommand(IWixToolsetServiceProvider serviceProvider, IEnumerable<IBurnBackendExtension> backendExtensions, IntermediateSection section, PackageFacade facade, Dictionary<string, WixBundlePayloadSymbol> payloadSymbols)
26 + public ProcessMsiPackageCommand(IWixToolsetServiceProvider serviceProvider, IEnumerable<IBurnBackendBinderExtension> backendExtensions, IntermediateSection section, PackageFacade facade, Dictionary<string, WixBundlePayloadSymbol> payloadSymbols)
27 {
28 this.Messaging = serviceProvider.GetService<IMessaging>();
29 this.BackendHelper = serviceProvider.GetService<IBackendHelper>();
@@ -42,7 +42,7 @@ namespace WixToolset.Core.Burn.Bundles
42
43 private IPathResolver PathResolver { get; }
44
45 - private IEnumerable<IBurnBackendExtension> BackendExtensions { get; }
45 + private IEnumerable<IBurnBackendBinderExtension> BackendExtensions { get; }
46
47 private Dictionary<string, WixBundlePayloadSymbol> AuthoredPayloads { get; }
48
@@ -395,7 +395,7 @@ namespace WixToolset.Core.Burn.Bundles
395 if (!payloadNames.Contains(cabinetName))
396 {
397 var generatedId = Common.GenerateIdentifier("cab", packagePayload.Id.Id, cabinet);
398 - var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, cabinet, "Cabinet", this.Facade.PackageSymbol.SourceLineNumbers, BindStage.Normal);
398 + var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, cabinet, "Cabinet", this.Facade.PackageSymbol.SourceLineNumbers);
399
400 this.Section.AddSymbol(new WixBundlePayloadSymbol(this.Facade.PackageSymbol.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId))
401 {
@@ -472,7 +472,7 @@ namespace WixToolset.Core.Burn.Bundles
472 if (!payloadNames.Contains(name))
473 {
474 var generatedId = Common.GenerateIdentifier("f", packagePayload.Id.Id, record.GetString(2));
475 - var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, fileSourcePath, "File", this.Facade.PackageSymbol.SourceLineNumbers, BindStage.Normal);
475 + var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, fileSourcePath, "File", this.Facade.PackageSymbol.SourceLineNumbers);
476
477 this.Section.AddSymbol(new WixBundlePayloadSymbol(this.Facade.PackageSymbol.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId))
478 {
@@ -542,13 +542,13 @@ namespace WixToolset.Core.Burn.Bundles
542 }
543 }
544
545 - private string ResolveRelatedFile(string resolvedSource, string unresolvedSource, string relatedSource, string type, SourceLineNumber sourceLineNumbers, BindStage stage)
545 + private string ResolveRelatedFile(string resolvedSource, string unresolvedSource, string relatedSource, string type, SourceLineNumber sourceLineNumbers)
546 {
547 var checkedPaths = new List<string>();
548
549 foreach (var extension in this.BackendExtensions)
550 {
551 - var resolved = extension.ResolveRelatedFile(unresolvedSource, relatedSource, type, sourceLineNumbers, stage);
551 + var resolved = extension.ResolveRelatedFile(unresolvedSource, relatedSource, type, sourceLineNumbers);
552
553 if (resolved?.CheckedPaths != null)
554 {
src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs
+1 -1
@@ -1153,7 +1153,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
1153 {
1154 foreach (var extension in this.BackendExtensions)
1155 {
1156 - if (extension.TryAddSymbolToOutput(this.Section, symbol, this.Output, this.TableDefinitions))
1156 + if (extension.TryProcessSymbol(this.Section, symbol, this.Output, this.TableDefinitions))
1157 {
1158 return true;
1159 }
src/test/Example.Extension/ExampleWindowsInstallerBackendExtension.cs
+2 -2
@@ -11,7 +11,7 @@ namespace Example.Extension
11 {
12 public override IEnumerable<TableDefinition> TableDefinitions => ExampleTableDefinitions.All;
13
14 - public override bool TryAddSymbolToOutput(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinitionCollection tableDefinitions)
14 + public override bool TryProcessSymbol(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData output, TableDefinitionCollection tableDefinitions)
15 {
16 if (ExampleSymbolDefinitions.TryGetSymbolType(symbol.Definition.Name, out var symbolType))
17 {
@@ -27,7 +27,7 @@ namespace Example.Extension
27 }
28 }
29
30 - return base.TryAddSymbolToOutput(section, symbol, output, tableDefinitions);
30 + return base.TryProcessSymbol(section, symbol, output, tableDefinitions);
31 }
32 }
33 }