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.) > Another thing we saw was in consistency of naming. Lets take the following two mediators <router> <route expression="//ns1:foo/ns1:bar" match="test"> <target /> </route> </router> <filter source="//ns1:foo/ns1:bar" regex="test"> <then /> <else /> </filter> Both say the same thing but different attribute names are used at different mediators. This can be seen in other places as well. Therefore I think it is better to follow one set of naming convention in each mediators. thanks, Amila. > > > * > * > [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/ >
_______________________________________________ Carbon-dev mailing list Carbon-dev@wso2.org http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev