Versions Compared

Key

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

...

Code Block
languagehtml/xml
linenumberstrue
<definitions xmlns="http://ws.apache.org/ns/synapse">
	<!-- Proxy for normal message flow -->
    <taskManager provider="org.wso2.carbon.mediation.ntask.NTaskTaskManager"/>
	<proxy name="ServiceProxy" transports="https http" startOnLoad="true" trace="disable">
		<target inSequence="sendSeq"/>
	</proxy>
	
	<!-- Normal flow of the messages -->
	<sequence name="sendSeq">
		<send receive="receiveSeq">
			<endpoint>
				<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
			</endpoint>
		</send>
	</sequence>

	<!-- Fault sequence handles failures -->
   <sequence name="fault">
      <log level="full">
         <property name="MESSAGE" value="Executing default 'fault' sequence"/>
         <property xmlns:ns="http://org.apache.synapse/xsd"
                   name="ERROR_CODE"
                   expression="get-property('ERROR_CODE')"/>
         <property xmlns:ns="http://org.apache.synapse/xsd"
                   name="ERROR_MESSAGE"
                   expression="get-property('ERROR_MESSAGE')"/>
      </log>

		<!-- Filter the failed Test Messages -->
		<filter xmlns:ns="http://org.apache.synapse/xsd"
              xmlns:m0="http://services.samples"
              source="//m0:getQuote/m0:request/m0:symbol"
              regex="TEST">
			<then>
				<log>
					<property name="FAILURE" value="*** Test Message Failed ***"/>
					<property name="FAILED SERVICE" value="*** localhost:9000/services/SimpleStockQuoteService ***"/>
				</log>
			</then>
			<else/>
		</filter>
		<drop/>
	</sequence>

	<!-- Receiving messages from service -->
	<sequence name="receiveSeq">
		<log/>
		<!-- Filter the Test Messages -->
		<filter xmlns:ax21="http://services.samples/xsd"
				xmlns:ns="http://org.apache.synapse/xsd"
				source="//ax21:symbol"
				regex="TEST">
		<then>
			<log>
               <property name="TEST PASSED" value="*** Test Message Passed ***"/>
               <property name="TESTED SERVICE" value="*** localhost:9000/services/SimpleStockQuoteService ***"/>
            </log>
            <drop/>
         </then>
         <else>
            <send/>
         </else>
		</filter>
	</sequence>
	
<!-- main sequence used as the test Message injector -->
	<sequence name="main">
      <in>
         <sequence key="sendSeq"/>
      </in>
      <out>
         <send/>
      </out>      
   </sequence>

	<!-- Task Scheduler act as Test data generator -->
	<task name="Testing"
		class="org.apache.synapse.startup.tasks.MessageInjector"
		group="synapse.simple.quartz">
		
		<!-- Interval between generating test messages, Cron Expression are also allowed to use -->      
		<trigger interval="25"/>
      
		<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
			<m0:getQuote xmlns:m0="http://services.samples">
            <m0:request>
               <m0:symbol>TEST</m0:symbol>
            </m0:request>
			</m0:getQuote>
		</property>
		<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
                name="soapAction"
                value="urn:getQuote"/>
		<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
                name="to"
                value="http://localhost:9000/services/SimpleStockQuoteService"/>
	</task>
</definitions>

...

  • sequence [line 8 in ESB config] -  The sequence with key sendSeq defines the endpoint where messages will be sent and defines the sequence (receiveSeq) that will receive responses. 
  • fault sequence [line 17 in ESB config] - The fault sequence provides a channel for handling faults. 
  • filter [line 29 in ESB config] - A filter mediator is used within the fault sequence to determine whether the symbol property of the message passing through this filter contains TEST. If it does, it will be logged, and no fault message is passed onto the requesting client. If TEST does not exist, a fault message is passed as usual. 
  • sequence [line 66 68 in ESB config] - This is the main sequence invoked by default when a request is made to the ESB. This sequence calls the sendSeq sequence (line 8 in ESB config).
  • task [line 76 78 in ESB config] - A task in the ESB runs periodically based on a given timer. This timer is specified using the trigger element. In this case, the task is set to run every 25 seconds. This task uses the Synapse MessageInjector class to inject a message into the Synapse environment. 
  • property [line 83 85 in ESB config] - This property, defined inside the task, specifies the message body. 
  • property [line 90 92 in ESB config] - This property, defined inside the task, sets the SOAP Action to getQuote.
  • property [line 93 95 in ESB config] - This property, defined inside the task, specifies the address where the message generated by the task is sent.