Expose Deployment Properties In BPEL Process --------------------------------------------
Key: ODE-450 URL: https://issues.apache.org/jira/browse/ODE-450 Project: ODE Issue Type: New Feature Components: BPEL Compilation/Parsing, BPEL Runtime Affects Versions: 1.2 Environment: platform-independent Reporter: Karthick Sankarachary Fix For: 1.3 Often times, one would like to be able to assert some influence over the runtime behavior of a BPEL process even though it is "code-complete". As a matter of fact, we already externalize certain process properties and wirings in a deployment artifact known as deploy.xml. However, we stop short of exposing those properties in the BPEL process, which is a known limitation. What we need is a mechanism to reference properties defined at deploy-time directly in the BPEL process. To that end, we will define an extension XPath function that will return the node object corresponding to the qualified name of a process property, as follows: ode:process-property($name as item() ) as node() where $name refers to any schema item that resolves to a QName, and the return node value is the child of the property element with the given name. Let us see how a service EPR that is defined at deploy-time can be dynamically assigned to a partner link in the BPEL process, thereby changing the target location of that partner after the fact. In the snippet of deploy.xml shown below, the process called "tns:process" is assigned a property called "auctionEpr" whose value is set to a BPEL <service-ref> element. <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:tns="http://ode/bpel/process"> <process name="tns:process"> <property name="auctionEpr"> <sref:service-ref xmlns:sref=" http://docs.oasis-open.org/wsbpel/2.0/serviceref" xmlns:addr="http://example.com/addressing" xmlns:as="http://example.com/auction/wsdl/auctionService/"> <addr:EndpointReference> <addr:Address>http://example.com/auction/RegistrationService/</addr:Address> <addr:ServiceName>as:RegistrationService</addr:ServiceName> </addr:EndpointReference> </sref:service-ref> </property>... </process> </deploy> In order to assign this user-defined EPR to a certain partner link, you would use an assign statement that looks something like this: <assign> <copy> <from>ode:process-property("epr")</from> <to partnerLink="auctionRegistrationService" /> </copy> </assign> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.