The Sequence Mediator refers to an already defined sequence element, which is used to invoke a named sequence of mediators. This is useful when you need to use a particular set on mediators in a given order repeatedly.
You can alternatively select a predefined sequence from the Registry as the in/out/fault sequence for a proxy service or a REST service without adding any mediator configurations inline. The difference between these two options are described in the table below.
|Attribute||Picking a predefined sequence as in/out/fault sequence||Referring to a predefined sequence via the Sequence mediator|
|Adding other mediators||Other mediator configurations that are not already included in the predefined sequence cannot be added to the in/out/fault sequence.||Other mediator configurations that are not already included in the predefined sequence can be added to the in/out/fault sequence|
|Applying changes done to the predefined sequence||Any changes done to the sequence saved in the Registry after it was selected as the in/out/fault sequence will not be considered when carrying out mediation.||Any changes done to the sequence saved in the Registry after it was selected as the in/out/fault sequence will be considered when carrying out mediation.|
The Sequence mediator is a content-unaware mediator.
A sequence ref token refers to a \<
element, which is used to invoke a named sequence of mediators.
The parameters available to configure the Sequence mediator are as follows.
This parameter defines whether the key to access the required sequence is a static key or a dynamic key. Possible values are as follows.
The key to access the sequence saved in the registry. You can enter a static value selected from the resource tree, or an XPath expression based on the option you selected for the Key Type parameter.Tip:
You can click NameSpaces to add namespaces if you are providing an expression. Then the Namespace Editor panel would appear where you can provide any number of namespace prefixes and URLs used in the XPath expression.
In this example, the following sequence named
StoreSend is saved in the Configuration registry. It includes a Store Mediator to store the request in a message store named
JMSMS and a Send Mediator to send it to an endpoint afterwards.
<sequence xmlns="http://ws.apache.org/ns/synapse" name="conf:/StoreSend"> <axis2ns4:store xmlns:axis2ns4="http://ws.apache.org/ns/synapse" messageStore="JMSMS" sequence="conf:/repository/components/org.wso2.carbon.throttle/templates"></axis2ns4:store> <send> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService"></address> </endpoint> </send> </sequence>
The Sequence mediator configuration can be as follows to invoke the
StoreSend sequence after using a PayloadFactory mediator to transform the contents of the request.
<inSequence xmlns="http://ws.apache.org/ns/synapse"> <payloadFactory media-type="xml"> <format> <m:checkpriceresponse xmlns:m="http://services.samples/xsd"> <m:code>$1</m:code> <m:price>$2</m:price> </m:checkpriceresponse> </format> <args> <arg expression="//m0:symbol" xmlns:m0="http://services.samples/xsd"> <arg expression="//m0:last" xmlns:m0="http://services.samples/xsd"> </arg></arg></args> </payloadFactory> <sequence key="conf:/StoreSend"></sequence> </inSequence>