[ 
https://issues.apache.org/jira/browse/CAMEL-23652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18085240#comment-18085240
 ] 

Raymond commented on CAMEL-23652:
---------------------------------

Output from reproducer:


{code:java}
C:\Users\Raymond\Downloads\reproducer\camel-examples-main\routetemplate-xml>mvn 
camel:run
[INFO] Scanning for projects...
[INFO]
[INFO] ------< org.apache.camel.example:camel-example-routetemplate-xml >------
[INFO] Building Camel :: Example :: RouteTemplate :: XML 4.21.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- camel:4.21.0-SNAPSHOT:run (default-cli) @ 
camel-example-routetemplate-xml ---
[INFO] You can skip tests from the command line using: mvn camel:run 
-Dmaven.test.skip=true
[INFO] Kamelets YAML files detected in directory 
C:\Users\Raymond\Downloads\reproducer\camel-examples-main\routetemplate-xml\src\main\resources\kamelets
[INFO] Using custom org.apache.camel.example.MyApplication to initiate a 
CamelContext
[INFO] Starting Camel ...
[l.example.MyApplication.main()] MainSupport                    INFO  Apache 
Camel (Main) 4.21.0-SNAPSHOT is starting
[l.example.MyApplication.main()] AbstractCamelContext           INFO  Apache 
Camel 4.21.0-SNAPSHOT (camel-1) is starting
[l.example.MyApplication.main()] AbstractCamelContext           INFO  Routes 
startup (total:0)
[l.example.MyApplication.main()] AbstractCamelContext           INFO  Apache 
Camel 4.21.0-SNAPSHOT (camel-1) started in 11ms (build:0ms init:0ms start:11ms 
boot:228ms)
Load Kamelet
[l.example.MyApplication.main()] YamlDeserializerBase           WARN  YAML DSL 
compact notation detected in: classpath:kamelets/counter-source.kamelet.yaml. 
It is recommended to use canonical/normalized YAML DSL notation which is more 
tooling and AI friendly. Use Camel JBang to normalize: camel yaml normalize 
<file>
Load templated route
[ERROR] *************************************
[ERROR] Error occurred while running main from: 
org.apache.camel.example.MyApplication
[ERROR]
java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke 
(DirectMethodHandleAccessor.java:119)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.apache.camel.maven.RunMojo.lambda$execute$0 (RunMojo.java:400)
    at java.lang.Thread.run (Thread.java:1474)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
route: 69b3f52efbdb4c0011000147-7cee7a5b-d34c-450e-a8d0-02972b6ad07c at: >>> 
Bean[ref:{{counter}} method:getAndIncrement] <<< in route: 
Route(69b3f52efbdb4c0011000147-7cee7a5b-d34c-450e-a8d0-02972... because: 
Property with key [counter] not found in properties from text: {{counter}}
    at org.apache.camel.reifier.RouteReifier.doCreateRoute 
(RouteReifier.java:248)
    at org.apache.camel.reifier.RouteReifier.createRoute (RouteReifier.java:89)
    at org.apache.camel.impl.DefaultModelReifierFactory.createRoute 
(DefaultModelReifierFactory.java:49)
    at 
org.apache.camel.impl.DefaultCamelContext.lambda$doStartRouteDefinitions$3 
(DefaultCamelContext.java:770)
    at org.apache.camel.util.concurrent.ContextValueFactory.lambda$where$0 
(ContextValueFactory.java:82)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:65)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:81)
    at org.apache.camel.util.concurrent.ContextValue.where 
(ContextValue.java:186)
    at org.apache.camel.impl.engine.DefaultCamelContextExtension.createRoute 
(DefaultCamelContextExtension.java:436)
    at org.apache.camel.impl.DefaultCamelContext.doStartRouteDefinitions 
(DefaultCamelContext.java:768)
    at org.apache.camel.impl.DefaultCamelContext.lambda$startRouteDefinitions$0 
(DefaultCamelContext.java:641)
    at 
org.apache.camel.impl.engine.AbstractCamelContext.lambda$startingRoutes$2 
(AbstractCamelContext.java:1161)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:65)
    at org.apache.camel.util.concurrent.ContextValue.where 
(ContextValue.java:174)
    at org.apache.camel.impl.engine.AbstractCamelContext.startingRoutes 
(AbstractCamelContext.java:1159)
    at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions 
(DefaultCamelContext.java:640)
    at org.apache.camel.impl.DefaultModel.addRouteDefinitions 
(DefaultModel.java:315)
    at org.apache.camel.impl.DefaultModel.addRouteDefinition 
(DefaultModel.java:324)
    at org.apache.camel.impl.DefaultModel.doAddRouteFromTemplate 
(DefaultModel.java:653)
    at org.apache.camel.impl.DefaultModel.addRouteFromTemplate 
(DefaultModel.java:495)
    at org.apache.camel.impl.DefaultModel.addRouteFromTemplatedRoute 
