Hi, >From my testing, this hasn't changed in the latest versions. Meaning calling a kamelet from a kamelet doesn't work.
Though Claus' comment make it sound that in theory it should be working so maybe this requires just a small fix. tiistai 3. joulukuuta 2024 Rohan Emmanuel <rohan.emmanue...@gmail.com> kirjoitti: > @pasqualre congiusti: I came across this discussion thread and wanted to > confirm if it's still possible to achieve this. > > @claus: Thanks for the reply. I tried that approach, but it didn't work for > me. I am on Camel 4.4.0. I get an error saying the Kamelot is not found, > but I am able to invoke the kamelet individually from the route.yaml. If I > add the call of the second kamelet inside the first Kamelet, I get the > error below. any pointers would be appreciated. > > snippet of route.yaml > --- > - kamelet: nonstop-logtwo?response_class_name=second > - kamelet: nonstop-log?response_class_name=first > --- > snippet of 1st kamelet: > --- > - to: kamelet:nonstop-logtwo?response_class_name=abas > --- > > Stack Trace below for reference : > caused by: org.apache.camel.RuntimeCamelException: > org.apache.camel.VetoCamelContextStartException: Failure creating route > from template: nonstop-log > at org.apache.camel.RuntimeCamelException.wrapRuntimeException > (RuntimeCamelException.java:66) > at org.apache.camel.support.service.BaseService.doFail > (BaseService.java:407) > at org.apache.camel.impl.engine.AbstractCamelContext.doFail > (AbstractCamelContext.java:2990) > at org.apache.camel.support.service.BaseService.fail > (BaseService.java:336) > at org.apache.camel.impl.engine.AbstractCamelContext.failOnStartup > (AbstractCamelContext.java:3881) > at org.apache.camel.impl.engine.AbstractCamelContext.init > (AbstractCamelContext.java:2034) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:105) > at org.apache.camel.impl.engine.AbstractCamelContext.start > (AbstractCamelContext.java:2040) > at org.apache.camel.impl.DefaultCamelContext.start > (DefaultCamelContext.java:212) > at org.apache.camel.main.Main.doStart (Main.java:142) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:113) > at org.apache.camel.main.MainSupport.run (MainSupport.java:88) > at org.apache.camel.main.MainCommandLineSupport.run > (MainCommandLineSupport.java:229) > at org.apache.camel.example.MyApplication.main (MyApplication.java:30) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:77) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:568) > at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:392) > at java.lang.Thread.run (Thread.java:842) > Caused by: org.apache.camel.VetoCamelContextStartException: Failure > creating route from template: nonstop-log > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized > (KameletComponent.java:452) > at org.apache.camel.impl.engine.AbstractCamelContext.doInit > (AbstractCamelContext.java:2395) > at org.apache.camel.support.service.BaseService.init > (BaseService.java:78) > at org.apache.camel.impl.engine.AbstractCamelContext.init > (AbstractCamelContext.java:2021) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:105) > at org.apache.camel.impl.engine.AbstractCamelContext.start > (AbstractCamelContext.java:2040) > at org.apache.camel.impl.DefaultCamelContext.start > (DefaultCamelContext.java:212) > at org.apache.camel.main.Main.doStart (Main.java:142) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:113) > at org.apache.camel.main.MainSupport.run (MainSupport.java:88) > at org.apache.camel.main.MainCommandLineSupport.run > (MainCommandLineSupport.java:229) > at org.apache.camel.example.MyApplication.main (MyApplication.java:30) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:77) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:568) > at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:392) > at java.lang.Thread.run (Thread.java:842) > Caused by: org.apache.camel.component.kamelet.KameletNotFoundException: > Kamelet with id nonstop-log not found in locations: classpath:/kamelets > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint > (KameletComponent.java:440) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized > (KameletComponent.java:449) > at org.apache.camel.impl.engine.AbstractCamelContext.doInit > (AbstractCamelContext.java:2395) > at org.apache.camel.support.service.BaseService.init > (BaseService.java:78) > at org.apache.camel.impl.engine.AbstractCamelContext.init > (AbstractCamelContext.java:2021) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:105) > at org.apache.camel.impl.engine.AbstractCamelContext.start > (AbstractCamelContext.java:2040) > at org.apache.camel.impl.DefaultCamelContext.start > (DefaultCamelContext.java:212) > at org.apache.camel.main.Main.doStart (Main.java:142) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:113) > at org.apache.camel.main.MainSupport.run (MainSupport.java:88) > at org.apache.camel.main.MainCommandLineSupport.run > (MainCommandLineSupport.java:229) > at org.apache.camel.example.MyApplication.main (MyApplication.java:30) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:77) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:568) > at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:392) > at java.lang.Thread.run (Thread.java:842) > Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create > route nonstop-log-3 at: >>> To[kamelet://sink?routeId=nonstop-log-3] <<< in > route: Route(nonstop-log-3)[From[kamelet://source?routeId=nonstop-l... > because of Failed to resolve endpoint: kamelet://sink?routeId=nonstop-log-3 > due to: Property with key [templateId] not found in properties from text: > {{templateId}} > at org.apache.camel.reifier.RouteReifier.doCreateRoute > (RouteReifier.java:228) > at org.apache.camel.reifier.RouteReifier.createRoute > (RouteReifier.java:79) > at org.apache.camel.impl.DefaultModelReifierFactory.createRoute > (DefaultModelReifierFactory.java:49) > at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions > (DefaultCamelContext.java:728) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint > (KameletComponent.java:435) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized > (KameletComponent.java:449) > at org.apache.camel.impl.engine.AbstractCamelContext.doInit > (AbstractCamelContext.java:2395) > at org.apache.camel.support.service.BaseService.init > (BaseService.java:78) > at org.apache.camel.impl.engine.AbstractCamelContext.init > (AbstractCamelContext.java:2021) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:105) > at org.apache.camel.impl.engine.AbstractCamelContext.start > (AbstractCamelContext.java:2040) > at org.apache.camel.impl.DefaultCamelContext.start > (DefaultCamelContext.java:212) > at org.apache.camel.main.Main.doStart (Main.java:142) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:113) > at org.apache.camel.main.MainSupport.run (MainSupport.java:88) > at org.apache.camel.main.MainCommandLineSupport.run > (MainCommandLineSupport.java:229) > at org.apache.camel.example.MyApplication.main (MyApplication.java:30) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:77) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:568) > at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:392) > at java.lang.Thread.run (Thread.java:842) > Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to > resolve endpoint: kamelet://sink?routeId=nonstop-log-3 due to: Property > with key [templateId] not found in properties from text: {{templateId}} > at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint > (AbstractCamelContext.java:830) > at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint > (AbstractCamelContext.java:730) > at org.apache.camel.support.CamelContextHelper.resolveEndpoint > (CamelContextHelper.java:123) > at org.apache.camel.reifier.SendReifier.resolveEndpoint > (SendReifier.java:47) > at org.apache.camel.reifier.SendReifier.createProcessor > (SendReifier.java:37) > at org.apache.camel.reifier.ProcessorReifier.makeProcessor > (ProcessorReifier.java:879) > at org.apache.camel.reifier.ProcessorReifier.addRoutes > (ProcessorReifier.java:619) > at org.apache.camel.reifier.RouteReifier.doCreateRoute > (RouteReifier.java:224) > at org.apache.camel.reifier.RouteReifier.createRoute > (RouteReifier.java:79) > at org.apache.camel.impl.DefaultModelReifierFactory.createRoute > (DefaultModelReifierFactory.java:49) > at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions > (DefaultCamelContext.java:728) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint > (KameletComponent.java:435) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized > (KameletComponent.java:449) > at org.apache.camel.impl.engine.AbstractCamelContext.doInit > (AbstractCamelContext.java:2395) > at org.apache.camel.support.service.BaseService.init > (BaseService.java:78) > at org.apache.camel.impl.engine.AbstractCamelContext.init > (AbstractCamelContext.java:2021) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:105) > at org.apache.camel.impl.engine.AbstractCamelContext.start > (AbstractCamelContext.java:2040) > at org.apache.camel.impl.DefaultCamelContext.start > (DefaultCamelContext.java:212) > at org.apache.camel.main.Main.doStart (Main.java:142) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:113) > at org.apache.camel.main.MainSupport.run (MainSupport.java:88) > at org.apache.camel.main.MainCommandLineSupport.run > (MainCommandLineSupport.java:229) > at org.apache.camel.example.MyApplication.main (MyApplication.java:30) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:77) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:568) > at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:392) > at java.lang.Thread.run (Thread.java:842) > Caused by: java.lang.IllegalArgumentException: Property with key > [templateId] not found in properties from text: {{templateId}} > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue > (DefaultPropertiesParser.java:373) > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty > (DefaultPropertiesParser.java:232) > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParseNested > (DefaultPropertiesParser.java:169) > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse > (DefaultPropertiesParser.java:118) > at > org.apache.camel.component.properties.DefaultPropertiesParser.parseUri > (DefaultPropertiesParser.java:70) > at org.apache.camel.component.properties.PropertiesComponent.parseUri > (PropertiesComponent.java:320) > at org.apache.camel.component.properties.PropertiesComponent.parseUri > (PropertiesComponent.java:171) > at > org.apache.camel.impl.engine.DefaultCamelContextExtension.resolvePropertyPlaceholders > (DefaultCamelContextExtension.java:315) > at > org.apache.camel.impl.engine.AbstractCamelContext.resolvePropertyPlaceholders > (AbstractCamelContext.java:1543) > at org.apache.camel.component.kamelet.Kamelet.extractTemplateId > (Kamelet.java:66) > at org.apache.camel.component.kamelet.KameletComponent.createEndpoint > (KameletComponent.java:107) > at org.apache.camel.support.DefaultComponent.createEndpoint > (DefaultComponent.java:170) > at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint > (AbstractCamelContext.java:796) > at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint > (AbstractCamelContext.java:730) > at org.apache.camel.support.CamelContextHelper.resolveEndpoint > (CamelContextHelper.java:123) > at org.apache.camel.reifier.SendReifier.resolveEndpoint > (SendReifier.java:47) > at org.apache.camel.reifier.SendReifier.createProcessor > (SendReifier.java:37) > at org.apache.camel.reifier.ProcessorReifier.makeProcessor > (ProcessorReifier.java:879) > at org.apache.camel.reifier.ProcessorReifier.addRoutes > (ProcessorReifier.java:619) > at org.apache.camel.reifier.RouteReifier.doCreateRoute > (RouteReifier.java:224) > at org.apache.camel.reifier.RouteReifier.createRoute > (RouteReifier.java:79) > at org.apache.camel.impl.DefaultModelReifierFactory.createRoute > (DefaultModelReifierFactory.java:49) > at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions > (DefaultCamelContext.java:728) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint > (KameletComponent.java:435) > at > org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized > (KameletComponent.java:449) > at org.apache.camel.impl.engine.AbstractCamelContext.doInit > (AbstractCamelContext.java:2395) > at org.apache.camel.support.service.BaseService.init > (BaseService.java:78) > at org.apache.camel.impl.engine.AbstractCamelContext.init > (AbstractCamelContext.java:2021) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:105) > at org.apache.camel.impl.engine.AbstractCamelContext.start > (AbstractCamelContext.java:2040) > at org.apache.camel.impl.DefaultCamelContext.start > (DefaultCamelContext.java:212) > at org.apache.camel.main.Main.doStart (Main.java:142) > at org.apache.camel.support.service.BaseService.start > (BaseService.java:113) > at org.apache.camel.main.MainSupport.run (MainSupport.java:88) > at org.apache.camel.main.MainCommandLineSupport.run > (MainCommandLineSupport.java:229) > at org.apache.camel.example.MyApplication.main (MyApplication.java:30) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:77) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:568) > at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:392) > at java.lang.Thread.run (Thread.java:842) > [ERROR] ************************************* > > On Tue, Dec 3, 2024 at 9:38 PM Pasquale Congiusti < > pasquale.congiu...@gmail.com> wrote: > >> Errata link: >> https://lists.apache.org/thread/22bzj6ghxhjdffgv06zz2pcg9htz99mo >> >> On Tue, Dec 3, 2024 at 5:07 PM Pasquale Congiusti < >> pasquale.congiu...@gmail.com> wrote: >> >> > Hello, >> > this question pops up from time to time [1]. I recall that was something >> > not doable in the previous versions of Camel. However, I don't know if >> this >> > is no longer the case or which would be the mechanisms required to >> > introduce such a recursiveness. Definitely it is good to know if this is >> > something we can do with the actual status of the art of the core. >> > >> > Regards, >> > Pasquale. >> > >> > [1] https://lists.apache.org/list?users@camel.apache.org:2023-8 >> > >> > On Tue, Dec 3, 2024 at 4:41 PM Claus Ibsen <claus.ib...@gmail.com> >> wrote: >> > >> >> Hi >> >> >> >> Its just like another component. You can pass parameters via uri etc >> >> >> >> to("kamelet:second?foo=blah&cid=1234") >> >> >> >> >> >> >> >> On Tue, Dec 3, 2024 at 4:26 PM Rohan Emmanuel < >> rohan.emmanue...@gmail.com >> >> > >> >> wrote: >> >> >> >> > hi, >> >> > is it possible to call another kamelet from a kamelet? >> >> > i was looking to invoke my custom kamelet from my another kamelet. is >> >> this >> >> > supported? how to pass properties from one kamelet to another? >> >> > can anyone point me to the docs/examples? >> >> > any help would be appreciated. >> >> > >> >> > -- >> >> > Regards, >> >> > Rohan Emmanuel >> >> > >> >> >> >> >> >> -- >> >> Claus Ibsen >> >> ----------------- >> >> @davsclaus >> >> Camel in Action 2: https://www.manning.com/ibsen2 >> >> >> > >> > > > -- > Regards, > Rohan Emmanuel >