Skip to content

Instantly share code, notes, and snippets.

View adrianhsieh's full-sized avatar

Adrian Hsieh adrianhsieh

  • Adaptive Connections
View GitHub Profile
@adrianhsieh
adrianhsieh / vm-requester-module
Created May 5, 2015 06:21
vm-requester-module
<poll doc:name="Poll">
<schedulers:cron-scheduler expression="0 0 * * * *"/>
<mulerequester:request-collection config-ref="Mule_Requester" resource="vm://vm.batch.path" doc:name="Mule Requester"/>
</poll>
@adrianhsieh
adrianhsieh / vm_outbound
Created May 5, 2015 05:49
Simple vm outbound
<vm:outbound-endpoint exchange-pattern="one-way" path="vm.batch.path" doc:name="VM"/>
@adrianhsieh
adrianhsieh / sample-remedy-connector-usage
Created May 3, 2015 05:56
Sample code of using the MuleSoft BMC Remedy Connector
<enricher doc:name="Message Enricher" source="#[payload]" target="#[flowVars['itsm-event-data']]">
<remedy:get-single username="${remedy.read.username}" password="${remedy.read.password}" config-ref="RemedyConnection" id="#[message.outboundProperties['remedy_event_id']]" type="${remedy.outbound.table}" idBased="#[true]" doc:name="get-event-details"/>
</enricher>
<set-payload value="#[message.outboundProperties['remedy_form_id']]" doc:name="Set Payload"/>
<choice doc:name="Choice">
<when expression="#[message.outboundProperties['remedy_form'] == '${helpdesk.form}']">
<remedy:query username="${remedy.read.username}" password="${remedy.read.password}" config-ref="RemedyConnection" query="('Incident Number' = &quot;#[payload]&quot;)" type="${helpdesk.form}" idBased="#[true]" doc:name="query-helpdesk-form"/>
<set-payload value="#[payload.get(0)]" doc:name="Get first entry"/>
</when>
<otherwise>
@adrianhsieh
adrianhsieh / mule-request-reply-demo
Created April 30, 2015 02:51
A small, simple demo app to illustrate how to use async, VM, & request-reply to split out collections for parallel processing then aggregate them
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.6.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.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/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
@adrianhsieh
adrianhsieh / bean.xml
Created April 16, 2015 06:31
spring bean for queue counter
<spring:bean id="queue-counter" name="queue-counter" class="org.mule.api.jms.extension.CurrentQueueSize">
<spring:property name="port1" value="${jms.port1}"/>
<spring:property name="host1" value="${jms.host1}"/>
<spring:property name="port2" value="${jms.port2}"/>
<spring:property name="host2" value="${jms.host2}"/>
</spring:bean>
<enricher doc:name="Message Enricher">
<component doc:name="queue-counter">
<spring-object bean="queue-counter"/>
</component>
<enrich source="#[payload['${r2s.dlq}']]" target="#[flowVars['dlq-size']]"/>
<enrich source="#[payload['${r2s.queue}']]" target="#[flowVars['queue-size']]"/>
</enricher>
@adrianhsieh
adrianhsieh / CurrentQueueSize.java
Created April 16, 2015 05:58
Custom Mule Component with QueueBrowser
package org.mule.api.jms.extension;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import javax.jms.ConnectionFactory;
import javax.jms.Message;
import javax.jms.QueueBrowser;
@adrianhsieh
adrianhsieh / idempotent.xml
Created April 3, 2015 06:47
idempotent filter configuration
<idempotent-message-filter idExpression="#[message.inboundProperties['http.request.path']+message.payload]" doc:name="Idempotent Message">
<in-memory-store entryTTL="120000" expirationInterval="1800000"/>
</idempotent-message-filter>
@adrianhsieh
adrianhsieh / sfdc-iterate-demo.xml
Created September 23, 2014 16:30
sfdc-connector iterating using standard message processors
<sub-flow name="generic-iterate-to-list" doc:name="generic-iterate-to-list">
<collection-splitter doc:name="Collection Splitter"/>
<logger message="#[payload]" level="DEBUG" doc:name="debug-logger"/>
<collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/>
</sub-flow>
<flow name="sfdc-mt-blog-demoFlow2" doc:name="sfdc-mt-blog-demoFlow2">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP" path="test2"/>
<sfdc:query config-ref="Salesforce" query="Select Id, Account.Name, Name, Type, CloseDate From Opportunity" username="${sfdc.user1}" password="${sfdc.pass1}" securityToken="${sfdc.token1}" doc:name="query-opportunity"/>
<flow-ref name="generic-iterate-to-list" doc:name="generic-iterate-to-list"/>
<logger message="Post process payload #[payload]" level="INFO" doc:name="post-process"/>
<flow name="jms-demo-receiverFlow1" doc:name="jms-demo-receiverFlow1">
<jms:inbound-endpoint queue="blog-demo" connector-ref="Active_MQ" doc:name="JMS"/>
<logger level="INFO" doc:name="Logger"/>
</flow>