camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrei Shakirin <>
Subject RE: Best practices to communicate between Camel Contexts in different OSGi bundles
Date Fri, 23 Sep 2011 08:17:23 GMT
Hi Freeman,

yep, it is also the possibility.
However JBI & NMR uses the WSDL routing semantics and mandates XML payloads, that is not
always desired.


-----Original Message-----
From: Freeman Fang [] 
Sent: 23 September 2011 09:56
Subject: Re: Best practices to communicate between Camel Contexts in different OSGi bundles


Another solution is use camel-nmr(camel nmr component is from Apache
Servicemix) endpoint, you may need take a look at[1] to get more details.

On 2011-9-23, at 下午3:46, Andrei Shakirin wrote:

> 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.

Freeman Fang

Twitter: freemanfang

View raw message