blob: 3433f206ba5ee14593d37c367a7654e0a8e50b33 [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.
-->
<process xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://docs.oasis-open.org/wsbpel/2.0/process/executable ../../../../../../../bpel-schemas/src/main/resources/wsbpel_executable.xsd"
xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:tns="http://ode/bpel/unit-test/testImplicitFaultHandler" xmlns:flt="http://ode/bpel/unit-test/FaultService.wsdl"
xmlns:prb="http://ode/bpel/unit-test/ProbeService.wsdl" xmlns:wns="http://ode/bpel/unit-test/testImplicitFaultHandler.wsdl" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
targetNamespace="http://ode/bpel/unit-test/testImplicitFaultHandler" name="testImplicitFaultHandler" suppressJoinFailure="yes" queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
<!-- test embeded fault and comp handlers in invokes -->
<!-- the first no op invoke will install a comp handler -->
<!-- the second invoke will generated an error and handle it -->
<!-- the error hanndling will throw and error which is not handled -->
<!-- this will cause implicit compensation on the installed comp handler -->
<!-- that comp handler will throw an error out of the process -->
<import location="TestImplicitFaultHandler.wsdl" namespace="http://ode/bpel/unit-test/testImplicitFaultHandler.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import location="../ProbeService/probeService.wsdl" namespace="http://ode/bpel/unit-test/ProbeService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import location="../FaultService/faultService.wsdl" namespace="http://ode/bpel/unit-test/FaultService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<partnerLinks>
<partnerLink name="request" partnerLinkType="wns:testImplicitFaultHandlerRequest" myRole="testImplicitFaultHandlerService"/>
<partnerLink name="probe" partnerLinkType="wns:probeRequest" partnerRole="probeService" initializePartnerRole="yes"/>
<partnerLink name="fault" partnerLinkType="wns:faultRequest" partnerRole="faultService" initializePartnerRole="yes"/>
</partnerLinks>
<variables>
<variable name="request" messageType="wns:requestMessage"/>
<variable name="reply1" messageType="wns:replyMessage"/>
<variable name="reply2" messageType="wns:replyMessage"/>
<variable name="fault" messageType="flt:faultMessage"/>
<variable name="faultResponse" messageType="flt:faultMessage"/>
<variable name="probeInput" messageType="prb:probeMessage"/>
</variables>
<faultHandlers>
<catch faultName="tns:fault">
<compensate/>
</catch>
</faultHandlers>
<sequence>
<receive name="receive1" partnerLink="request" portType="wns:testImplicitFaultHandlerPT" operation="request" variable="request" createInstance="yes"> </receive>
<assign>
<copy>
<from variable="request" part="requestID"/>
<to variable="probeInput" part="probeName"/>
</copy>
<copy>
<from variable="request" part="requestText"/>
<to variable="probeInput" part="probeData"/>
</copy>
</assign>
<invoke name="probe" partnerLink="probe" portType="prb:probeMessagePT" operation="probe" inputVariable="probeInput" outputVariable="probeInput">
<compensationHandler>
<sequence>
<throw faultName="tns:faultFromCompensationHandlerInInvoke"/>
</sequence>
</compensationHandler>
</invoke>
<assign>
<copy>
<from>$request.requestID</from>
<to variable="fault" part="faultName"/>
</copy>
<copy>
<from>$request.requestText</from>
<to variable="fault" part="faultData"/>
</copy>
<copy>
<from>$request.faultIndicator1</from>
<to>$fault.faultIndicator1</to>
</copy>
<copy>
<from>$request.faultIndicator2</from>
<to>$fault.faultIndicator2</to>
</copy>
</assign>
<invoke name="throwTestFault" partnerLink="fault" portType="flt:faultMessagePT" operation="throwFault" inputVariable="fault" outputVariable="faultResponse">
<catch faultName="flt:FaultMessage1" faultVariable="testError" faultMessageType="flt:errorMessage">
<sequence>
<assign>
<copy>
<from>'caught FaultMessage1'</from>
<to variable="reply2" part="replyText"/>
</copy>
</assign>
<throw faultName="tns:fault"/>
</sequence>
</catch>
</invoke>
<reply name="reply" partnerLink="request" portType="wns:testImplicitFaultHandlerPT" operation="request" variable="reply2"> </reply>
</sequence>
</process>