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 Mon, 24 Jan 2011 10:34:38 GMT
Hi All,

I did the same improvement for the validate mediator. Attached the patch
file with the same JIRA.

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

Thank You.

On Tue, Jan 18, 2011 at 11:04 AM, Ranga Siriwardena <ranga@wso2.com> wrote:

> 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
>



-- 
Ranga Siriwardena
Software Engineer
WSO2 Inc.

Mobile: +94 779808031

Mime
View raw message