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