<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:azure-service-bus-messaging="http://www.mulesoft.org/schema/mule/azure-service-bus-messaging" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/azure-service-bus-messaging http://www.mulesoft.org/schema/mule/azure-service-bus-messaging/current/mule-azure-service-bus-messaging.xsd">
<configuration-properties file="mule-app.properties" doc:name="Configuration properties"/>
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="290d1aa8-2e61-4707-8f04-65f0e5e4cf07" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<azure-service-bus-messaging:config name="Azure_Service_Bus_Messaging_Connector_Config" doc:name="Azure Service Bus Messaging Connector Config" doc:id="71d0e711-6d29-4eff-b640-00986a41dfbc" >
<azure-service-bus-messaging:sas-connection namespace="${azure.namespace}" sharedAccessKeyName="${azure.keyname}" sharedAccessKey="${azure.key}" />
</azure-service-bus-messaging:config>
<flow name="send-batch-flow" doc:id="2c8bce62-f192-4db2-9c70-792a5e78ac7f" >
<http:listener doc:name="Send Message Endpoint" doc:id="aa79c404-2e41-4453-9fde-18b8ea74c805" config-ref="HTTP_Listener_config" path="/sendBatch" />
<ee:transform doc:name="Messages with Json Bodies and Properties" doc:id="1f28f155-28c8-4feb-834c-0e790cac7a53" >
<ee:message >
</ee:message>
<ee:variables >
<ee:set-variable variableName="messages" ><![CDATA[%dw 2.0
output application/java
---
[{
body: "{\"key1\":\"value1\",\"key2\":\"otherValue1\"}" as Binary,
messageId: "messageId1",
sendCorrelationStrategy: "AUTO",
correlationId: "correlation1",
contentType: "application/json",
replyToSessionId: "replyToSessionId1",
label: "label_msg1",
partitionKey: "the_partition_key1",
timeToLive: 240,
timeToLiveTimeUnit: "SECONDS",
zoneId: "America/Buenos_Aires",
scheduledEnqueueTimeUtc: "2018-12-09-00-0800" as LocalDateTime {format: "yyyy-MM-dd-HHZZZ"},
properties: {
property1: "value1",
property2: "value2"
},
},
{
body: "{\"key1\":\"value2\",\"key2\":\"otherValue2\"}" as Binary,
messageId: "messageId2",
sendCorrelationStrategy: "AUTO",
correlationId: "correlation2",
contentType: "application/json",
replyToSessionId: "replyToSessionId2",
label: "label_msg2",
partitionKey: "the_partition_key2",
timeToLive: 240,
timeToLiveTimeUnit: "SECONDS",
zoneId: "America/Buenos_Aires",
scheduledEnqueueTimeUtc: "2018-12-09-00-0800" as LocalDateTime {format: "yyyy-MM-dd-HHZZZ"},
properties: {
property1: "value1",
property2: "value2"
},
},
{
body: "{\"key1\":\"value3\",\"key2\":\"otherValue3\"}" as Binary,
messageId: "messageId3",
sendCorrelationStrategy: "AUTO",
correlationId: "correlation3",
contentType: "application/json",
replyToSessionId: "replyToSessionId3",
label: "label_msg3",
partitionKey: "the_partition_key3",
timeToLive: 240,
timeToLiveTimeUnit: "SECONDS",
zoneId: "America/Buenos_Aires",
scheduledEnqueueTimeUtc: "2018-12-09-00-0800" as LocalDateTime {format: "yyyy-MM-dd-HHZZZ"},
properties: {
property1: "value1",
property2: "value2"
},
}]]]></ee:set-variable>
</ee:variables>
</ee:transform>
<azure-service-bus-messaging:send-message-batch destinationName="${queue.name}" doc:name="Send batch of messages" doc:id="799d9ba3-68a9-4ef7-b518-6a715429b2a7" config-ref="Azure_Service_Bus_Messaging_Connector_Config">
<azure-service-bus-messaging:messages ><![CDATA[#[vars.messages]]]></azure-service-bus-messaging:messages>
</azure-service-bus-messaging:send-message-batch>
<set-payload value='#[%dw 2.0
output application/json
---
{
result: "Messages sent!"
}]' doc:name="Set Payload" doc:id="c8b39b61-fa84-496d-b92c-e970a1a44003" />
</flow>
<flow name="queue-receiver-flow" doc:id="9b39aaa5-e81f-4257-b65e-d4f48c8ef2d8" >
<http:listener doc:name="Receive Batch From Queue" doc:id="386337a0-99c9-45cf-a81f-95d5e06f0b74" config-ref="HTTP_Listener_config" path="/receiveBatch"/>
<azure-service-bus-messaging:receive-batch doc:name="Receive Batch" doc:id="ee30123a-cc9f-4e08-a2e9-c41aede3923f" config-ref="Azure_Service_Bus_Messaging_Connector_Config" maxMessageCount="3" destinationName="${queue.name}"/>
<foreach doc:name="For Each" doc:id="16a42925-3142-48c7-9973-f951029af5fa" >
<logger level="INFO" doc:name="Logger" doc:id="a5bfc3c6-2335-4c4e-845e-a67cf990a510" message='#["Received message number " ++ vars.counter]'/>
<ee:transform doc:name="Attributes to Json" doc:id="a509a361-4bd7-4c6e-81cc-39ad36e7b625">
<ee:message>
</ee:message>
<ee:variables>
<ee:set-variable variableName="jsonAttributes"><![CDATA[%dw 2.0
output application/json
---
attributes]]></ee:set-variable>
</ee:variables>
</ee:transform>
<logger level="INFO" doc:name="Log Attributes" doc:id="94e7254c-a197-4fa2-b437-b64719acb23d" message="#[vars.jsonAttributes]" />
<logger level="INFO" doc:name="Log the message body" doc:id="d802b081-f3fc-4ec2-a23c-96bc0db3863c" message="#[%dw 2.0
output application/json
---
payload]" />
</foreach>
</flow>
</mule>