So the property synapse.xpath.var.extensions can have more than one value
right, how do you achieve that, is that a comma separated value set??

Thanks,
Ruwan


On Wed, Nov 24, 2010 at 3:03 PM, Udayanga Wickramasinghe <[email protected]
> wrote:

> Hi ,
>
> On Wed, Nov 24, 2010 at 2:30 PM, Ruwan Linton <[email protected]>wrote:
>
>> Hi Udayanga,
>>
>> From a users point of view how can I register a custom XPath variable or a
>> function, provided that I have the implementation class of the provider
>> interface that you have described??
>>
>
> First users have to  declare their custom implementations under
> repository/conf/synapse.properties (ie :- within
> synapse.xpath.var.extensions / synapse.xpath.func.extensions properties) .
> Then If this is required for a synapse based component (such as in my
> scenario where my business messaging component which needs to expose a
> property as a custom Xpath extension variable such as $PAYPAL_RESPONSE ) we
> can include our extensions under the respective components itself. Otherwise
> we need to include our extension jars under lib/classpath
>
> Regards,
> Udayanga
>
>
>
>>
>> Thanks,
>> Ruwan
>>
>>
>> On Wed, Nov 24, 2010 at 12:54 PM, Udayanga Wickramasinghe <
>> [email protected]> wrote:
>>
>>> Hi devs,
>>> I see that  Synapse currently does not have an extension mechanism to
>>> support custom xpath variable/function expressions . For example we can't
>>> declare our own expression="$Custom_Property_Scope:C_PROPERTY" or
>>> expression="$CUSTOM_RESP/urn:child"  (actually this has been a requirement
>>> of mine ) or even a customized xpath function similar to "get-property()".
>>> Modifying  SynapseXPathFunctionContext or SynapseXPathVariableContext could
>>> make this happen but i guess that is not the proper way to do that :S . It
>>> would be great if we can have an extensible way of doing this. I prepared a
>>> patch for Synapse so that we could  have such extensions for xpath .(which
>>> would  in-turn meet my requirement as well :))
>>> The basic flow of this implementation is as follows. We use
>>> synapse.properties to register Synapse xpath variable/function based
>>> extensions .
>>> synapse.xpath.var.extensions --> Variable Context Extensions
>>> synapse.xpath.func.extensions --> Function Context Extensions
>>> These extensions should implement new interfaces , either
>>> SynapseXpathFunctionContextProvider / SynapseXpathVariableContextProvider .
>>> Each is provided with several interfaces including  #getResolvingQName()
>>> ,indicating Synapse that which respective expressions they are going  to
>>> support (ie:-localname + prefix + namespace URI combination).
>>>
>>> At Synapse initialization time we register all declared extensions.These
>>> extensions will be available through SynapseEnvironment .(i had to introduce
>>> two interfaces to support this ,
>>> SynapseEnvironment#getXpathFunctionExtensions() ,
>>> SynapseEnvironment#getXpathVariableExtensions() ) .Now that these extensions
>>> are made available ,  xpath context resolvers at runtime
>>> (ie:-SynapseXPathVariableContext) will try to resolve expressions through
>>> provided extensions (if a matching extension is found ) ,  in case normal
>>> synapse resolving flow fails..IMO i think this is a better way of providing
>>> custom Xpath expression support... Please let me know your
>>> suggestions,improvements ,etc regarding this approach...thanks in
>>> advance..Meantime I'll make this patch available through a jira as well :)
>>>
>>>
>>> Regards,
>>> Udayanga
>>>
>>> --
>>> *Udayanga Wickramasinghe*
>>> Software Engineer; WSO2 Inc.; http://wso2.com,
>>> *email: **[email protected]* <[email protected]>* cell: +94 (77)
>>> 983-4365
>>> blog: **http://udayangawiki.blogspot.com*<http://udayangawiki.blogspot.com>
>>> *
>>> twitter: 
>>> **http://twitter.com/udayanga_wick*<http://twitter.com/udayanga_wick>
>>> *
>>> **
>>> * <http://lk.linkedin.com/in/ddweerasiri>
>>>
>>
>>
>>
>> --
>> Ruwan Linton
>> Software Architect & Product Manager, WSO2 ESB; http://wso2.org/esb
>> WSO2 Inc.; http://wso2.org
>>
>> Lean . Enterprise . Middleware
>>
>> phone: +1 408 754 7388 ext 51789
>> email: [email protected]; cell: +94 77 341 3097
>> blog: http://blog.ruwan.org
>> linkedin: http://www.linkedin.com/in/ruwanlinton
>> google: http://www.google.com/profiles/ruwan.linton
>> tweet: http://twitter.com/ruwanlinton
>>
>
>
>
> --
> *Udayanga Wickramasinghe*
> Software Engineer; WSO2 Inc.; http://wso2.com,
> *email: **[email protected]* <[email protected]>* cell: +94 (77)
> 983-4365
> blog: **http://udayangawiki.blogspot.com*<http://udayangawiki.blogspot.com>
> *
> twitter: **http://twitter.com/udayanga_wick*<http://twitter.com/udayanga_wick>
> *
> **
> * <http://lk.linkedin.com/in/ddweerasiri>
>



-- 
Ruwan Linton
Software Architect & Product Manager, WSO2 ESB; http://wso2.org/esb
WSO2 Inc.; http://wso2.org

Lean . Enterprise . Middleware

phone: +1 408 754 7388 ext 51789
email: [email protected]; cell: +94 77 341 3097
blog: http://blog.ruwan.org
linkedin: http://www.linkedin.com/in/ruwanlinton
google: http://www.google.com/profiles/ruwan.linton
tweet: http://twitter.com/ruwanlinton

Reply via email to