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 <ra...@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.k...@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.lin...@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.k...@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.lin...@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.k...@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.lin...@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 <pzf...@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 > >>>>>>> <supu...@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 <pzf...@gmail.com > > > >>>>>>> > wrote: > >>>>>>> >> Can you give an example use-case? > >>>>>>> >> > >>>>>>> >> Thanks > >>>>>>> >> Paul > >>>>>>> >> > >>>>>>> >> On Thu, Jan 6, 2011 at 7:18 AM, Ranga Siriwardena < > ra...@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-unsubscr...@synapse.apache.org > >>>>>>> >>> For additional commands, e-mail: dev-h...@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 > >>>>>>> >> p...@wso2.com > >>>>>>> >> > >>>>>>> >> "Oxygenating the Web Service Platform", www.wso2.com > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > --------------------------------------------------------------------- > >>>>>>> >> To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org > >>>>>>> >> For additional commands, e-mail: dev-h...@synapse.apache.org > >>>>>>> >> > >>>>>>> >> > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > -- > >>>>>>> > Technical Lead, WSO2 Inc > >>>>>>> > http://wso2.org > >>>>>>> > supunk.blogspot.com > >>>>>>> > > >>>>>>> > > >>>>>>> > > --------------------------------------------------------------------- > >>>>>>> > To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org > >>>>>>> > For additional commands, e-mail: dev-h...@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 > >>>>>>> p...@wso2.com > >>>>>>> > >>>>>>> "Oxygenating the Web Service Platform", www.wso2.com > >>>>>>> > >>>>>>> > --------------------------------------------------------------------- > >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org > >>>>>>> For additional commands, e-mail: dev-h...@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: ru...@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: ru...@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: ru...@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