Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This section explains, through an example scenario, how the Content Enricher EIP can be implemented using the ESB profile of WSO2 ESBEI. The following topics are covered:

Table of Contents

...

This example scenario depicts a stock quote service. The client sends a stock quote request to the ESB with only an identity number. But in order to provide a stock quote, the sample Axis2 server at the back-end needs to map the identity number with a corresponding name, which is in an external source. The values are stored in the registry as a local entry. When the request arrives, the identity will be analyzed using the Switch mediator. Sequentially, the identity number will be replaced with the local entry using the Enrich mediator.

The diagram below depicts how to simulate the example scenario using the ESB profile of WSO2 ESBEI.

Figure 2: Example Scenario of the Content Enricher EIP

...

 

Content Enricher EIP (Figure 1)Content Enricher Example Scenario (Figure 2)
Basic MessageStock Quote Request from Stock Quote Client
EnricherEnrich Mediator
ResourceLocal Registry
Enriched MessageEnriched Stock Quote Request from the ESB profile of WSO2 ESBEI

Environment setup

  1. Download and install WSO2
  2. ESB from http://wso2.com/products/enterprise-service-bus.
  3. Enterprise Integrator. For a list of prerequisites and step-by-step installation instructions,
  4. refer to
  5. see the the ESB profile of WSO2 EI Installation Guide
  6. in the WSO2 ESB documentation
  7. .
  8. Start
  9. the sample
  10. two Sample Axis2 server instances on ports 9000 and 9002. For instructions,
  11. refer to the section 
  12. see Setting Up the
  13. ESB Samples
  14. Service Bus Samples - Starting the Axis2 server
  15.  in the WSO2 ESB documentation
  16. .
ESB

Service bus configuration

Start the Integration Profile of the ESB

server

profile of WSO2 EI and log into its management console UI (https: //localhost:9443/carbon). In the management console, navigate to the Main menu and click Source View in the Service Bus section . Next, copy and paste the following configuration, which helps you explore the example scenario, to the source view.   

Anchor
step3
step3

Code Block
languagehtml/xml
linenumberstrue
<!-- Content Enricher -->
<definitions xmlns="http://ws.apache.org/ns/synapse">
     <proxy name="ContentEnrichProxy">
        <target>    
        <inSequence>
            <!-- Would Enrich the Value Based On the Number -->
                  <switch source="//m1:symbol" xmlns:m0="http://services.samples" xmlns:m1="http://services.samples/xsd">
                <case regex="1">
                     <log level="full" />
                      <enrich>
                        <source type="inline" key="Location1"/>
                        <target xmlns:m1="http://services.samples/xsd" xpath="//m1:symbol/text()"/>
                                   </enrich>
                 </case>
                 <case regex="2">
                     <enrich>
                        <source type="inline" key="Location2"/>
                        <target xmlns:m1="http://services.samples/xsd" xpath="//m1:symbol/text()"/>
                                   </enrich>
                 </case>
                </switch>
                  <!--Will Send the Enriched Message -->
                  <send>
                    <endpoint>
                       <address uri="http://localhost:9000/services/SimpleStockQuoteService" />
                    </endpoint>
                  </send> 
                <!--  <drop />    -->                   
        </inSequence>
        <outSequence>
                <send />
        </outSequence>    
      </target> 
    <publishWSDL uri="file:repositorysamples/samplesservice-bus/resources/proxy/sample_proxy_1.wsdl"/>
    </proxy>
    <localEntry key="Location1">IBM</localEntry>
    <localEntry key="Location2">WSO2</localEntry>    
</definitions>

...

Send the following request to the ESB profile of WSO2 EI using a SOAP client like SoapUI

...

Let's investigate the elements of the ESB configuration in detail. The line numbers below are mapped with the ESB configuration shown above.

  • enrich [line 10 in ESB config] - Mediator used for message enrichment. 
  • source [line 11 in ESB config] - The location in which you can find the source configuration. In this example, it is a simple inline text string located in the local registry entry with key Location1
  • target  [line 12 in ESB config] - The location where the source configuration should be applied. This is specified using an XPath expression. 
  • localEntry [lines 36 and 37 in ESB config] - Entries from the local registry