(DefaultModel.java:691)
    at org.apache.camel.model.Model.addRouteFromTemplatedRoutes (Model.java:304)
    at org.apache.camel.impl.DefaultCamelContext.addRouteFromTemplatedRoutes 
(DefaultCamelContext.java:417)
    at org.apache.camel.builder.RouteBuilder.populateTemplatedRoutes 
(RouteBuilder.java:953)
    at org.apache.camel.builder.RouteBuilder.addTemplatedRoutesToCamelContext 
(RouteBuilder.java:781)
    at org.apache.camel.impl.engine.AbstractCamelContext.addTemplatedRoutes 
(AbstractCamelContext.java:1114)
    at org.apache.camel.spi.RoutesLoader.loadRoutes (RoutesLoader.java:102)
    at org.apache.camel.example.MyApplication.main (MyApplication.java:46)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke 
(DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.apache.camel.maven.RunMojo.lambda$execute$0 (RunMojo.java:400)
    at java.lang.Thread.run (Thread.java:1474)
Caused by: java.lang.IllegalArgumentException: Property with key [counter] not 
found in properties from text: {{counter}}
    at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue
 (DefaultPropertiesParser.java:413)
    at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty
 (DefaultPropertiesParser.java:243)
    at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParseNested
 (DefaultPropertiesParser.java:174)
    at 
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse
 (DefaultPropertiesParser.java:121)
    at org.apache.camel.component.properties.DefaultPropertiesParser.parseUri 
(DefaultPropertiesParser.java:73)
    at org.apache.camel.component.properties.PropertiesComponent.parseUri 
(PropertiesComponent.java:337)
    at org.apache.camel.component.properties.PropertiesComponent.parseUri 
(PropertiesComponent.java:168)
    at 
org.apache.camel.impl.engine.DefaultCamelContextExtension.resolvePropertyPlaceholders
 (DefaultCamelContextExtension.java:367)
    at 
org.apache.camel.impl.engine.AbstractCamelContext.resolvePropertyPlaceholders 
(AbstractCamelContext.java:1870)
    at org.apache.camel.support.CamelContextHelper.parseText 
(CamelContextHelper.java:416)
    at org.apache.camel.reifier.AbstractReifier.parseString 
(AbstractReifier.java:88)
    at org.apache.camel.reifier.BeanReifier.createProcessor 
(BeanReifier.java:39)
    at org.apache.camel.reifier.ProcessorReifier.lambda$makeProcessor$1 
(ProcessorReifier.java:860)
    at 
org.apache.camel.impl.engine.DefaultCamelContextExtension.lambda$createProcessor$1
 (DefaultCamelContextExtension.java:471)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:65)
    at org.apache.camel.util.concurrent.ContextValue.where 
(ContextValue.java:174)
    at 
org.apache.camel.impl.engine.DefaultCamelContextExtension.createProcessor 
(DefaultCamelContextExtension.java:469)
    at org.apache.camel.reifier.ProcessorReifier.makeProcessor 
(ProcessorReifier.java:846)
    at org.apache.camel.reifier.ProcessorReifier.addRoutes 
(ProcessorReifier.java:619)
    at org.apache.camel.reifier.RouteReifier.doCreateRoute 
(RouteReifier.java:240)
    at org.apache.camel.reifier.RouteReifier.createRoute (RouteReifier.java:89)
    at org.apache.camel.impl.DefaultModelReifierFactory.createRoute 
(DefaultModelReifierFactory.java:49)
    at 
org.apache.camel.impl.DefaultCamelContext.lambda$doStartRouteDefinitions$3 
(DefaultCamelContext.java:770)
    at org.apache.camel.util.concurrent.ContextValueFactory.lambda$where$0 
(ContextValueFactory.java:82)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:65)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:81)
    at org.apache.camel.util.concurrent.ContextValue.where 
(ContextValue.java:186)
    at org.apache.camel.impl.engine.DefaultCamelContextExtension.createRoute 
(DefaultCamelContextExtension.java:436)
    at org.apache.camel.impl.DefaultCamelContext.doStartRouteDefinitions 
(DefaultCamelContext.java:768)
    at org.apache.camel.impl.DefaultCamelContext.lambda$startRouteDefinitions$0 
(DefaultCamelContext.java:641)
    at 
org.apache.camel.impl.engine.AbstractCamelContext.lambda$startingRoutes$2 
(AbstractCamelContext.java:1161)
    at org.apache.camel.util.concurrent.ContextValueFactory.where 
(ContextValueFactory.java:65)
    at org.apache.camel.util.concurrent.ContextValue.where 
(ContextValue.java:174)
    at org.apache.camel.impl.engine.AbstractCamelContext.startingRoutes 
(AbstractCamelContext.java:1159)
    at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions 
