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
}