| <wizard-template xmlns="foo"> | |
| <description name="Asynchronous BPEL Process"> | |
| Generates an empty BPEL process. Only receive and reply activities are | |
| placed in the process body. The caller will resume execution as soon as the receive | |
| activity is performed by the BPEL process. The caller will be notified asynchronously | |
| when the process completes. A client interface is generated. | |
| </description> | |
| <!-- Contributing namespaces --> | |
| <namespaces kind="inclusive"> | |
| <namespace uri="http://eclipse.org/bpel/sample"/> | |
| <namespace uri="http://sample.bpel.org/bpel/sample"/> | |
| </namespaces> | |
| <!-- Which resources are created as a result of the template ? --> | |
| <resource name="${processName}.bpel" type="text/xml"> | |
| <!-- ${processName} BPEL Process [Generated by the Eclipse BPEL Designer] --> | |
| <!-- Date: ${date} --> | |
| <process name="${processName}" | |
| targetNamespace="${namespace}" | |
| suppressJoinFailure="yes" | |
| xmlns:tns="${namespace}" | |
| xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" | |
| > | |
| <!-- ================================================================= --> | |
| <!-- PARTNERLINKS --> | |
| <!-- List of services participating in this BPEL process --> | |
| <!-- ================================================================= --> | |
| <partnerLinks> | |
| <!-- | |
| The 'client' role represents the requester of this service. It is | |
| used for callback. The location and correlation information associated | |
| with the client role are automatically set using WS-Addressing. | |
| --> | |
| <partnerLink name="client" | |
| partnerLinkType="tns:${processName}" | |
| myRole="${processName}Provider" | |
| partnerRole="${processName}Requester" | |
| /> | |
| </partnerLinks> | |
| <!-- ================================================================= --> | |
| <!-- VARIABLES --> | |
| <!-- List of messages and XML documents used within this BPEL process --> | |
| <!-- ================================================================= --> | |
| <variables> | |
| <!-- Reference to the message passed as input during initiation --> | |
| <variable name="input" | |
| messageType="tns:${processName}RequestMessage"/> | |
| <!-- Reference to the message that will be sent back to the | |
| requester during callback | |
| --> | |
| <variable name="output" | |
| messageType="tns:${processName}ResponseMessage"/> | |
| </variables> | |
| <!-- ================================================================= --> | |
| <!-- ORCHESTRATION LOGIC --> | |
| <!-- Set of activities coordinating the flow of messages across the --> | |
| <!-- services integrated within this business process --> | |
| <!-- ================================================================= --> | |
| <sequence name="main"> | |
| <!-- Receive input from requestor. | |
| Note: This maps to operation defined in ${processName}.wsdl | |
| --> | |
| <receive name="receiveInput" partnerLink="client" | |
| portType="tns:${processName}" | |
| operation="initiate" variable="input" | |
| createInstance="yes"/> | |
| <!-- Asynchronous callback to the requester. | |
| Note: the callback location and correlation id is transparently handled | |
| using WS-addressing. | |
| --> | |
| <invoke name="callbackClient" | |
| partnerLink="client" | |
| portType="tns:${processName}Callback" | |
| operation="onResult" | |
| inputVariable="output" | |
| /> | |
| </sequence> | |
| </process> | |
| </resource> | |
| <resource name="${processName}.wsdl" type="text/xml"> | |
| <definitions name="${processName}" | |
| targetNamespace="${namespace}" | |
| xmlns:tns="${namespace}" | |
| xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" | |
| xmlns="http://schemas.xmlsoap.org/wsdl/" | |
| > | |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| TYPE DEFINITION - List of services participating in this BPEL process | |
| The default output of the BPEL designer uses strings as input and | |
| output to the BPEL Process. But you can define or import any XML | |
| Schema type and us them as part of the message types. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> | |
| <types> | |
| <schema attributeFormDefault="unqualified" | |
| elementFormDefault="qualified" | |
| targetNamespace="${namespace}" | |
| xmlns="http://www.w3.org/2001/XMLSchema" | |
| > | |
| <element name="${processName}Request"> | |
| <complexType> | |
| <sequence> | |
| <element name="input" type="string" /> | |
| </sequence> | |
| </complexType> | |
| </element> | |
| <element name="${processName}Response"> | |
| <complexType> | |
| <sequence> | |
| <element name="result" type="string"/> | |
| </sequence> | |
| </complexType> | |
| </element> | |
| </schema> | |
| </types> | |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| MESSAGE TYPE DEFINITION - Definition of the message types used as | |
| part of the port type defintions | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> | |
| <message name="${processName}RequestMessage"> | |
| <part name="payload" element="tns:${processName}Request"/> | |
| </message> | |
| <message name="${processName}ResponseMessage"> | |
| <part name="payload" element="tns:${processName}Response"/> | |
| </message> | |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| PORT TYPE DEFINITION - A port type groups a set of operations into | |
| a logical service unit. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> | |
| <!-- portType implemented by the ${processName} BPEL process --> | |
| <portType name="${processName}"> | |
| <operation name="initiate"> | |
| <input message="tns:${processName}RequestMessage"/> | |
| </operation> | |
| </portType> | |
| <!-- portType implemented by the requester of ${processName} BPEL process | |
| for asynchronous callback purposes | |
| --> | |
| <portType name="${processName}Callback"> | |
| <operation name="onResult"> | |
| <input message="tns:${processName}ResponseMessage"/> | |
| </operation> | |
| </portType> | |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| PARTNER LINK TYPE DEFINITION | |
| the ${processName} partnerLinkType binds the provider and | |
| requester portType into an asynchronous conversation. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> | |
| <plnk:partnerLinkType name="${processName}"> | |
| <plnk:role name="${processName}Provider"> | |
| <plnk:portType name="tns:${processName}"/> | |
| </plnk:role> | |
| <plnk:role name="${processName}Requester"> | |
| <plnk:portType name="tns:${processName}Callback"/> | |
| </plnk:role> | |
| </plnk:partnerLinkType> | |
| </definitions> | |
| </resource> | |
| </wizard-template> |