Skip to content

Instantly share code, notes, and snippets.

@cgorshing
Last active April 25, 2017 07:17
Show Gist options
  • Save cgorshing/8407331 to your computer and use it in GitHub Desktop.
Save cgorshing/8407331 to your computer and use it in GitHub Desktop.
Mule Examples
<expression-component>
payload.Address1 = app.registry.encryption.decrypt(payload.Address1)
</expression-component>
<scripting:component>
<scripting:script engine="groovy" file="scripts/create-player-request-transformer.groovy"/>
</scripting:component>
<expression-component>
Runtime.getRuntime().exec("C:\\myfile.exe arg1 " + message.correlationId);
</expression-component>
//When multiple lines, use a semicolon
<expression-component>
payload['Contact_Email__c'] = payload.playerKarmaEmailC?.value;
payload['Contact_First_Name__c'] = payload.playerFirstNameC?.value;
payload['Contact_Last_Name__c'] = payload.playerLastNameC?.value;
payload['Player_Id__c'] = payload.playerIDC?.value;
payload['Level'] = payload.lod4LevelC?.value;
</expression-component>
<scripting:component>
<scripting:script engine="groovy">
[
[
lod4__XID__c: "a0df0000001P152_PropertyCode1",
lod4__PropertyCode__c: "PropertyCode1",
Name: "PropertyCode1",
lod4__Site__c: "a0df0000001P152"
]
]
</scripting:script>
</scripting:component>
<enricher target="#[variable:SFDC_OBJECT_ID_MAPPING]">
<flow-ref name="reservation-service-query"/>
</enricher>
I've not validated these work.
<scripting:component>
<scripting:script engine="groovy">
muleContext.registry.lookupFlowConstruct('targetFlow').start()
</scripting:script>
</scripting:component>
-- or --
<expression-component>
app.registry.flow1.start();
</expression-component>
If the variable has not been set the "." notation will throw an exception. So typically _always_ use flowVars['outboundJmsQueue']
<when expression="org.mule.util.StringUtils.isNotEmpty(sessionVars['outboundJmsQueue'])">
<!-- It is set, so do something -->
</when>
<when expression="org.mule.util.StringUtils.isNotEmpty(flowVars['outboundJmsQueue'])">
<!-- It is set, so do something -->
</when>
#[message.inboundProperties['MULE_CORRELATION_ID']]
<custom-transformer name="soapFaultTransformer" class="com.xxx.xx.transformer.VelocityMessageTransformer">
<spring:property name="velocityEngine" ref="velocityEngine" />
<spring:property name="templateName" value="soapFault.vm" />
<spring:property name="beanClass">
<spring:bean parent="abstractSoap11Fault">
<spring:property name="faultString" value="Invalid Request" />
<spring:property name="detail" value="This request is not valid" />
</spring:bean>
</spring:property>
</custom-transformer>
<!-- Different ways I came up with to split the payload based on return characters -->
<!--<expression-transformer>-->
<!--StringUtils.split(payload, "\n")-->
<!--</expression-transformer>-->
<!--<splitter expression="#[groovy:payload.split('[\n\r]+')]"/>-->
<splitter expression="#[groovy:payload.readLines()]" doc:name="Splitter"/>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment