blob: b02c0ec23b0c6ea7aee37640fafe048e47fcee13 [file] [log] [blame]
<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>