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
>

Reply via email to