synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ranga Siriwardena <ra...@wso2.com>
Subject Re: Supporting Dynamic registry keys in Mediators
Date Tue, 18 Jan 2011 05:34:35 GMT
Hi All,

Thank you very much for the valuable comments and suggestions. As per
this discussion I have implemented the dynamic registry key feature
for XSLT mediators and with this we will able to cache multiple
templates with XSLT Mediators.  According to this improvement user can
specify static-key as a normal string as earlier and
dynamic-keys(xpath expressions) can denoted inside "{ }" . More
details about this improvement is included with following JIRA.

https://issues.apache.org/jira/browse/SYNAPSE-718

Thank you.

On Sat, Jan 8, 2011 at 9:03 AM, indika kumara <indika.kuma@gmail.com> wrote:
> Here, I believe we refers to unique keys - Only difference is how to
> calculate keys (static vs dynamic- based on something in requests). A cache
> is a genaric concept that can be applied for many cases, especially when
> application data are retrieved from some other place and (or) that
> retrieving operation is expensive ( e.g database, file system), and(or) the
> application data exhibits properties such expiration.
>
> On Sat, Jan 8, 2011 at 8:11 AM, Ruwan Linton <ruwan.linton@gmail.com> wrote:
>>
>> Indika,
>> You cannot put the key as the index as the same key would result in
>> different XSLT's for different messages.
>> I don't think Springs case is dynamic, it is just a matter of selecting
>> among a set of predefined XSLT's and also they have a static key it seems.
>> Further, I don't see a need for a cache, as the SynapseConfiguration
>> entries already supports this, may be we need to create another type of an
>> entry type called cached entry, which are not getting serialized to
>> configuration file.
>> Thanks,
>> Ruwan
>>
>> On Fri, Jan 7, 2011 at 10:44 PM, indika kumara <indika.kuma@gmail.com>
>> wrote:
>>>
>>> Ruwan,
>>>
>>> I have not tried multiple template caching but I feel that it should be
>>> possible.  The value resulted from evaluating a key expression (key) vs a
>>> template instance(value). It is just key-value. Do we need to create an
>>> index? if so, what are the parameter for calculating the index? I believe it
>>> is a simple cache. A generic cache that can keep any domain
>>> object(application data - template, schema, etc) would be ideal. I believe a
>>> cache should be able to keep any application data. Such a cache can be put
>>> in the synapse configuration level, registry level, or any other place.
>>>
>>> BTW, It seems that Spring does multiple XSLT template caching [1] - it
>>> looks like their scenario is identical to ours.
>>>
>>> Thanks,
>>>
>>> Indika
>>>
>>> [1] http://forum.springsource.org/archive/index.php/t-13862.html
>>>
>>> On Fri, Jan 7, 2011 at 8:37 PM, Ruwan Linton <ruwan.linton@gmail.com>
>>> wrote:
>>>>
>>>> Indika,
>>>> I agree about the other mediators, but XSLT this cannot be done I guess.
>>>> being able to cache multiple templates on its own would not solve the
>>>> problem as it requires some indexing mechanism. In dynamic key case, the
>>>> XSLT is going be dynamic and caching the template with a key expression will
>>>> not work, I expect caching over the evaluated XSLT is not going to be that
>>>> effective too.
>>>> Ruwan
>>>>
>>>> On Fri, Jan 7, 2011 at 9:53 AM, indika kumara <indika.kuma@gmail.com>
>>>> wrote:
>>>>>
>>>>> I have not checked the code. But I believe it is possible to modify the
>>>>> XSLT mediator to cache multiple templates. In the worst case, caching
>>>>> multiple transformer instances. We have to evaluate tradeoff between
a
>>>>> mediator with multiple transformer (or templates) instances vs multiple
>>>>> mediator instances.
>>>>>
>>>>> BTW, the use case at [1] might be worth : use a single validate
>>>>> mediator instead of a filter mediator + multiple validate mediators.
That
>>>>> applies for many mediators.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Indika
>>>>>
>>>>> [1] http://wso2.org/forum/thread/10462
>>>>>
>>>>> On Fri, Jan 7, 2011 at 7:21 AM, Ruwan Linton <ruwan.linton@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> I agree with Paul 100%.
>>>>>> Supun/Ranga, if you carefully look at the XSLT mediator, it caches
the
>>>>>> XSLT template, template creation in XSLT (basically compiling it)
is an
>>>>>> expensive task, with this approach we cannot cache the XSLT as the
XSLT is
>>>>>> dynamic in this case.
>>>>>> Thanks,
>>>>>> Ruwan
>>>>>>
>>>>>> On Thu, Jan 6, 2011 at 3:44 PM, Paul Fremantle <pzfreo@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Ok. I can see a few scenarios where this might be useful, but
in
>>>>>>> general if there are a well-defined set of XSLTs (e.g. say we
are
>>>>>>> choosing between 10) it would be more efficient to have separate
>>>>>>> mediators because they will do the initialization and this might
>>>>>>> include a compilation step for the XSLT.
>>>>>>>
>>>>>>> Paul
>>>>>>>
>>>>>>> On Thu, Jan 6, 2011 at 10:03 AM, Supun Kamburugamuva
>>>>>>> <supun06@gmail.com> wrote:
>>>>>>> > As an example lets take a XSLT transformation.
>>>>>>> >
>>>>>>> > Depending on the message content user may have several XSLT
>>>>>>> > transformations specified.
>>>>>>> >
>>>>>>> > With the current language user has to have several XSLT
mediators
>>>>>>> > refereeing these XSLT's.
>>>>>>> >
>>>>>>> > But by calculating the XSLT key dynamically based on the
message
>>>>>>> > content, user can use only one XSLT mediator.
>>>>>>> >
>>>>>>> > Thanks,
>>>>>>> > Supun..
>>>>>>> >
>>>>>>> > On Thu, Jan 6, 2011 at 2:24 PM, Paul Fremantle <pzfreo@gmail.com>
>>>>>>> > wrote:
>>>>>>> >> Can you give an example use-case?
>>>>>>> >>
>>>>>>> >> Thanks
>>>>>>> >> Paul
>>>>>>> >>
>>>>>>> >> On Thu, Jan 6, 2011 at 7:18 AM, Ranga Siriwardena <ranga@wso2.com>
>>>>>>> >> wrote:
>>>>>>> >>> Hi All,
>>>>>>> >>>
>>>>>>> >>> Currently we are supporting only static registry
keys with
>>>>>>> >>> mediators.
>>>>>>> >>> For an example, XSLT Mediators only allows static
keys when
>>>>>>> >>> creating
>>>>>>> >>> the mediator. How about having dynamic keys with
these kind of
>>>>>>> >>> mediators. In that case we can support dynamic keys
and with
>>>>>>> >>> that,
>>>>>>> >>> user will able to use XPath kind of approach to
dynamically
>>>>>>> >>> generate
>>>>>>> >>> the key instead of a static key. WDYT?
>>>>>>> >>>
>>>>>>> >>> Following is an example for that.
>>>>>>> >>>
>>>>>>> >>> <!-- using static key -->
>>>>>>> >>> <xslt key="xslt-key-req"/>
>>>>>>> >>>
>>>>>>> >>> <!-- using Dynamic key -->
>>>>>>> >>> <xslt key={ } />
>>>>>>> >>>
>>>>>>> >>> If we are supporting this kind of dynamic key approach,
what
>>>>>>> >>> should be
>>>>>>> >>> the proper way of representing the dynamic key?
>>>>>>> >>> Thoughts are welcome.
>>>>>>> >>>
>>>>>>> >>> Thank You.
>>>>>>> >>>
>>>>>>> >>> --
>>>>>>> >>> Ranga Siriwardena
>>>>>>> >>> Software Engineer
>>>>>>> >>> WSO2 Inc.
>>>>>>> >>>
>>>>>>> >>>
>>>>>>> >>> ---------------------------------------------------------------------
>>>>>>> >>> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
>>>>>>> >>> For additional commands, e-mail: dev-help@synapse.apache.org
>>>>>>> >>>
>>>>>>> >>>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> --
>>>>>>> >> Paul Fremantle
>>>>>>> >> Co-Founder and CTO, WSO2
>>>>>>> >> Apache Synapse PMC Chair
>>>>>>> >> OASIS WS-RX TC Co-chair
>>>>>>> >>
>>>>>>> >> blog: http://pzf.fremantle.org
>>>>>>> >> paul@wso2.com
>>>>>>> >>
>>>>>>> >> "Oxygenating the Web Service Platform", www.wso2.com
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> ---------------------------------------------------------------------
>>>>>>> >> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
>>>>>>> >> For additional commands, e-mail: dev-help@synapse.apache.org
>>>>>>> >>
>>>>>>> >>
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > --
>>>>>>> > Technical Lead, WSO2 Inc
>>>>>>> > http://wso2.org
>>>>>>> > supunk.blogspot.com
>>>>>>> >
>>>>>>> >
>>>>>>> > ---------------------------------------------------------------------
>>>>>>> > To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
>>>>>>> > For additional commands, e-mail: dev-help@synapse.apache.org
>>>>>>> >
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Paul Fremantle
>>>>>>> Co-Founder and CTO, WSO2
>>>>>>> Apache Synapse PMC Chair
>>>>>>> OASIS WS-RX TC Co-chair
>>>>>>>
>>>>>>> blog: http://pzf.fremantle.org
>>>>>>> paul@wso2.com
>>>>>>>
>>>>>>> "Oxygenating the Web Service Platform", www.wso2.com
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
>>>>>>> For additional commands, e-mail: dev-help@synapse.apache.org
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ruwan Linton
>>>>>> Software Architect & Product Manager
>>>>>> WSO2 Inc.; http://wso2.org
>>>>>>
>>>>>> Lean . Enterprise . Middleware
>>>>>>
>>>>>> phone: +1 408 754 7388 ext 51789
>>>>>> email: ruwan@wso2.com; 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
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Ruwan Linton
>>>> Software Architect & Product Manager
>>>> WSO2 Inc.; http://wso2.org
>>>>
>>>> Lean . Enterprise . Middleware
>>>>
>>>> phone: +1 408 754 7388 ext 51789
>>>> email: ruwan@wso2.com; 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
>>>
>>
>>
>>
>> --
>> Ruwan Linton
>> Software Architect & Product Manager
>> WSO2 Inc.; http://wso2.org
>>
>> Lean . Enterprise . Middleware
>>
>> phone: +1 408 754 7388 ext 51789
>> email: ruwan@wso2.com; 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
>
>



-- 
Ranga Siriwardena
Software Engineer
WSO2 Inc.

Mobile: +94 779808031

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


Mime
View raw message