diff options
| author | Rob Mensching <rob@firegiant.com> | 2022-09-27 15:03:47 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2022-09-27 16:25:20 -0700 |
| commit | dfcd6728a9d56ac37a5daa8cbedabbf10c333773 (patch) | |
| tree | 95f25aa8009ce3e8eef3e86d33c35c450148299f /src/api | |
| parent | 188952d84f5789128ddd32e7adf09e60899af43a (diff) | |
| download | wix-dfcd6728a9d56ac37a5daa8cbedabbf10c333773.tar.gz wix-dfcd6728a9d56ac37a5daa8cbedabbf10c333773.tar.bz2 wix-dfcd6728a9d56ac37a5daa8cbedabbf10c333773.zip | |
Introduce PatchFilterMap to remove Row.SectionId
A Row's SectionId is not set correctly in most scenarios. It was
only really needed for the old section-based patch filtering. As
section-base patch filtering was replaced in favor of the more
logical filter generation, Row.SectionId was archaic and mostly
outdated/wrong data.
Diffstat (limited to 'src/api')
4 files changed, 15 insertions, 33 deletions
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs index f44082d3..cbb47492 100644 --- a/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs | |||
| @@ -53,17 +53,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 53 | public RowOperation Operation { get; set; } | 53 | public RowOperation Operation { get; set; } |
| 54 | 54 | ||
| 55 | /// <summary> | 55 | /// <summary> |
| 56 | /// Gets or sets wether the row is a duplicate of another row thus redundant. | ||
| 57 | /// </summary> | ||
| 58 | public bool Redundant { get; set; } | ||
| 59 | |||
| 60 | /// <summary> | ||
| 61 | /// Gets or sets the SectionId property on the row. | ||
| 62 | /// </summary> | ||
| 63 | /// <value>The SectionId property on the row.</value> | ||
| 64 | public string SectionId { get; set; } | ||
| 65 | |||
| 66 | /// <summary> | ||
| 67 | /// Gets the source file and line number for the row. | 56 | /// Gets the source file and line number for the row. |
| 68 | /// </summary> | 57 | /// </summary> |
| 69 | /// <value>Source file and line number.</value> | 58 | /// <value>Source file and line number.</value> |
| @@ -276,8 +265,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 276 | 265 | ||
| 277 | bool empty = reader.IsEmptyElement; | 266 | bool empty = reader.IsEmptyElement; |
| 278 | RowOperation operation = RowOperation.None; | 267 | RowOperation operation = RowOperation.None; |
| 279 | bool redundant = false; | ||
| 280 | string sectionId = null; | ||
| 281 | SourceLineNumber sourceLineNumbers = null; | 268 | SourceLineNumber sourceLineNumbers = null; |
| 282 | 269 | ||
| 283 | while (reader.MoveToNextAttribute()) | 270 | while (reader.MoveToNextAttribute()) |
| @@ -287,12 +274,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 287 | case "op": | 274 | case "op": |
| 288 | operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); | 275 | operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); |
| 289 | break; | 276 | break; |
| 290 | case "redundant": | ||
| 291 | redundant = reader.Value.Equals("yes"); | ||
| 292 | break; | ||
| 293 | case "sectionId": | ||
| 294 | sectionId = reader.Value; | ||
| 295 | break; | ||
| 296 | case "sourceLineNumber": | 277 | case "sourceLineNumber": |
| 297 | sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); | 278 | sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); |
| 298 | break; | 279 | break; |
| @@ -301,8 +282,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 301 | 282 | ||
| 302 | var row = table.CreateRow(sourceLineNumbers); | 283 | var row = table.CreateRow(sourceLineNumbers); |
| 303 | row.Operation = operation; | 284 | row.Operation = operation; |
| 304 | row.Redundant = redundant; | ||
| 305 | row.SectionId = sectionId; | ||
| 306 | 285 | ||
| 307 | // loop through all the fields in a row | 286 | // loop through all the fields in a row |
| 308 | if (!empty) | 287 | if (!empty) |
| @@ -364,16 +343,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 364 | writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); | 343 | writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); |
| 365 | } | 344 | } |
| 366 | 345 | ||
| 367 | if (this.Redundant) | ||
| 368 | { | ||
| 369 | writer.WriteAttributeString("redundant", "yes"); | ||
| 370 | } | ||
| 371 | |||
| 372 | if (null != this.SectionId) | ||
| 373 | { | ||
| 374 | writer.WriteAttributeString("sectionId", this.SectionId); | ||
| 375 | } | ||
| 376 | |||
| 377 | if (null != this.SourceLineNumbers) | 346 | if (null != this.SourceLineNumbers) |
| 378 | { | 347 | { |
| 379 | writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); | 348 | writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); |
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd index 5d95a59c..94909032 100644 --- a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd | |||
| @@ -96,8 +96,6 @@ | |||
| 96 | </xs:restriction> | 96 | </xs:restriction> |
| 97 | </xs:simpleType> | 97 | </xs:simpleType> |
| 98 | </xs:attribute> | 98 | </xs:attribute> |
| 99 | <xs:attribute name="redundant" type="YesNoType" /> | ||
| 100 | <xs:attribute name="sectionId" type="xs:string" /> | ||
| 101 | <xs:attribute name="sourceLineNumber" type="xs:string" /> | 99 | <xs:attribute name="sourceLineNumber" type="xs:string" /> |
| 102 | </xs:complexType> | 100 | </xs:complexType> |
| 103 | </xs:element> | 101 | </xs:element> |
diff --git a/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs b/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs index a54f05fc..0b31cdd7 100644 --- a/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs | |||
| @@ -63,6 +63,13 @@ namespace WixToolset.Extensibility | |||
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | /// <summary> | 65 | /// <summary> |
| 66 | /// See <see cref="IWindowsInstallerBackendBinderExtension.FinalizePatchFilterIds(WindowsInstallerData, IDictionary{Row, string}, string)"/> | ||
| 67 | /// </summary> | ||
| 68 | public virtual void FinalizePatchFilterIds(WindowsInstallerData data, IDictionary<Row, string> rowToFilterId, string filterIdPrefix) | ||
| 69 | { | ||
| 70 | } | ||
| 71 | |||
| 72 | /// <summary> | ||
| 66 | /// See <see cref="IWindowsInstallerBackendBinderExtension.PreBackendBind(IBindContext)"/> | 73 | /// See <see cref="IWindowsInstallerBackendBinderExtension.PreBackendBind(IBindContext)"/> |
| 67 | /// </summary> | 74 | /// </summary> |
| 68 | public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files) | 75 | public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files) |
diff --git a/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs b/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs index 067745c2..fdf753c7 100644 --- a/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs | |||
| @@ -30,6 +30,14 @@ namespace WixToolset.Extensibility | |||
| 30 | void SymbolsFinalized(IntermediateSection section); | 30 | void SymbolsFinalized(IntermediateSection section); |
| 31 | 31 | ||
| 32 | /// <summary> | 32 | /// <summary> |
| 33 | /// Extension can process the filter ids applied to rows when processing patches. | ||
| 34 | /// </summary> | ||
| 35 | /// <param name="data">The <c>WindowsInstallerData</c> with rows to apply filters to.</param> | ||
| 36 | /// <param name="rowToFilterId">The mapping that applies a filter id to a row.</param> | ||
| 37 | /// <param name="filterIdPrefix">The prefix to use applying additional filters to rows.</param> | ||
| 38 | void FinalizePatchFilterIds(WindowsInstallerData data, IDictionary<Row, string> rowToFilterId, string filterIdPrefix); | ||
| 39 | |||
| 40 | /// <summary> | ||
| 33 | /// Finds an existing cabinet that contains the provided files. | 41 | /// Finds an existing cabinet that contains the provided files. |
| 34 | /// </summary> | 42 | /// </summary> |
| 35 | /// <param name="cabinetPath">Path to the cabinet.</param> | 43 | /// <param name="cabinetPath">Path to the cabinet.</param> |
