Table of Contents |
---|
Introduction
This sample introduces the concept of tasks and demonstrates how a simple trigger works. Here the MessageInjector
class is used, which injects a specified message to the ESB environment. You can write your own task class implementing the org.apache.synapse.startup.Task
interface and implement the execute
method to run the task.
Prerequisites
For a list of prerequisites, see Prerequisites to Start the ESB Samples.
Building the sample
The XML configuration for this sample is as follows:
Code Block | ||||
---|---|---|---|---|
| ||||
<definitions xmlns="http://ws.apache.org/ns/synapse"> <task class="org.apache.synapse.startup.tasks.MessageInjector" name="CheckPrice"> <property name="to" value="http://localhost:9000/soapservices/SimpleStockQuoteService"/> <property name="soapAction" value="urn:getQuote"/> <property name="message"> <m0:getQuote xmlns:m0="http://services.samples/xsd" xmlns="http://ws.apache.org/ns/synapse"> <m0:request> <m0:symbol>IBM</m0:symbol> </m0:request> </m0:getQuote> </property> <trigger interval="50005"/> </task> <sequence name="main"> <in> <send/> </in> <out> <log level="custom"> <property name="Stock _Quote _on" expression="//ns:return/nsax21:lastTradeTimestamp/child::text()" xmlns:nsax21="http://services.samples/xsd" xmlns:ns="http://services.samples"/> <property name="For _the _organization" expression="//ns:return/nsax21:name/child::text()" xmlns:nsax21="http://services.samples/xsd" xmlns:ns="http://services.samples"/> <property name="Last _Value" expression="//ns:return/nsax21:last/child::text()" xmlns:nsax21="http://services.samples/xsd" xmlns:ns="http://services.samples"/> </log> </out> </sequence> </definitions> |
Objective:
Introduce the concept of tasks and how simple trigger works.
Prerequisites:
You will need access to build the SimpleStockQuoteService
as mentioned above and start the sample axis2 server before staring ESB.
...
This configuration file synapse_sample_300.xml
is available in the <ESB_HOME>/repository/samples
directory.
To build the sample
Build and deploy the back-end service SimpleStockQuoteService. For instructions on deploying sample back-end services, see Deploying sample back-end services.
Start the Axis2 server. For instructions on starting the Axis2 server, see Starting the Axis2 server.
Executing the sample
- Start the ESB with the sample 300 configuration. For instructions on starting a sample ESB configuration, see Starting the ESB with a sample configuration.
The synapse_sample_300.xml
configuration adds a scheduled task to the ESB runtime so that when you start the ESB, this task will run periodically in every 5 second intervalsseconds. You could can limit the number of times that you want the task to run this task by adding a count
attribute with an integer as the value
, if . If the count is not present as in this sample this , the task will run forever.
One can write his own task class implementing the org.apache.synapse.startup.Task
interface and implementing the execute method to do the task. For this particular sample, we have used the MessageInjector
, which just injects a message specified in to the ESB environment.
...
hidden | true |
---|
...
Analyzing the output
You will see that the Axis2 server generates a quote every 5 seconds and that the ESB receives the stock quote response. This is because the injected message is sent to the sample Axis2 server, which sends back a response to the ESB.