From d39ef1ef84c3864079a979a8fa5954a500f71bf7 Mon Sep 17 00:00:00 2001 From: Nir Bar Date: Mon, 23 Sep 2024 16:46:12 +0300 Subject: [PATCH] Pass compression level to extension containers --- .../WixToolset.Extensibility/BaseBurnContainerExtension.cs | 4 +++- .../wix/WixToolset.Extensibility/IBurnContainerExtension.cs | 4 +++- src/wix/WixToolset.Core.Burn/Bundles/CreateNonUXContainers.cs | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/api/wix/WixToolset.Extensibility/BaseBurnContainerExtension.cs b/src/api/wix/WixToolset.Extensibility/BaseBurnContainerExtension.cs index 6f666d48d..38710c33e 100644 --- a/src/api/wix/WixToolset.Extensibility/BaseBurnContainerExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/BaseBurnContainerExtension.cs @@ -7,6 +7,7 @@ namespace WixToolset.Extensibility using System.Security.Cryptography; using System.Text; using System.Xml; + using WixToolset.Data; using WixToolset.Data.Symbols; using WixToolset.Extensibility.Data; using WixToolset.Extensibility.Services; @@ -52,9 +53,10 @@ public virtual void PreBackendBind(IBindContext context) /// /// The container symbol. /// Collection of payloads that should be compressed in the container. + /// Compression level. It is up to extension developers to map CompressionLevel values to a relevant compression level of their extension. /// SHA512 hash of the container file. /// File size of the container file. - public abstract void CreateContainer(WixBundleContainerSymbol container, IEnumerable containerPayloads, out string sha512, out long size); + public abstract void CreateContainer(WixBundleContainerSymbol container, IEnumerable containerPayloads, CompressionLevel? level, out string sha512, out long size); /// /// Extract the container to a folder. Called on 'burn extract' command. diff --git a/src/api/wix/WixToolset.Extensibility/IBurnContainerExtension.cs b/src/api/wix/WixToolset.Extensibility/IBurnContainerExtension.cs index 1470a577c..277c86db6 100644 --- a/src/api/wix/WixToolset.Extensibility/IBurnContainerExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/IBurnContainerExtension.cs @@ -4,6 +4,7 @@ namespace WixToolset.Extensibility { using System.Collections.Generic; using System.Xml; + using WixToolset.Data; using WixToolset.Data.Symbols; using WixToolset.Extensibility.Data; @@ -28,9 +29,10 @@ public interface IBurnContainerExtension /// /// The container symbol. /// Collection of payloads that should be compressed in the container. + /// Compression level. It is up to extension developers to map CompressionLevel values to a relevant compression level of their extension. /// SHA512 hash of the container file. /// File size of the container file. - void CreateContainer(WixBundleContainerSymbol container, IEnumerable containerPayloads, out string sha512, out long size); + void CreateContainer(WixBundleContainerSymbol container, IEnumerable containerPayloads, CompressionLevel? level, out string sha512, out long size); /// /// Extract the container to a folder. Called on 'burn extract' command. diff --git a/src/wix/WixToolset.Core.Burn/Bundles/CreateNonUXContainers.cs b/src/wix/WixToolset.Core.Burn/Bundles/CreateNonUXContainers.cs index a2a6dc331..0c8912bad 100644 --- a/src/wix/WixToolset.Core.Burn/Bundles/CreateNonUXContainers.cs +++ b/src/wix/WixToolset.Core.Burn/Bundles/CreateNonUXContainers.cs @@ -160,7 +160,7 @@ private void CreateContainer(WixBundleContainerSymbol container, IEnumerable