[ 
https://issues.apache.org/jira/browse/ODE-450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karthick Sankarachary updated ODE-450:
--------------------------------------

    Attachment: expose-process-properties-for-trunk.patch

> 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
>            Assignee: Karthick Sankarachary
>             Fix For: 1.3
>
>         Attachments: expose-process-properties-for-branch.patch, 
> expose-process-properties-for-trunk.patch
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> 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 of 
> now, we externalize certain process properties and wirings in a deployment 
> descriptor 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, which are defined at 
> deploy-time, directly in the BPEL process. To that end, we define a new 
> extension XPath function that returns the node value corresponding to the 
> qualified name of a process property, as shown below:
>     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 consider a scenario where a BPEL process invokes an external WSDL 
> service, whose location is not know a priori. The best way to handle this is 
> to define the endpoint reference (EPR) of that service at deploy-time as a 
> process property. In the BPEL process itself, we reference the EPR property 
> and assign it dynamically to the partner link corresponding to that service. 
> For example, the snippet of deploy.xml below declares a process called 
> "tns:negotiate", which is given 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:negotiate">
>            <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 the BPEL code, the dynamic assignment of the auction service partner link 
> boils down to this statement:
>     <assign>
>          <copy>
>             <from>ode:process-property("auctionEpr")</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.

Reply via email to