(DefaultCamelContext.java:640)
    at org.apache.camel.impl.DefaultModel.addRouteDefinitions 
(DefaultModel.java:315)
    at org.apache.camel.impl.DefaultModel.addRouteDefinition 
(DefaultModel.java:324)
    at org.apache.camel.impl.DefaultModel.doAddRouteFromTemplate 
(DefaultModel.java:653)
    at org.apache.camel.impl.DefaultModel.addRouteFromTemplate 
(DefaultModel.java:495)
    at org.apache.camel.impl.DefaultModel.addRouteFromTemplatedRoute 
(DefaultModel.java:691)
    at org.apache.camel.model.Model.addRouteFromTemplatedRoutes (Model.java:304)
    at org.apache.camel.impl.DefaultCamelContext.addRouteFromTemplatedRoutes 
(DefaultCamelContext.java:417)
    at org.apache.camel.builder.RouteBuilder.populateTemplatedRoutes 
(RouteBuilder.java:953)
    at org.apache.camel.builder.RouteBuilder.addTemplatedRoutesToCamelContext 
(RouteBuilder.java:781)
    at org.apache.camel.impl.engine.AbstractCamelContext.addTemplatedRoutes 
(AbstractCamelContext.java:1114)
    at org.apache.camel.spi.RoutesLoader.loadRoutes (RoutesLoader.java:102)
    at org.apache.camel.example.MyApplication.main (MyApplication.java:46)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke 
(DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.apache.camel.maven.RunMojo.lambda$execute$0 (RunMojo.java:400)
    at java.lang.Thread.run (Thread.java:1474)
[ERROR] *************************************
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.537 s
[INFO] Finished at: 2026-06-01T15:47:49+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal 
org.apache.camel:camel-maven-plugin:4.21.0-SNAPSHOT:run (default-cli) on 
project camel-example-routetemplate-xml: null: MojoExecutionException: 
InvocationTargetException: Failed to create route: 
69b3f52efbdb4c0011000147-7cee7a5b-d34c-450e-a8d0-02972b6ad07c at: >>> 
Bean[ref:{{counter}} method:getAndIncrement] <<< in route: 
Route(69b3f52efbdb4c0011000147-7cee7a5b-d34c-450e-a8d0-02972... because: 
Property with key [counter] not found in properties from text: {{counter}} -> 
[Help 1] {code}

> [kamelet] Bean is not registered
> --------------------------------
>
>                 Key: CAMEL-23652
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23652
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-kamelet
>    Affects Versions: 4.20.0
>            Reporter: Raymond
>            Priority: Minor
>         Attachments: routetemplate-xml.zip
>
>
> I like to use the following Kamelet:
> [https://github.com/apache/camel-kamelets/blob/main/kamelets/counter-source.kamelet.yaml]
> I slightly altered the Kamelet route to this:
> {code:java}
> template:
>   beans:
>     - name: counter
>       type: java.util.concurrent.atomic.AtomicInteger
>       constructors:
>         "0": "{{start}}"
>   from:
>     uri: timer:counter
>     parameters:
>       period: "{{period}}"
>       repeatCount: "{{?numbers}}"
>     steps:
>       - bean:
>           ref: "{{counter}}"
>           method: getAndIncrement
>       - setHeader:
>           name: "Content-Type"
>           constant: "text/plain"
>       - to: "{{out}}" {code}
> However when I call this the bean is not recognized, and a property is 
> expected. This is the error I see:
> {code:java}
> Failed to create route: 
> 69b3f52efbdb4c0011000147-7cee7a5b-d34c-450e-a8d0-02972b6ad07c at: >>> 
> Bean[ref:{{counter}} method:getAndIncrement] <<< in route: 
> Route(69b3f52efbdb4c0011000147-7cee7a5b-d34c-450e-a8d0-02972... because: 
> Property with key [counter] not found in properties from text: {{counter}}" 
> {code}
> I loaded the Kamelets like this:
> {code:java}
> public void setRouteTemplates() {
>     List<String> resourceNames = getKamelets();
>     RoutesLoader routesLoader = PluginHelper.getRoutesLoader(context);
>     for (String resourceName : resourceNames) {
>         Resource resource = 
> ResourceHelper.resolveResource(context,"classpath:kamelets/" + resourceName);
>         try {
>             routesLoader.loadRoutes(resource);
>         } catch (Exception e) {
>             log.warn("Could not load Kamelet: {}. Reason: {}", resourceName, 
> e.getMessage());
>         }
>     }
> } {code}
> I have around 200 Kamelets, and they load and function correctly. The only 
> thing that have issues is with the dynamically registered beans that locally 
> scoped with the Kamelet. Registering the bean programmatically, and then 
> referencing it (both hardcoded or with a property) works fine. 
> Is this because they are loaded throught the routesLoader (both the Kamelet, 
> as the templatedRoute)? Is this bug or I am missing something?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to