Camel SE PO Router Example

Using the Open ESB and Camel SE to do message content-based-routing and use a wire-tap for logging requests and responses.

I. Design Time

I-A. The big picture (when an order’s total price exceeds 500, insert a record into a database, otherwise write a file)

This shows the flow of orders through Open ESB and the Camel SE which is configured to implement the content-based-routing and wire-tap Enterprise Integration Patterns (EIPs).

Everything in this picture is provisioned by deploying an Open ESB Composite Application “PORouterCompApp” (deploy a JBI Service Assembly archive)

(after installing the JBI Camel SE installation archive)

I-B. The Service Assembly

As shown in the “Composite Application Service Assembly” editor

Note that there are extra SOAP endpoints configured to allow direct testing of the two BPEL processes without going through the Camel SE.

I-C. The Apache Camel “Fluent” Builder Java DSL content-based-routing Logic

Note the use of namespace-aware XPath expression to check the order amount

Also note the use of beans/POJOs to log requests/responses on each possible path.

(similar to the wire-tap EIP)

I-D. For order totals greater than 500.00
I-D1. the BPEL process (map, send to Database BC)

Either a SOAP client (via the HTTP BC) or the Camel SE sends a message to this process.

This process sends a message to the Database BC.

I-D2. mapper (for DB-related schema)

Takes data from an order message and creates a message to be written to the database.

I-E. for orders less than or equal to 500.00
I-E1. the BPEL process (map, send to File BC)

Either a SOAP client (via the HTTP BC) or the Camel SE sends a message to this process.

This process sends a message to the File BC.

I-E2. the mapper (for File related Schema)

Takes data from an order message and creates a message to be written to a file.

II. Runtime

II-A Use-Case 1: order total exceeds 500

PORouterCompApp>Test>Soap2Camel2BpelDbTestCase1

II-A1. Request logged by POJO 1
II-A2. Database after BPEL SE mapping and Database BC insert
II-A3. Result logged by POJO 1
II-B. Use-Case 2: Order total less than or equal to 500

PORouterCompApp>Test>Soap2Camel2BpelFileTestCase1

II-B1. Request logged by POJO 2
II-B2. New file created after BPEL SE mapping and File BC write
II-B3. Result logged by POJO 2

Updated by: admin on: October 23, 2008

Leave a Comment

You must be logged in to post a comment.