+1 for cleaning up as much as possible .. these non-orthogonal redundant
language components do not help usability.

Sanjiva.

On Thu, Oct 6, 2011 at 2:10 PM, Hiranya Jayathilaka <hira...@wso2.com>wrote:

>
>
> On Wed, Oct 5, 2011 at 9:54 AM, Srinath Perera <srin...@wso2.com> wrote:
>
>> Are we agreeing to Revamping? Hiranya, do you have any concerns?
>>
>
> I think at high level what Kasun is trying to do is get rid of the router
> mediator and merge that functionality into the conditional router mediator.
> If so +1. Both these mediators seem to address similar problems and we
> really don't want multiple mediators that can do the same thing.
>
> Thanks,
> Hiranya
>
>
>>
>> On Tue, Oct 4, 2011 at 12:15 PM, Amila Suriarachchi <am...@wso2.com>
>> wrote:
>> >
>> >
>> > On Tue, Oct 4, 2011 at 11:45 AM, Srinath Perera <srin...@wso2.com>
>> wrote:
>> >>
>> >> +1 .. if we can replace all with one mediator .. that is great! but we
>> >> have to carefully design the syntax to make sure final result is
>> >> natural for all cases.
>> >
>> > I think there are two ends for this. One is making it general. Other
>> think
>> > is make common case simple.
>> >
>> > Current filter (it actually does some thing like if) mediator
>> configurations
>> > can be as follows.
>> >
>> >  <filter xpath="//ns1:foo/ns1:bar/text() == 'test'">
>> >       <then />
>> >       <else />
>> >    </filter>
>> >    <filter source="//ns1:foo/ns2:bar/text()" regex="test">
>> >       <then />
>> >       <else />
>> >    </filter>
>> >
>> > former 'xpath' is referred to an xpath returning a boolean while the
>> > 'source' attribute refer to an xpath returning a text value. Here it has
>> > tried to cover different specific scenarios which make that particular
>> > occasion to use it easily.
>> >
>> > But we if follow an method like BPEL by using another copy mediator (in
>> fact
>> > I think these are not mediators but some language constructs). It would
>> have
>> > written like this.
>> >
>> > <variable name='foo' >
>> >
>> > <copy>
>> >   <from source='soapbody' xpath="//ns1:foo/ns1:bar/text()"/>
>> >   <to source='$foo' />
>> > </copy>
>> >
>> > <if condition="$foo =='test'">
>> >   <then/>
>> >   <else/>
>> > </if>
>> >
>> > then it is more generic. And no need to repeat the xpath, source
>> veriables
>> > with each mediator. But for a simple xpath based filter need to use
>> another
>> > copy mediator etc ..
>> >
>> > thanks,
>> > Amila.
>> >
>> >
>> >
>> >
>> >
>> >>
>> >> --Srinath
>> >>
>> >> On Fri, Sep 30, 2011 at 3:03 PM, Kasun Indrasiri <ka...@wso2.com>
>> wrote:
>> >> > Hi all,
>> >> > In the current ESB implementation we have couple of mediators for
>> >> > message
>> >> > routing. While 'Filter' and 'Switch' mediators provide basic level of
>> >> > message filtering, router mediator is also doing very similar to what
>> >> > filter/switch mediators do. The usage of Router mediator is rare and
>> >> > often
>> >> > got replaced by filter/switch mediators. So, IMO, Router Mediator is
>> >> > redundant, unless it provides some advance/complex routing logic
>> >> > support.
>> >> > In the ESB 4.0.0 release, we introduces 'Conditional Router', which
>> is
>> >> > intended to route messages based on HTTP headers, query parameters
>> and
>> >> > url.
>> >> > However, this doesn't support routing based on message payload. But
>> >> > unlike
>> >> > 'Router', the 'Conditional Router' introduces uses the concepts of
>> >> > 'Evaluators' (And, Or, Match, Equal, Not) that can be utilize to
>> >> > construct
>> >> > complex routing logics.
>> >> > eg:
>> >> >  <conditionalRouter continueAfter="false">
>> >> >                     <conditionalRoute breakRoute="false">
>> >> >                         <condition>
>> >> >                             <and xmlns="">
>> >> >                                 <match type="header"
>> >> > source="my_custom_header1" regex="foo.*"/>
>> >> >                                 <match type="url"
>> >> > regex="/services/StockQuoteProxy.*"/>
>> >> >                             </and>
>> >> >                         </condition>
>> >> >                         <target sequence="cnd2_seq"/>
>> >> >                     </conditionalRoute>
>> >> >                     <conditionalRoute breakRoute="false">
>> >> >                         <condition>
>> >> >                             <and xmlns="">
>> >> >                                 <match type="header"
>> >> > source="my_custom_header2" regex="bar.*"/>
>> >> >                                 <equal type="param" source="qparam1"
>> >> > value="qpv_foo"/>
>> >> >                                 <or>
>> >> >                                     <match type="url"
>> >> > regex="/services/StockQuoteProxy.*"/>
>> >> >                                     <match type="header"
>> >> > source="my_custom_header3" regex="foo.*"/>
>> >> >                                 </or>
>> >> >                                 <not>
>> >> >                                     <equal type="param"
>> source="qparam2"
>> >> > value="qpv_bar"/>
>> >> >                                 </not>
>> >> >                             </and>
>> >> >                         </condition>
>> >> >                         <target sequence="cnd3_seq"/>
>> >> >                     </conditionalRoute>
>> >> > </conditionalRouter>
>> >> > So, we can easily add message level routing capability(so that we can
>> >> > drop
>> >> > Router mediator) to Conditional Router and with that we'll get the
>> power
>> >> > of
>> >> > using evaluators for message level routing as well. Having bunch of
>> >> > mediators that's doing the similar thing, cause a negative effect on
>> >> > ESB's
>> >> > usability.
>> >> > (Most of the pointed listed here, were discussed during last
>> code-review
>> >> > of
>> >> > Group-D.)
>> >> >
>> >> >
>> >> > [1] http://wso2.org/project/esb/java/4.0.0/docs/mediator_guide.html
>> >> >
>> >> > Thanks,
>> >> > --
>> >> > Kasun Indrasiri
>> >> > Associate Technical Lead
>> >> > WSO2, Inc.; http://wso2.com
>> >> > lean.enterprise.middleware
>> >> >
>> >> > cell: +94 71 536 4128
>> >> > Blog : http://kasunpanorama.blogspot.com/
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> ============================
>> >> Srinath Perera, Ph.D.
>> >>   Senior Software Architect, WSO2 Inc.
>> >>   Visiting Faculty, University of Moratuwa
>> >>   Member, Apache Software Foundation
>> >>   Research Scientist, Lanka Software Foundation
>> >>   Blog: http://srinathsview.blogspot.com/
>> >> _______________________________________________
>> >> Carbon-dev mailing list
>> >> Carbon-dev@wso2.org
>> >> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>> >
>> >
>>
>>
>>
>> --
>> ============================
>> Srinath Perera, Ph.D.
>>    http://www.cs.indiana.edu/~hperera/
>>    http://srinathsview.blogspot.com/
>> _______________________________________________
>> Architecture mailing list
>> architect...@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>
>
>
> --
> Hiranya Jayathilaka
> Associate Technical Lead;
> WSO2 Inc.;  http://wso2.org
> E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>
> _______________________________________________
> Architecture mailing list
> architect...@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Sanjiva Weerawarana, Ph.D.
Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
email: sanj...@wso2.com; phone: +94 11 763 9614; cell: +94 77 787 6880 | +1
650 265 8311
blog: http://sanjiva.weerawarana.org/

Lean . Enterprise . Middleware
_______________________________________________
Carbon-dev mailing list
Carbon-dev@wso2.org
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to