We use the camel jms/activemq component for this. @Charles: Could you please share the advantges of camel nmr over camel jms/activemq with us!?
Best, Christian On Wed, Oct 12, 2011 at 8:36 AM, Charles Moulliard <cmoulli...@gmail.com>wrote: > Hi, > > On Karaf/Servicemix, the recommended approach to communicate between > camel routes deployed in separate bundles is to use camel-nmr > component > > Regards, > > Charles > > > > On Fri, Sep 23, 2011 at 12:40 PM, Christian Schneider > <ch...@die-schneider.net> wrote: > > Hi Andrei, > > > > how about using simple OSGi services? You can create a service reference > in > > your spring context and call it as a bean in a camel route. > > This has the advantage that the communication is not tied to camel. So > the > > bundle implementing the service does not have to know about camel. > > > > Christian > > > > > > Am 23.09.2011 09:46, schrieb Andrei Shakirin: > >> > >> Hi, > >> > >> I would like to ask what is the best practice to establish communication > >> between two Camel contexts deployed in a different bundles in OSGi > >> environment. > >> > >> Actually I see the following ways: > >> > >> A) VM component. > >> Declare and deploy different contexts and provide communication > using > >> "vm:" > >> Disadvantage: VM designed for async communication and creates new > >> threads for consuming messages that not always desired. Addition > settings > >> for VM is necessary to get synchronious response. > >> > >> B) JMS component. > >> The same as (A) but uses JMS component > >> Disadvantage: JMS produces overhead that is not always desired. > >> > >> C) Share Camel Context as OSGi Service and provide communication using > >> "direct:" > >> Expose Camel Context as OSGi service, get it in other bundles and > add > >> the routes. Use "direct:" for communication. > >> Disadvantage: have no idea how use this approach with Spring routes > >> configuration > >> > >> D) Expose routes as OSGi services > >> Each route is exposed as OSGi service and uses the > producerTemplate > >> to kick off the route when another bundle invokes on the service. > >> Disadvantage: requires additional code to expose and invoke the > >> routes > >> > >> E) Share Spring context via "<import resource>" > >> One bundle exports spring configuration as resource, another one > >> imports it in Spring configuration. Spring and Camel context are shared. > >> Disadvantage: import resources is not the best OSGi practice, > bundles > >> are staying coupled > >> > >> Do you prefer one of proposed ways or there is a different one? > >> > >> Regards, > >> Andrei. > >> > > > > > > -- > > -- > > Christian Schneider > > http://www.liquid-reality.de > > > > Open Source Architect > > Talend Application Integration Division http://www.talend.com > > > > >