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

Reply via email to