I suggest we use the property mediator itself for [1] and [2] as follows;

<property name="string" [action=set|remove] (value="literal" |
expression="xpath") (node="clone" | "detach")
[scope=transport|axis2|axis2-client]/>

where, the introduced attribute node declares that it is a node operation
and this option is valid only when the action is "set" and the expression
attribute is present. So the clone attribute value clones the node and
attach it as a node to the specified property name and the detach value will
remove the node form the message and attach as a property.

With this we preserve the earlier behavior of the property mediator, if you
do not specify the node attribute it will be the string value of the
expression that we are going to be storing in the property.
What about
<property name="string" (value="literal" | expression="xpath") [action=set|remove|cloneAsNode|detachAsNode] [scope=...]/>
For [3] and [4] I suggest we go for a single mediator called enrich with the
following syntax.

<enrich name="string" expression="xpath" action=["insertBefore" |
"insertAfter" | "replace"]/>
This looks good, I think we also need a slight variant mediator to just remove a node (i.e. without setting it as a property)

cheers
asankha

--
Asankha C. Perera
AdroitLogic, http://adroitlogic.org

http://esbmagic.blogspot.com




Reply via email to