blob: f227ed9bd5b1990b4908972d123f90514a2db5ee [file]
<?xml version="1.0" encoding="utf-8" ?>
<!--
~ 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.
-->
<process name="MagicSessionMain"
targetNamespace="http://ode/bpel/unit-test"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:tns="http://ode/bpel/unit-test"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:test="http://ode/bpel/unit-test.wsdl">
<import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/" />
<partnerLinks>
<partnerLink name="responderPartnerLink" partnerLinkType="test:ResponderPartnerLinkType"
myRole="main" partnerRole="responder" initializePartnerRole="yes"/>
<partnerLink name="executePartnerLink" partnerLinkType="test:ExecutePartnerLinkType"
myRole="executor"/>
</partnerLinks>
<variables>
<variable name="dummy" messageType="test:ExecuteMessage"/>
<variable name="dummy2" messageType="test:InitiateMessage"/>
<variable name="dummy3" messageType="test:CallbackMessage"/>
<variable name="dummy4" messageType="test:DoubleCallMessage"/>
<variable name="dummy5" messageType="test:DoubleCallbackMessage"/>
<variable name="eprmessage" messageType="test:TripleCallMessage"/>
<variable name="myepr" messageType="test:TripleCallbackMessage"/>
<variable name="result" messageType="test:ResultMessage"/>
</variables>
<sequence>
<!-- Start message -->
<receive name="start" partnerLink="executePartnerLink"
portType="test:MSExecutePortType" operation="execute" createInstance="yes" variable="dummy"/>
<!-- Initializing message, starting the responder process with the magic session
and expecting a callback -->
<assign>
<copy>
<from>123</from>
<to variable="dummy2" part="payload"/>
</copy>
</assign>
<invoke name="initiate" partnerLink="responderPartnerLink" portType="test:MSResponderPortType"
operation="initiate" inputVariable="dummy2"/>
<receive name="callback" partnerLink="responderPartnerLink"
portType="test:MSMainPortType" operation="callback" variable="dummy3"/>
<!-- Initializing message, calling our partner again with magic session (double invocation) -->
<assign>
<copy>
<from>123</from>
<to variable="dummy4" part="payload"/>
</copy>
</assign>
<invoke name="get-endpoint" partnerLink="responderPartnerLink" portType="test:MSResponderPortType"
operation="doubleCall" inputVariable="dummy4"/>
<receive name="doubleCallback" partnerLink="responderPartnerLink"
portType="test:MSMainPortType" operation="doubleCallback" variable="dummy5"/>
<!-- Sending our endpoint explicitly to have our partner calling us back using it
(demonstrating assignment) -->
<assign>
<copy>
<from partnerLink="responderPartnerLink" endpointReference="myRole"/>
<to variable="eprmessage" part="payload"/>
</copy>
</assign>
<invoke name="eprPassing" partnerLink="responderPartnerLink" portType="test:MSResponderPortType"
operation="EndpointReference" inputVariable="eprmessage"/>
<receive name="tripleCallback" partnerLink="responderPartnerLink"
portType="test:MSMainPortType" operation="tripleCallback" variable="myepr"/>
<!-- Done. -->
<assign>
<copy>
<from>'OK'</from>
<to variable="result" part="ack"/>
</copy>
</assign>
<reply name="end" partnerLink="executePartnerLink"
portType="test:MSExecutePortType" operation="execute" variable="result"/>
</sequence>
</process>