Sample 354: Using In-Lined Ruby Scripts for Mediation
Objective: Script mediators using Ruby (In-lined Ruby Script)
<!-- Using In-lined Ruby scripts for mediation --> <definitions xmlns="http://ws.apache.org/ns/synapse"> <in> <script language="rb"> <![CDATA[ require 'rexml/document' include REXML newRequest= Document.new '<m:getQuote xmlns:m="http://services.samples/xsd"><m:request><m:symbol>...test...</m:symbol></m:request></m:getQuote>' newRequest.root.elements[1].elements[1].text = $mc.getPayloadXML().root.elements[1].get_text $mc.setPayloadXML(newRequest) ]]> </script> <send> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> </endpoint> </send> </in> <out> <script language="rb"> <![CDATA[ require 'rexml/document' include REXML newResponse = Document.new '<m:CheckPriceResponse xmlns:m="http://services.samples/xsd"><m:Code></m:Code><m:Price></m:Price></m:CheckPriceResponse>' newResponse.root.elements[1].text = $mc.getPayloadXML().root.elements[1].elements[1].get_text newResponse.root.elements[2].text = $mc.getPayloadXML().root.elements[1].elements[2].get_text $mc.setPayloadXML(newResponse) ]]> </script> <send/> </out> </definitions>
Prerequisites:
- This sample uses Ruby so first setup support for this in ESB as described at Configuring JRuby.
- Start the Synapse configuration numbered 354: i.e. wso2esb-samples -sn 354
- Start the Axis2 server and deploy the SimpleStockQuoteService if not already done
This sample is functionally equivalent to Sample 353.
Run the client with
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dmode=customquote
Database Interactions in Mediation (DBLookup / DBReport)
Following database mediators use Derby in a client/server configuration by using the network server. Therefore, to proceed with the following samples, you need a working Derby database server and you have to follow the steps in Sample Setup Guide before going through the samples.