blob: 406f53596066b970e5ac93605b5e4fe8c59359ab [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<synapse xmlns="http://ws.apache.org/ns/synapse">
<!-- illustration of simple properties, and reusable endpoints and sequences -->
<definitions>
<!-- define a string literal property -->
<set-property name="version" value="0.1"/>
<!-- define a reuseable endpoint definition -->
<endpoint name="simple"
address="http://localhost:9000/axis2/services/SimpleStockQuoteService"/>
<!-- define a reusable sequence -->
<sequence name="stockquote">
<!-- log the message using the custom log level. illustrates custom properties for log messages -->
<log level="custom">
<property name="Text" value="Sending quote request"/>
<property name="version" expression="get-property('version')"/>
<property name="symbol" expression="get-property('symbol')"/>
</log>
<!-- send message to real endpoint referenced by name "stockquote" endpoint definition -->
<send>
<endpoint ref="simple"/>
</send>
</sequence>
</definitions>
<rules>
<!-- match the 'To' EPR to the given regex -->
<filter source="get-property('To')" regex=".*/SimpleStockQuoteService.*">
<!-- set a custom local message property based on the stock code requested -->
<switch source="//m0:getQuote/m0:request/m0:symbol"
xmlns:m0="http://services.samples/xsd">
<case regex="IBM">
<set-property name="symbol" value="Great stock - IBM"/>
</case>
<case regex="MSFT">
<set-property name="symbol" value="Are you sure? - MSFT"/>
</case>
<default>
<!-- it is possible to assign the result of an XPath expression as the value of a local message property -->
<set-property name="symbol"
expression="fn:concat('Normal Stock - ', //m0:getQuote/m0:request/m0:symbol)"
xmlns:m0="http://services.samples/xsd"/>
</default>
</switch>
<!-- invoke an already defined [reusable] sequence at this point -->
<sequence ref="stockquote"/>
</filter>
<!-- Log all messages passing through -->
<log level="full"/>
<!-- Send the messages where they have been sent (i.e. implicit To EPR) -->
<send/>
</rules>
</synapse>