diff options
Diffstat (limited to 'src/wixext/MsmqCompiler.cs')
| -rw-r--r-- | src/wixext/MsmqCompiler.cs | 188 |
1 files changed, 87 insertions, 101 deletions
diff --git a/src/wixext/MsmqCompiler.cs b/src/wixext/MsmqCompiler.cs index b40e2dc1..5365f0fb 100644 --- a/src/wixext/MsmqCompiler.cs +++ b/src/wixext/MsmqCompiler.cs | |||
| @@ -1,30 +1,19 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. |
| 2 | 2 | ||
| 3 | namespace WixToolset.Extensions | 3 | namespace WixToolset.Msmq |
| 4 | { | 4 | { |
| 5 | using System; | 5 | using System; |
| 6 | using System.Collections; | ||
| 7 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 8 | using System.Globalization; | ||
| 9 | using System.Reflection; | ||
| 10 | using System.Xml; | ||
| 11 | using System.Xml.Linq; | 7 | using System.Xml.Linq; |
| 12 | using System.Xml.Schema; | ||
| 13 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 14 | using WixToolset.Extensibility; | 9 | using WixToolset.Extensibility; |
| 15 | 10 | ||
| 16 | /// <summary> | 11 | /// <summary> |
| 17 | /// The compiler for the WiX Toolset Internet Information Services Extension. | 12 | /// The compiler for the WiX Toolset MSMQ Extension. |
| 18 | /// </summary> | 13 | /// </summary> |
| 19 | public sealed class MsmqCompiler : CompilerExtension | 14 | public sealed class MsmqCompiler : BaseCompilerExtension |
| 20 | { | 15 | { |
| 21 | /// <summary> | 16 | public override XNamespace Namespace => "http://wixtoolset.org/schemas/v4/wxs/msmq"; |
| 22 | /// Instantiate a new MsmqCompiler. | ||
| 23 | /// </summary> | ||
| 24 | public MsmqCompiler() | ||
| 25 | { | ||
| 26 | this.Namespace = "http://wixtoolset.org/schemas/v4/wxs/msmq"; | ||
| 27 | } | ||
| 28 | 17 | ||
| 29 | /// <summary> | 18 | /// <summary> |
| 30 | /// </summary> | 19 | /// </summary> |
| @@ -75,7 +64,7 @@ namespace WixToolset.Extensions | |||
| 75 | /// <param name="parentElement">Parent element of element to process.</param> | 64 | /// <param name="parentElement">Parent element of element to process.</param> |
| 76 | /// <param name="element">Element to process.</param> | 65 | /// <param name="element">Element to process.</param> |
| 77 | /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param> | 66 | /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param> |
| 78 | public override void ParseElement(XElement parentElement, XElement element, IDictionary<string, string> context) | 67 | public override void ParseElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context) |
| 79 | { | 68 | { |
| 80 | switch (parentElement.Name.LocalName) | 69 | switch (parentElement.Name.LocalName) |
| 81 | { | 70 | { |
| @@ -86,18 +75,18 @@ namespace WixToolset.Extensions | |||
| 86 | switch (element.Name.LocalName) | 75 | switch (element.Name.LocalName) |
| 87 | { | 76 | { |
| 88 | case "MessageQueue": | 77 | case "MessageQueue": |
| 89 | this.ParseMessageQueueElement(element, componentId); | 78 | this.ParseMessageQueueElement(intermediate, section, element, componentId); |
| 90 | break; | 79 | break; |
| 91 | case "MessageQueuePermission": | 80 | case "MessageQueuePermission": |
| 92 | this.ParseMessageQueuePermissionElement(element, componentId, null); | 81 | this.ParseMessageQueuePermissionElement(intermediate, section, element, componentId, null); |
| 93 | break; | 82 | break; |
| 94 | default: | 83 | default: |
| 95 | this.Core.UnexpectedElement(parentElement, element); | 84 | this.ParseHelper.UnexpectedElement(parentElement, element); |
| 96 | break; | 85 | break; |
| 97 | } | 86 | } |
| 98 | break; | 87 | break; |
| 99 | default: | 88 | default: |
| 100 | this.Core.UnexpectedElement(parentElement, element); | 89 | this.ParseHelper.UnexpectedElement(parentElement, element); |
| 101 | break; | 90 | break; |
| 102 | } | 91 | } |
| 103 | } | 92 | } |
| @@ -107,11 +96,11 @@ namespace WixToolset.Extensions | |||
| 107 | /// </summary> | 96 | /// </summary> |
| 108 | /// <param name="node">Element to parse.</param> | 97 | /// <param name="node">Element to parse.</param> |
| 109 | /// <param name="componentKey">Identifier of parent component.</param> | 98 | /// <param name="componentKey">Identifier of parent component.</param> |
| 110 | private void ParseMessageQueueElement(XElement node, string componentId) | 99 | private void ParseMessageQueueElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentId) |
| 111 | { | 100 | { |
| 112 | SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 101 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node); |
| 113 | 102 | ||
| 114 | string id = null; | 103 | Identifier id = null; |
| 115 | int basePriority = CompilerConstants.IntegerNotSet; | 104 | int basePriority = CompilerConstants.IntegerNotSet; |
| 116 | int journalQuota = CompilerConstants.IntegerNotSet; | 105 | int journalQuota = CompilerConstants.IntegerNotSet; |
| 117 | string label = null; | 106 | string label = null; |
| @@ -129,10 +118,10 @@ namespace WixToolset.Extensions | |||
| 129 | switch (attrib.Name.LocalName) | 118 | switch (attrib.Name.LocalName) |
| 130 | { | 119 | { |
| 131 | case "Id": | 120 | case "Id": |
| 132 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 121 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 133 | break; | 122 | break; |
| 134 | case "Authenticate": | 123 | case "Authenticate": |
| 135 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 124 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 136 | { | 125 | { |
| 137 | attributes |= (int)MqiMessageQueueAttributes.Authenticate; | 126 | attributes |= (int)MqiMessageQueueAttributes.Authenticate; |
| 138 | } | 127 | } |
| @@ -142,10 +131,10 @@ namespace WixToolset.Extensions | |||
| 142 | } | 131 | } |
| 143 | break; | 132 | break; |
| 144 | case "BasePriority": | 133 | case "BasePriority": |
| 145 | basePriority = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, short.MaxValue); | 134 | basePriority = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, short.MaxValue); |
| 146 | break; | 135 | break; |
| 147 | case "Journal": | 136 | case "Journal": |
| 148 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 137 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 149 | { | 138 | { |
| 150 | attributes |= (int)MqiMessageQueueAttributes.Journal; | 139 | attributes |= (int)MqiMessageQueueAttributes.Journal; |
| 151 | } | 140 | } |
| @@ -155,19 +144,19 @@ namespace WixToolset.Extensions | |||
| 155 | } | 144 | } |
| 156 | break; | 145 | break; |
| 157 | case "JournalQuota": | 146 | case "JournalQuota": |
| 158 | journalQuota = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue); | 147 | journalQuota = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue); |
| 159 | break; | 148 | break; |
| 160 | case "Label": | 149 | case "Label": |
| 161 | label = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 150 | label = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 162 | break; | 151 | break; |
| 163 | case "MulticastAddress": | 152 | case "MulticastAddress": |
| 164 | multicastAddress = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 153 | multicastAddress = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 165 | break; | 154 | break; |
| 166 | case "PathName": | 155 | case "PathName": |
| 167 | pathName = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 156 | pathName = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 168 | break; | 157 | break; |
| 169 | case "PrivLevel": | 158 | case "PrivLevel": |
| 170 | string privLevelAttr = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 159 | string privLevelAttr = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 171 | switch (privLevelAttr) | 160 | switch (privLevelAttr) |
| 172 | { | 161 | { |
| 173 | case "none": | 162 | case "none": |
| @@ -180,15 +169,15 @@ namespace WixToolset.Extensions | |||
| 180 | privLevel = (int)MqiMessageQueuePrivacyLevel.Body; | 169 | privLevel = (int)MqiMessageQueuePrivacyLevel.Body; |
| 181 | break; | 170 | break; |
| 182 | default: | 171 | default: |
| 183 | this.Core.OnMessage(WixErrors.IllegalAttributeValue(sourceLineNumbers, "MessageQueue", "PrivLevel", privLevelAttr, "none", "body", "optional")); | 172 | this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "MessageQueue", "PrivLevel", privLevelAttr, "none", "body", "optional")); |
| 184 | break; | 173 | break; |
| 185 | } | 174 | } |
| 186 | break; | 175 | break; |
| 187 | case "Quota": | 176 | case "Quota": |
| 188 | quota = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue); | 177 | quota = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue); |
| 189 | break; | 178 | break; |
| 190 | case "Transactional": | 179 | case "Transactional": |
| 191 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 180 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 192 | { | 181 | { |
| 193 | attributes |= (int)MqiMessageQueueAttributes.Transactional; | 182 | attributes |= (int)MqiMessageQueueAttributes.Transactional; |
| 194 | } | 183 | } |
| @@ -198,16 +187,16 @@ namespace WixToolset.Extensions | |||
| 198 | } | 187 | } |
| 199 | break; | 188 | break; |
| 200 | case "ServiceTypeGuid": | 189 | case "ServiceTypeGuid": |
| 201 | serviceTypeGuid = TryFormatGuidValue(this.Core.GetAttributeValue(sourceLineNumbers, attrib)); | 190 | serviceTypeGuid = this.TryFormatGuidValue(this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib)); |
| 202 | break; | 191 | break; |
| 203 | default: | 192 | default: |
| 204 | this.Core.UnexpectedAttribute(node, attrib); | 193 | this.ParseHelper.UnexpectedAttribute(node, attrib); |
| 205 | break; | 194 | break; |
| 206 | } | 195 | } |
| 207 | } | 196 | } |
| 208 | else | 197 | else |
| 209 | { | 198 | { |
| 210 | this.Core.ParseExtensionAttribute(node, attrib); | 199 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib); |
| 211 | } | 200 | } |
| 212 | } | 201 | } |
| 213 | 202 | ||
| @@ -218,46 +207,45 @@ namespace WixToolset.Extensions | |||
| 218 | switch (child.Name.LocalName) | 207 | switch (child.Name.LocalName) |
| 219 | { | 208 | { |
| 220 | case "MessageQueuePermission": | 209 | case "MessageQueuePermission": |
| 221 | this.ParseMessageQueuePermissionElement(child, componentId, id); | 210 | this.ParseMessageQueuePermissionElement(intermediate, section, child, componentId, id?.Id); |
| 222 | break; | 211 | break; |
| 223 | default: | 212 | default: |
| 224 | this.Core.UnexpectedElement(node, child); | 213 | this.ParseHelper.UnexpectedElement(node, child); |
| 225 | break; | 214 | break; |
| 226 | } | 215 | } |
| 227 | } | 216 | } |
| 228 | else | 217 | else |
| 229 | { | 218 | { |
| 230 | this.Core.ParseExtensionElement(node, child); | 219 | this.ParseHelper.ParseExtensionElement(this.Context.Extensions, intermediate, section, node, child); |
| 231 | } | 220 | } |
| 232 | } | 221 | } |
| 233 | 222 | ||
| 234 | Row row = this.Core.CreateRow(sourceLineNumbers, "MessageQueue"); | 223 | var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "MessageQueue", id); |
| 235 | row[0] = id; | 224 | row.Set(1, componentId); |
| 236 | row[1] = componentId; | ||
| 237 | if (CompilerConstants.IntegerNotSet != basePriority) | 225 | if (CompilerConstants.IntegerNotSet != basePriority) |
| 238 | { | 226 | { |
| 239 | row[2] = basePriority; | 227 | row.Set(2, basePriority); |
| 240 | } | 228 | } |
| 241 | if (CompilerConstants.IntegerNotSet != journalQuota) | 229 | if (CompilerConstants.IntegerNotSet != journalQuota) |
| 242 | { | 230 | { |
| 243 | row[3] = journalQuota; | 231 | row.Set(3, journalQuota); |
| 244 | } | 232 | } |
| 245 | row[4] = label; | 233 | row.Set(4, label); |
| 246 | row[5] = multicastAddress; | 234 | row.Set(5, multicastAddress); |
| 247 | row[6] = pathName; | 235 | row.Set(6, pathName); |
| 248 | if (CompilerConstants.IntegerNotSet != privLevel) | 236 | if (CompilerConstants.IntegerNotSet != privLevel) |
| 249 | { | 237 | { |
| 250 | row[7] = privLevel; | 238 | row.Set(7, privLevel); |
| 251 | } | 239 | } |
| 252 | if (CompilerConstants.IntegerNotSet != quota) | 240 | if (CompilerConstants.IntegerNotSet != quota) |
| 253 | { | 241 | { |
| 254 | row[8] = quota; | 242 | row.Set(8, quota); |
| 255 | } | 243 | } |
| 256 | row[9] = serviceTypeGuid; | 244 | row.Set(9, serviceTypeGuid); |
| 257 | row[10] = attributes; | 245 | row.Set(10, attributes); |
| 258 | 246 | ||
| 259 | this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "MessageQueuingInstall"); | 247 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "MessageQueuingInstall"); |
| 260 | this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", "MessageQueuingUninstall"); | 248 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "MessageQueuingUninstall"); |
| 261 | } | 249 | } |
| 262 | 250 | ||
| 263 | /// <summary> | 251 | /// <summary> |
| @@ -266,11 +254,11 @@ namespace WixToolset.Extensions | |||
| 266 | /// <param name="node">Element to parse.</param> | 254 | /// <param name="node">Element to parse.</param> |
| 267 | /// <param name="componentKey">Identifier of parent component.</param> | 255 | /// <param name="componentKey">Identifier of parent component.</param> |
| 268 | /// <param name="applicationKey">Optional identifier of parent message queue.</param> | 256 | /// <param name="applicationKey">Optional identifier of parent message queue.</param> |
| 269 | private void ParseMessageQueuePermissionElement(XElement node, string componentId, string messageQueueId) | 257 | private void ParseMessageQueuePermissionElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentId, string messageQueueId) |
| 270 | { | 258 | { |
| 271 | SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 259 | SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node); |
| 272 | 260 | ||
| 273 | string id = null; | 261 | Identifier id = null; |
| 274 | string user = null; | 262 | string user = null; |
| 275 | string group = null; | 263 | string group = null; |
| 276 | int permissions = 0; | 264 | int permissions = 0; |
| @@ -282,34 +270,34 @@ namespace WixToolset.Extensions | |||
| 282 | switch (attrib.Name.LocalName) | 270 | switch (attrib.Name.LocalName) |
| 283 | { | 271 | { |
| 284 | case "Id": | 272 | case "Id": |
| 285 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 273 | id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib); |
| 286 | break; | 274 | break; |
| 287 | case "MessageQueue": | 275 | case "MessageQueue": |
| 288 | if (null != messageQueueId) | 276 | if (null != messageQueueId) |
| 289 | { | 277 | { |
| 290 | this.Core.OnMessage(WixErrors.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName)); | 278 | this.Messaging.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName)); |
| 291 | } | 279 | } |
| 292 | messageQueueId = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 280 | messageQueueId = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 293 | this.Core.CreateSimpleReference(sourceLineNumbers, "MessageQueue", messageQueueId); | 281 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "MessageQueue", messageQueueId); |
| 294 | break; | 282 | break; |
| 295 | case "User": | 283 | case "User": |
| 296 | if (null != group) | 284 | if (null != group) |
| 297 | { | 285 | { |
| 298 | this.Core.OnMessage(WixErrors.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "User", "Group")); | 286 | this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "User", "Group")); |
| 299 | } | 287 | } |
| 300 | user = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 288 | user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 301 | this.Core.CreateSimpleReference(sourceLineNumbers, "User", user); | 289 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "User", user); |
| 302 | break; | 290 | break; |
| 303 | case "Group": | 291 | case "Group": |
| 304 | if (null != user) | 292 | if (null != user) |
| 305 | { | 293 | { |
| 306 | this.Core.OnMessage(WixErrors.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "Group", "User")); | 294 | this.Messaging.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "Group", "User")); |
| 307 | } | 295 | } |
| 308 | group = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 296 | group = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
| 309 | this.Core.CreateSimpleReference(sourceLineNumbers, "Group", group); | 297 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Group", group); |
| 310 | break; | 298 | break; |
| 311 | case "DeleteMessage": | 299 | case "DeleteMessage": |
| 312 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 300 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 313 | { | 301 | { |
| 314 | permissions |= (int)MqiMessageQueuePermission.DeleteMessage; | 302 | permissions |= (int)MqiMessageQueuePermission.DeleteMessage; |
| 315 | } | 303 | } |
| @@ -319,7 +307,7 @@ namespace WixToolset.Extensions | |||
| 319 | } | 307 | } |
| 320 | break; | 308 | break; |
| 321 | case "PeekMessage": | 309 | case "PeekMessage": |
| 322 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 310 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 323 | { | 311 | { |
| 324 | permissions |= (int)MqiMessageQueuePermission.PeekMessage; | 312 | permissions |= (int)MqiMessageQueuePermission.PeekMessage; |
| 325 | } | 313 | } |
| @@ -329,7 +317,7 @@ namespace WixToolset.Extensions | |||
| 329 | } | 317 | } |
| 330 | break; | 318 | break; |
| 331 | case "WriteMessage": | 319 | case "WriteMessage": |
| 332 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 320 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 333 | { | 321 | { |
| 334 | permissions |= (int)MqiMessageQueuePermission.WriteMessage; | 322 | permissions |= (int)MqiMessageQueuePermission.WriteMessage; |
| 335 | } | 323 | } |
| @@ -339,7 +327,7 @@ namespace WixToolset.Extensions | |||
| 339 | } | 327 | } |
| 340 | break; | 328 | break; |
| 341 | case "DeleteJournalMessage": | 329 | case "DeleteJournalMessage": |
| 342 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 330 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 343 | { | 331 | { |
| 344 | permissions |= (int)MqiMessageQueuePermission.DeleteJournalMessage; | 332 | permissions |= (int)MqiMessageQueuePermission.DeleteJournalMessage; |
| 345 | } | 333 | } |
| @@ -349,7 +337,7 @@ namespace WixToolset.Extensions | |||
| 349 | } | 337 | } |
| 350 | break; | 338 | break; |
| 351 | case "SetQueueProperties": | 339 | case "SetQueueProperties": |
| 352 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 340 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 353 | { | 341 | { |
| 354 | permissions |= (int)MqiMessageQueuePermission.SetQueueProperties; | 342 | permissions |= (int)MqiMessageQueuePermission.SetQueueProperties; |
| 355 | } | 343 | } |
| @@ -359,7 +347,7 @@ namespace WixToolset.Extensions | |||
| 359 | } | 347 | } |
| 360 | break; | 348 | break; |
| 361 | case "GetQueueProperties": | 349 | case "GetQueueProperties": |
| 362 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 350 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 363 | { | 351 | { |
| 364 | permissions |= (int)MqiMessageQueuePermission.GetQueueProperties; | 352 | permissions |= (int)MqiMessageQueuePermission.GetQueueProperties; |
| 365 | } | 353 | } |
| @@ -369,7 +357,7 @@ namespace WixToolset.Extensions | |||
| 369 | } | 357 | } |
| 370 | break; | 358 | break; |
| 371 | case "DeleteQueue": | 359 | case "DeleteQueue": |
| 372 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 360 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 373 | { | 361 | { |
| 374 | permissions |= (int)MqiMessageQueuePermission.DeleteQueue; | 362 | permissions |= (int)MqiMessageQueuePermission.DeleteQueue; |
| 375 | } | 363 | } |
| @@ -379,7 +367,7 @@ namespace WixToolset.Extensions | |||
| 379 | } | 367 | } |
| 380 | break; | 368 | break; |
| 381 | case "GetQueuePermissions": | 369 | case "GetQueuePermissions": |
| 382 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 370 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 383 | { | 371 | { |
| 384 | permissions |= (int)MqiMessageQueuePermission.GetQueuePermissions; | 372 | permissions |= (int)MqiMessageQueuePermission.GetQueuePermissions; |
| 385 | } | 373 | } |
| @@ -389,7 +377,7 @@ namespace WixToolset.Extensions | |||
| 389 | } | 377 | } |
| 390 | break; | 378 | break; |
| 391 | case "ChangeQueuePermissions": | 379 | case "ChangeQueuePermissions": |
| 392 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 380 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 393 | { | 381 | { |
| 394 | permissions |= (int)MqiMessageQueuePermission.ChangeQueuePermissions; | 382 | permissions |= (int)MqiMessageQueuePermission.ChangeQueuePermissions; |
| 395 | } | 383 | } |
| @@ -399,7 +387,7 @@ namespace WixToolset.Extensions | |||
| 399 | } | 387 | } |
| 400 | break; | 388 | break; |
| 401 | case "TakeQueueOwnership": | 389 | case "TakeQueueOwnership": |
| 402 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 390 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 403 | { | 391 | { |
| 404 | permissions |= (int)MqiMessageQueuePermission.TakeQueueOwnership; | 392 | permissions |= (int)MqiMessageQueuePermission.TakeQueueOwnership; |
| 405 | } | 393 | } |
| @@ -409,7 +397,7 @@ namespace WixToolset.Extensions | |||
| 409 | } | 397 | } |
| 410 | break; | 398 | break; |
| 411 | case "ReceiveMessage": | 399 | case "ReceiveMessage": |
| 412 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 400 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 413 | { | 401 | { |
| 414 | permissions |= (int)MqiMessageQueuePermission.ReceiveMessage; | 402 | permissions |= (int)MqiMessageQueuePermission.ReceiveMessage; |
| 415 | } | 403 | } |
| @@ -419,7 +407,7 @@ namespace WixToolset.Extensions | |||
| 419 | } | 407 | } |
| 420 | break; | 408 | break; |
| 421 | case "ReceiveJournalMessage": | 409 | case "ReceiveJournalMessage": |
| 422 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 410 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 423 | { | 411 | { |
| 424 | permissions |= (int)MqiMessageQueuePermission.ReceiveJournalMessage; | 412 | permissions |= (int)MqiMessageQueuePermission.ReceiveJournalMessage; |
| 425 | } | 413 | } |
| @@ -429,7 +417,7 @@ namespace WixToolset.Extensions | |||
| 429 | } | 417 | } |
| 430 | break; | 418 | break; |
| 431 | case "QueueGenericRead": | 419 | case "QueueGenericRead": |
| 432 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 420 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 433 | { | 421 | { |
| 434 | permissions |= (int)MqiMessageQueuePermission.QueueGenericRead; | 422 | permissions |= (int)MqiMessageQueuePermission.QueueGenericRead; |
| 435 | } | 423 | } |
| @@ -439,7 +427,7 @@ namespace WixToolset.Extensions | |||
| 439 | } | 427 | } |
| 440 | break; | 428 | break; |
| 441 | case "QueueGenericWrite": | 429 | case "QueueGenericWrite": |
| 442 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 430 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 443 | { | 431 | { |
| 444 | permissions |= (int)MqiMessageQueuePermission.QueueGenericWrite; | 432 | permissions |= (int)MqiMessageQueuePermission.QueueGenericWrite; |
| 445 | } | 433 | } |
| @@ -449,7 +437,7 @@ namespace WixToolset.Extensions | |||
| 449 | } | 437 | } |
| 450 | break; | 438 | break; |
| 451 | case "QueueGenericExecute": | 439 | case "QueueGenericExecute": |
| 452 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 440 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 453 | { | 441 | { |
| 454 | permissions |= (int)MqiMessageQueuePermission.QueueGenericExecute; | 442 | permissions |= (int)MqiMessageQueuePermission.QueueGenericExecute; |
| 455 | } | 443 | } |
| @@ -459,7 +447,7 @@ namespace WixToolset.Extensions | |||
| 459 | } | 447 | } |
| 460 | break; | 448 | break; |
| 461 | case "QueueGenericAll": | 449 | case "QueueGenericAll": |
| 462 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) | 450 | if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 463 | { | 451 | { |
| 464 | permissions |= (int)MqiMessageQueuePermission.QueueGenericAll; | 452 | permissions |= (int)MqiMessageQueuePermission.QueueGenericAll; |
| 465 | } | 453 | } |
| @@ -469,44 +457,42 @@ namespace WixToolset.Extensions | |||
| 469 | } | 457 | } |
| 470 | break; | 458 | break; |
| 471 | default: | 459 | default: |
| 472 | this.Core.UnexpectedAttribute(node, attrib); | 460 | this.ParseHelper.UnexpectedAttribute(node, attrib); |
| 473 | break; | 461 | break; |
| 474 | } | 462 | } |
| 475 | } | 463 | } |
| 476 | else | 464 | else |
| 477 | { | 465 | { |
| 478 | this.Core.ParseExtensionAttribute(node, attrib); | 466 | this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib); |
| 479 | } | 467 | } |
| 480 | } | 468 | } |
| 481 | 469 | ||
| 482 | if (null == messageQueueId) | 470 | if (null == messageQueueId) |
| 483 | { | 471 | { |
| 484 | this.Core.OnMessage(WixErrors.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "MessageQueue")); | 472 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "MessageQueue")); |
| 485 | } | 473 | } |
| 486 | if (null == user && null == group) | 474 | if (null == user && null == group) |
| 487 | { | 475 | { |
| 488 | this.Core.OnMessage(WixErrors.ExpectedAttributes(sourceLineNumbers, node.Name.LocalName, "User", "Group")); | 476 | this.Messaging.Write(ErrorMessages.ExpectedAttributes(sourceLineNumbers, node.Name.LocalName, "User", "Group")); |
| 489 | } | 477 | } |
| 490 | 478 | ||
| 491 | this.Core.ParseForExtensionElements(node); | 479 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, node); |
| 492 | 480 | ||
| 493 | if (null != user) | 481 | if (null != user) |
| 494 | { | 482 | { |
| 495 | Row row = this.Core.CreateRow(sourceLineNumbers, "MessageQueueUserPermission"); | 483 | var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "MessageQueueUserPermission", id); |
| 496 | row[0] = id; | 484 | row.Set(1, componentId); |
| 497 | row[1] = componentId; | 485 | row.Set(2, messageQueueId); |
| 498 | row[2] = messageQueueId; | 486 | row.Set(3, user); |
| 499 | row[3] = user; | 487 | row.Set(4, permissions); |
| 500 | row[4] = permissions; | ||
| 501 | } | 488 | } |
| 502 | if (null != group) | 489 | if (null != group) |
| 503 | { | 490 | { |
| 504 | Row row = this.Core.CreateRow(sourceLineNumbers, "MessageQueueGroupPermission"); | 491 | var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "MessageQueueGroupPermission", id); |
| 505 | row[0] = id; | 492 | row.Set(1, componentId); |
| 506 | row[1] = componentId; | 493 | row.Set(2, messageQueueId); |
| 507 | row[2] = messageQueueId; | 494 | row.Set(3, group); |
| 508 | row[3] = group; | 495 | row.Set(4, permissions); |
| 509 | row[4] = permissions; | ||
| 510 | } | 496 | } |
| 511 | } | 497 | } |
| 512 | 498 | ||
