Sample 15: Message Copying and Content Enriching with Enrich Mediator
<definitions xmlns="http://synapse.apache.org/ns/2010/04/configuration">
<sequence name="main">
<in>
<enrich>
<source type="custom"
xpath="//m0:getQuote/m0:request/m0:symbol/text()"
xmlns:m0="http://services.samples"/>
<target type="property" property="ORIGINAL_REQ"/>
</enrich>
<enrich>
<source type="body"/>
<target type="property" property="REQUEST_PAYLOAD"/>
</enrich>
<enrich>
<source type="inline" key="init_req"/>
<target xmlns:m0="http://services.samples"
xpath="//m0:getQuote/m0:request/m0:symbol/text()"/>
</enrich>
<send>
<endpoint>
<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
</endpoint>
</send>
<drop/>
</in>
<out>
<header xmlns:urn="http://synapse.apache.org" name="urn:lastTradeTimestamp" value="foo"/>
<enrich>
<source type="custom"
xpath="//ns:getQuoteResponse/ns:return/ax21:lastTradeTimestamp"
xmlns:ns="http://services.samples"
xmlns:ax21="http://services.samples/xsd"/>
<target xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="http://synapse.apache.org"
xpath="/soapenv:Envelope/soapenv:Header/urn:lastTradeTimestamp"/>
</enrich>
<log level="full"/>
<log>
<property name="Original Request Symbol" expression="get-property('ORIGINAL_REQ')"/>
<property name="Request Payload" expression="get-property('REQUEST_PAYLOAD')"/>
</log>
<send/>
</out>
</sequence>
<localEntry key="init_req">MSFT</localEntry>
<localEntry key="price_req">
<m0:symbol xmlns:m0="http://services.samples">MSFT</m0:symbol>
</localEntry>
</definitions>
Objective
Objective: Introduction to Message Copying and Content Enriching with Enrich Mediator
Pre-requisites
-
Start the Synapse configuration numbered 15: i.e. synapse -sample 15
-
Start the Axis2 server and deploy the SimpleStockQuoteService if
not already done
Executing the Client
Execute the client as follows.
ant stockquote -Dtrpurl=http://localhost:8280/services/StockQuote
This sample demonstrate the various capabilities of Enrich Mediator. Inside the in-sequence we store/copy different
parts of the message to properties and just before sending the message to the StockQuoteService, we modify the
request value based on the local entry value-init_req. Then in the out-sequence, the enrich mediator is used
to enrich a soap header based on the 'lastTradeTimestamp' value of the response.
Back to Catalog