[
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)