This is first of the series Enterprise Integration Patterns with OpenESB where we will cover Enterprise Integration Patterns using OpenESB.
According to Enterprise Integration Patterns,
The Content-Based Router examines the message content and routes the message onto a different channel based on data contained in the message. The routing can be based on a number of criteria such as existence of fields, specific field values etc. When implementing a Content-Based Router, special caution should be taken to make the routing function easy to maintain as the router can become a point of frequent maintenance. In more sophisticated integration scenarios, the Content-Based Router can take on the form of a configurable rules engine that computes the destination channel based on a set of configurable rules.
It can be achieved in OpenESB using “If” component.
In this example it simply checks for the value in “num:operation” element.
<soapenv:Envelope xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:num="http://xml.aurorite.com/schema/NumberOperationSchema"> <soapenv:Body> <num:OperationRequest> <num:operation>ADDITION</num:operation> <num:data> <num:number1>20</num:number1> <num:number2>30</num:number2> </num:data> </num:OperationRequest> </soapenv:Body> </soapenv:Envelope>
Pingback: Enterprise Integration Patterns with OpenESB | Just Thoughts