That's really my main goal. If we fit into what already exists more, we'll be able to better leverage everything.
On Thu, Jun 21, 2012 at 8:48 AM, Christian Schneider <ch...@die-schneider.net> wrote: > +1 > > I like that aproach. It would make the OSGi services component a lot > simpler. > > > from("foo:bar").recipientList(osgiServices("myldapfilter")) > > I guess we can use a similar aproach to achieve load balancing. Not sure if > the example below already would work but I am sure we could make it work > this way or similar: > > from("foo:bar").loadbalance().roundRobin().recepientList(osgiServices("myldapfilter")) > > > Christian > > Am 21.06.2012 08:27, schrieb Guillaume Nodet: > >> Yeah, and I agree leveraging OSGi services for that is a good idea. >> That's not really what I'm concerned about. >> >> The goal is to have a way to multicast a message to a set of endpoint >> which will be discovered at runtime, and that's not really OSGi >> specific (though the fact that OSGi has a service registry make that >> use case very relevant). >> I'd like to reuse what camel-core provides for that instead of going >> around and implementing a brand new component. >> The dynamic recipient list works with an Expression which returns a >> list of endpoints (either Endpoint or string uris), so why not writing >> such an expression ? This expression could easily use a >> ServiceTracker internally to track changes on services and the >> expression itself could be an osgi filter... >> >> from("foo:bar").recipientList(osgiServices("myldapfilter")) >> >> We could even maybe make use of the CamelContext internal registry >> which can do some type of discovery (though the osgi implementation is >> lacking a lot of stuff). >> A simple one would at least be some kind of regular expression that >> would match some endpoints. We may need something slightly more >> specific for vm:// and direct-vm:// which can be used for >> cross-camelContext exchanges. >> >> And sorry if I seem a bit reluctant, I'm just trying to make things >> fit more cleanly in camel, and improve camel core where it needs >> rather than implementing a new component. It just seems that your >> requirements are not really osgi specific and could be made slightly >> mode generic. >> >> On Thu, Jun 21, 2012 at 7:41 AM, Sergey Zhemzhitsky<szh.s...@gmail.com> >> wrote: >>> >>> Hi Guillaume, >>> >>> Of course if there is more convenient way to communicate between >>> bundles there is no need in the component. On the moment of development >>> of this component there were multiple ways to do that, for instance: >>> >>> 1. jms component which is rather heavyweight to do inter-bundle >>> communication in the same jvm. >>> 2. vm component which is asynchronous and does not support transactions >>> 3. nmr component which can be used in synchronous mode, but does not >>> support pub-sub, although it >>> does not prevent user from registering multiple consuming endpoints >>> with the same name, so the >>> messages are sent only to the first registered nmr-consumer. >>> >>> The new direct-vm component solves the issue with transactions (like >>> synchronous nmr does) but it does not >>> support pub-sub too. >>> >>> To use a dynamic recipient list it's necessary to have some kind of >>> custom code that will resolve >>> addresses of recipients at runtime. In such a case syncronous nmr can be >>> used as well. The benefit of >>> OSGi services is that this is a standard functionality of OSGi runtime >>> and even OSGi api predisposed >>> to work with an array of them. Furthermore you will get all the benefits >>> of OSGi services, i.e. >>> dynamism, priorities, etc. >>> >>> It would be nice if direct-vm allowed to configure pub-sub with all the >>> options of multicast processor. >>> >>> Regards, >>> Sergey >>> >>>> I'm a bit skeptic about this component. >>>> It seems at first glance that if conflates a few things like osgi >>>> service access, multicast, etc... >>>> If the goal is to do inter-bundle communication, the new component >>>> coming from CAMEL-5370 should already do that and I don't really see >>>> the need for the component. >>>> For the multicast, using a dynamic recipient list coupled with >>>> direct-vm should work. >>>> On Tue, May 22, 2012 at 7:57 PM,<szh.s...@gmail.com> wrote: >>>>> >>>>> Hi gurus, >>>>> >>>>> Recently I've published camel component that uses OSGi services to >>>>> communicate between endpoints in different bundles. >>>>> >>>>> Here is the link: https://github.com/szhem/camel-osgi >>>>> I've already raised JIRA issue - >>>>> https://issues.apache.org/jira/browse/CAMEL-5292 >>>>> >>>>> So I'd like to have some feedback if it seems to be useful. >>>>> >>>>> Regards, >>>>> Sergey >>>>> >>>>> >> >> > > > -- > > Christian Schneider > http://www.liquid-reality.de > > Open Source Architect > Talend Application Integration Division http://www.talend.com > -- ------------------------ Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ FuseSource, Integration everywhere http://fusesource.com