Hello guys,

One more question,

What is the reason to allow DefaultEndpoint.isSingleton() and 
DefaultProducer.isSingleton() return false as it prevents caching of these 
objects and new instances of endpoints and producers will be created on each 
lookup?


Best Regards,
Sergey 


-----Original Message-----
From: Zhemzhitsky Sergey [mailto:sergey_zhemzhit...@sberbank-cib.ru] 
Sent: Thursday, October 25, 2012 12:52 PM
To: users@camel.apache.org
Subject: RE: Endpoint and Producer isSingleton behavior in the OSGi

Hello Claus,

Thanks a lot for clarification!

Best Regards,
Sergey

-----Original Message-----
From: Claus Ibsen [mailto:claus.ib...@gmail.com] 
Sent: Thursday, October 25, 2012 12:49 PM
To: users@camel.apache.org
Subject: Re: Endpoint and Producer isSingleton behavior in the OSGi

On Thu, Oct 25, 2012 at 10:18 AM, Zhemzhitsky Sergey 
<sergey_zhemzhit...@sberbank-cib.ru> wrote:
> Hello camel gurus,
>
> I just need some clarification about how DefaultEndpoint, DefaultProducer 
> behave depends on whether their isSingleton method returns true or false.
>
> My understanding is the follosing:
>
>
> 1.       If DefaultEndpoint.isSingleton() returns true the same instance of 
> the endpoint will be reused across all the camel contexts, and in case of 
> OSGi this mean that the same endpoint instance will be reused across all the 
> bundles that contain some camel functionality.
>

No its reused per CamelContext. Endpoints / producers / consumers et all is per 
CamelContext and not shared across bundles.



> 2.       If DefaultEndpoint.isSingleton() returns false then for each camel 
> context a new instance of the endpoint is created and in the OSGi the new 
> instance of the endpoint will be created for each separate bundle that 
> contains a camel context.
>

if false, then the endpoint is not stored in the endpoint registry for any 
re-use. And on each endpoint lookup a new instance is created.


> 3.       If DefaultProducer.isSingleton() returns true then the same instance 
> of the producer, i.e., will be used every time not depending on the endpoint 
> uri, i.e. for the following producers <to uri=”comp:producer?param1=val1”/> 
> and <to uri=”comp:producer?param1=val1&param2=val2”/> will be used the same 
> instance of the producer?
>

No these are 2 different endpoints (unless the endpoint supports lenient 
properties - eg a bit special but think like a http endpoint where any of the 
uri parameters can be dynamic, but you want to use the same Camel endpoint)


> 4.       If DefaultProducer.isSingleton() returns false then for the 
> different endpoint URIs will be returned different instances of producer.
>
> So summarizing all the points above if DefaultEndpoint.isSingleton() is true 
> and DefaultProducer.isSingleton() in the OSGi environment then the producers 
> will be shared across all the camel contexts located in all the OSGi bundles, 
> right?
>
>
> Best Regards,
> Sergey
>
>
> _______________________________________________________
> CONFIDENTIALITY NOTICE: This email and any files attached to it may be 
> confidential. If you are not the intended recipient you are notified that 
> using, copying, distributing or taking any action in reliance on the contents 
> of this information is strictly prohibited. If you have received this email 
> in error please notify the sender and delete this email.
>



--
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to