| <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> |