<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~  Copyright (c) 2017, WSO2 Inc. (http://wso2.com) All Rights Reserved.
  ~
  ~  WSO2 Inc. 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.
  ~
  -->

<definitions xmlns="http://ws.apache.org/ns/synapse">
    <proxy name="iterateDifferentIdTestProxy" transports="http"
           startOnLoad="true" trace="disable">
        <target>
            <inSequence>
                <iterate xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                         xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd"
                         xmlns:m0="http://services.samples" id="iterate1" preservePayload="true"
                         attachPath="//m0:getQuotes" expression="//m0:getQuotes/m0:getQuote">
                    <target>
                        <sequence>
                            <log level="full">
                                <property name="target1"
                                          value="************After 1st Iterate before 2nd Iterate*************" />
                            </log>
                            <iterate id="iterate2" preservePayload="true" attachPath="//m0:getQuote"
                                     expression="//m0:getQuotes/m0:getQuote/m0:request">
                                <target>
                                    <sequence>
                                        <log level="full">
                                            <property name="target2333"
                                                      value="************After 2nd Iterate and before payload factory*************" />
                                        </log>
                                        <payloadFactory>
                                            <format>
                                                <m0:getQuote>
                                                    <m0:request>
                                                        <m0:symbol>$1</m0:symbol>
                                                    </m0:request>
                                                </m0:getQuote>
                                            </format>
                                            <args>
                                                <arg expression="//m0:getQuote/m0:request/m0:symbol" />
                                            </args>
                                        </payloadFactory>
                                        <log level="full">
                                            <property name="target1"
                                                      value="************after payload factory*************" />
                                        </log>
                                        <send>
                                            <endpoint>
                                                <address
                                                        uri="http://localhost:9000/services/SimpleStockQuoteService" />
                                            </endpoint>
                                        </send>
                                    </sequence>
                                </target>
                            </iterate>
                        </sequence>
                    </target>
                </iterate>
            </inSequence>
            <outSequence>
                <aggregate id="iterate2">
                    <completeCondition>
                        <messageCount min="-1" max="-1" />
                    </completeCondition>
                    <onComplete xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                                xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd"
                                xmlns:m0="http://services.samples" expression="//m0:getQuoteResponse">
                        <log level="full" category="INFO" />
                        <aggregate id="iterate1">
                            <completeCondition>
                                <messageCount min="-1" max="-1" />
                            </completeCondition>
                            <onComplete expression="//m0:getQuoteResponse">
                                <send />
                            </onComplete>
                        </aggregate>
                    </onComplete>
                </aggregate>
            </outSequence>
        </target>
    </proxy>
</definitions>