ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou (JIRA)" <j...@apache.org>
Subject [jira] Commented: (ODE-371) Auto Complete Copy Destination (L-Value)
Date Tue, 16 Sep 2008 18:22:44 GMT

    [ https://issues.apache.org/jira/browse/ODE-371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12631490#action_12631490

Matthieu Riou commented on ODE-371:

A couple of observations about the patch:

 * The information about whether we're in an insertMissingToData should be added to the OExpression
of the lvalue instead of adding this callback on EvaluationContext for runtime access. It's
only used in a particular case of evaluation so you end up with several dummy implementations
of isInsertMissingData for no real good reasons. It's not really the role of this interface.

* Could you create a separate test case instead of reusing TestSubTreeAssign.bpel yet again?
I don't mind you cloning it and removing the non relevant parts, it's just that more focused
test cases are easier for diagnostic and to maintain, especially when they test extensions.


> Auto Complete Copy Destination (L-Value)
> ----------------------------------------
>                 Key: ODE-371
>                 URL: https://issues.apache.org/jira/browse/ODE-371
>             Project: ODE
>          Issue Type: New Feature
>    Affects Versions: 1.2
>         Environment: platform-independent
>            Reporter: Karthick Sankarachary
>             Fix For: 1.3
>         Attachments: auto-complete-copy-for-branch.txt
>   Original Estimate: 168h
>  Remaining Estimate: 168h
> A lot of times, users expect the <copy> operation in a WS-BPEL assign activity
to behave such that the path specified by the destination ("to-spec") is automatically created,
if it doesn't already exist. By default, if the to-spec used within a <copy> operation
does not select exactly one XML information item during execution, then the standard fault
bpel:selectionFailure is thrown (as mandated by the spec).
> To override this default behavior, we introduce a insertMissingToData attribute in the
<copy> operation, which if it is set to "yes", will instruct the runtime to complete
the (XPath) L-value specified by the to-spec, if no items were selected. For the sake of simplicity,
we will complete the to-spec if and only if:
> a) It's a path expression whose steps are separated by "/", and
> b) Its steps have an axis, which is either "child" or "attribute", and
> c) Its steps have no following predicates, and
> d) Its steps test the name of a node,  without the use of wildcards.
> Formally, the grammar of the to-spec, for which auto-complete is enabled, may be defined
in terms of these productions:
>     PathExpr              ::=    ("/" RelativePathExpr?) | RelativePathExpr
>     RelativePathExpr      ::=    ForwardStep (("/" ) ForwardStep)*
>     ForwardStep           ::=    (ForwardAxis QName) | AbbrevForwardStep
>     AbbrevForwardStep     ::=    "@"? QName
>     ForwardAxis           ::=    ("child" "::") | ("attribute" "::")
> The example below illustrates the use of the insertMissingToData attribute. Let's say
that the variable "response" is uninitialized. In that case, the first <copy> operation
will fail, whereas the second one will succeed.
>     <copy>
>         <from>$request.requestMessageData/typeIndicators/types:indicatorTwo</from>
>         <to>$response/typeIndicators/types:indicatorTwo</to>
>     </copy>
>     <copy insertMissingToData="yes">
>         <from>$request.requestMessageData/typeIndicators/types:indicatorTwo</from>
>         <to>$response/typeIndicators/child::types:indicatorTwo</to>
>      </copy>
> Best Regards,
> Karthick Sankarachary

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message