You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2019/07/25 06:52:01 UTC
[jira] [Resolved] (CAMEL-13461) Http4 Component is not propagated
correctly in OSGI environment
[ https://issues.apache.org/jira/browse/CAMEL-13461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-13461.
---------------------------------
Resolution: Won't Fix
> Http4 Component is not propagated correctly in OSGI environment
> ---------------------------------------------------------------
>
> Key: CAMEL-13461
> URL: https://issues.apache.org/jira/browse/CAMEL-13461
> Project: Camel
> Issue Type: Bug
> Components: camel-http4
> Affects Versions: 2.23.1
> Reporter: Kamil
> Priority: Minor
>
> I'm using Camel 2.23.1 with Karaf 4.2.5, with following features installed:
> {code:java}
> camel camel-scr camel-stream camel-http4 camel-jackson camel-kafka camel-quartz2
> {code}
> I have one bundle (let's call it context-provder) which consists of Activator only:
> {code:java}
> public class Activator implements BundleActivator {
> private ServiceRegistration<CamelContext> registrationCamelContext;
> private CamelContext camelContext;
> @Override
> public void start(final BundleContext bundleContext) throws Exception {
> camelContext = new OsgiDefaultCamelContext(bundleContext);
> registrationCamelContext = bundleContext.registerService(CamelContext.class, camelContext, null);
> camelContext.start();
> }
> }
> {code}
> And the second bundle (let's call it context-consumer) which uses several Camel componets (kafka, quartz2, http4)
> {code:java}
> @Component(
> immediate = true,
> service = MyService.class
> )
> public class MyServiceImpl implements MyService {
> @Activate
> public NotificationServiceImpl(@Reference final CamelContext camelContext) throws Exception {
> super(camelContext)
> camelContext.addRoutes(this);
> }
> @Override
> public void configure() throws Exception {
> //routes using http4, quartz2, kafka etc.
> }
> }
> {code}
> While all other routes are "seen" by Camel and work without any problems, http4 is exception to the rule.
> Camel throws:
> {code:java}
> org.apache.karaf.features.internal.util.MultiException: Error restarting bundles:
> Activator start error in bundle context.consumer [150].
> at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1005)
> at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1058)
> at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:994)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
> at java.base/java.lang.Thread.run(Thread.java:844)
> Suppressed: org.osgi.framework.BundleException: Activator start error in bundle context.consumer [150].
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2290)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2146)
> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)
> at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:161)
> at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1149)
> at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:997)
> ... 6 more
> Caused by: java.lang.IllegalArgumentException: Cannot find endpoint with scheme https4
> at org.apache.camel.runtimecatalog.AbstractCamelCatalog.endpointProperties(AbstractCamelCatalog.java:542)
> at org.apache.camel.http.common.HttpSendDynamicAware.prepare(HttpSendDynamicAware.java:57)
> at org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:118)
> at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
> at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
> at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
> at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
> at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:60)
> at org.apache.camel.impl.DeferProducer.process(DeferProducer.java:72)
> at org.apache.camel.component.bean.AbstractCamelInvocationHandler$1.call(AbstractCamelInvocationHandler.java:193)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at org.apache.camel.component.bean.AbstractCamelInvocationHandler.doInvoke(AbstractCamelInvocationHandler.java:211)
> at org.apache.camel.component.bean.AbstractCamelInvocationHandler.invokeProxy(AbstractCamelInvocationHandler.java:173)
> at org.apache.camel.component.bean.CamelInvocationHandler.doInvokeProxy(CamelInvocationHandler.java:51)
> at org.apache.camel.component.bean.AbstractCamelInvocationHandler.invoke(AbstractCamelInvocationHandler.java:90)
> at com.sun.proxy.$Proxy113.send(Unknown Source)
> at context.consumer.MyServiceImpl.callCamel(MyServiceImpl.java:87)
> at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
> at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
> at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
> at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318)
> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
> at context.consumer.MyActivator.start(MyActivator.java:43)
> at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240)
> ... 12 more
> {code}
> While - as I said - other components works just fine.
> One of the workaround is to move Activator to context-consumer bundle - then Camel magically starts to "see" http4 component.
> Other workaround is to register component explicitly by:
> {code:java}
> camelContext.addComponent("http4", new HttpComponent());
> {code}
> in the context-provider Activator, but then - why kafka and quartz2 does not have such problems?
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)