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 | ||