Ah you mean that Camel OSGi always looking for service first before falling 
back to bean located in the same container as the camel context (spring or 
blueprint) ?

If so, we have to improve camel-core-osgi in the lookup to add an option 
defining the bean resolution order.

Regards
JB

> Le 1 juil. 2020 à 11:43, Martin Lichtin <[email protected]> a écrit :
> 
> Hi JB
> 
> I would, if that was the issue.
> However in all the CamelContexts I'm only using regular beans, not calling an 
> OSGi service.
> 
> Ideally there should be a way to tell Camel to not look into the OSGi 
> registry when resolving bean names. But seems hardcoded?
> 
> - Martin
> 
> On 29.06.2020 09:34, Jean-Baptiste Onofre wrote:
>> Hi Martin,
>> 
>> What about implementing a caching service as proxy in front of your bean ?
>> It’s pretty easy with Karaf (and you have a caching service on demand).
>> So, the Camel Route will always request the bean, but the bean logic can be 
>> cached.
>> 
>> Thoughts ?
>> 
>> Regards
>> JB
>> 
>>> Le 29 juin 2020 à 09:29, Martin Lichtin <[email protected]> a écrit 
>>> :
>>> 
>>> Thanks.
>>> Unfortunately the cache does not seem to kick in.
>>> Also it's supposed to be turned on by default (xsd: "Caches the bean 
>>> lookup, to avoid lookup up bean on every usage. Default value: true".
>>> 
>>> The bean is called from a REST CamelContext configured such as
>>> 
>>>     <rest path="/mypath">
>>>       <get outType="myType">
>>>         <route>
>>>           <to uri="bean:myBean?cache=true&amp;method=myMethod()" />
>>>         </route>
>>>       </get>
>>> 
>>> I don't see this bean lookup behaviour for "normal" CamelContexts, so 
>>> caching seems to work, but not in this case here.
>>> 
>>> - Martin
>>> 
>>> On 27.06.2020 07:59, Claus Ibsen wrote:
>>>> You can cache the bean so the lookup is only done once.
>>>> 
>>>> to("bean:foo?cache=true")
>>>> 
>>>> In Camel 3.x there is a new scope option instead
>>>> 
>>>> On Thu, Jun 25, 2020 at 5:09 PM Martin Lichtin
>>>> <[email protected]> wrote:
>>>>> Is there a way to tell Camel to not search OSGi services when looking up 
>>>>> a bean?
>>>>> 
>>>>> It seems by default it's continuously looking up the service references, 
>>>>> would like to turn this off.
>>>>> 
>>>>> Stack Trace    Sample Count    Percentage(%)
>>>>> java.util.TreeMap.getEntryUsingComparator(Object)    17    3.753
>>>>>     java.util.TreeMap.getEntry(Object)    17    3.753
>>>>>        java.util.TreeMap.get(Object)    17    3.753
>>>>> org.apache.felix.framework.ServiceRegistrationImpl.getProperty(String) 11 
>>>>>    2.428
>>>>> org.apache.felix.framework.ServiceRegistrationImpl$ServiceReferenceMap.get(Object)
>>>>>  11    2.428
>>>>> org.apache.felix.framework.capabilityset.CapabilitySet.match(Set, 
>>>>> SimpleFilter)    11    2.428
>>>>> org.apache.felix.framework.capabilityset.CapabilitySet.match(SimpleFilter,
>>>>>  boolean)    9    1.987
>>>>> org.apache.felix.framework.ServiceRegistry.getServiceReferences(String, 
>>>>> SimpleFilter)    9    1.987
>>>>> org.apache.felix.framework.Felix.getServiceReferences(BundleImpl, String, 
>>>>> String, boolean)    9    1.987
>>>>> org.apache.felix.framework.Felix.getAllowedServiceReferences(BundleImpl, 
>>>>> String, String, boolean)    9    1.987
>>>>> org.apache.felix.framework.BundleContextImpl.getServiceReferences(String, 
>>>>> String)    9    1.987
>>>>> org.apache.camel.core.osgi.OsgiServiceRegistry.lookupByName(String) 9    
>>>>> 1.987
>>>>> org.apache.camel.impl.CompositeRegistry.lookupByName(String)    9 1.987
>>>>> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByName(String)
>>>>>  9    1.987
>>>>> org.apache.camel.component.bean.RegistryBean.lookupBean()    9 1.987
>>>>> org.apache.camel.component.bean.RegistryBean.getBean()    9    1.987
>>>>> org.apache.camel.component.bean.AbstractBeanProcessor.process(Exchange, 
>>>>> AsyncCallback)    9    1.987
>>>>> org.apache.camel.component.bean.BeanProcessor.process(Exchange, 
>>>>> AsyncCallback)    9    1.987
>>>>> org.apache.camel.component.bean.BeanProducer.process(Exchange, 
>>>>> AsyncCallback)    9    1.987
>>>>> org.apache.camel.processor.SendProcessor.process(Exchange, AsyncCallback) 
>>>>>    9    1.987
>>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(Exchange, 
>>>>> AsyncCallback)    9    1.987
>>>>> org.apache.camel.processor.CamelInternalProcessor.process(Exchange, 
>>>>> AsyncCallback)    9    1.987
>>>>> org.apache.camel.processor.CamelInternalProcessor.process(Exchange, 
>>>>> AsyncCallback)    9    1.987
>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Exchange) 9    
>>>>> 1.987
>>>>> org.apache.camel.http.common.CamelServlet.doService(HttpServletRequest, 
>>>>> HttpServletResponse)    9    1.987
>>>>> 
>>>>> - Martin
>>>> 
>> 

Reply via email to