Yes that's the case currently.
OsgiDefaultCamelContext updates the registry and inserts OsgiServiceRegistry as 
the first registry into the list.

It would make more sense to keep the default Camel Bean registry at the head of 
this list.

- Martin

On 01.07.2020 11:48, Jean-Baptiste Onofre wrote:
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 <lich...@yahoo.com.INVALID> 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 <lich...@yahoo.com.INVALID> 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
<lich...@yahoo.com.invalid> 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