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 2026/10/19 19:28:00 UTC

[jira] [Resolved] (CAMEL-25777) camel-core - the tokenizer EIP does not work in XML and YAML routes, as only the Java DSL sets the tokenizer name

     [ https://issues.apache.org/jira/browse/CAMEL-25777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-25777.
---------------------------------
    Resolution: Fixed

> camel-core - the tokenizer EIP does not work in XML and YAML routes, as only the Java DSL sets the tokenizer name
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25777
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25777
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core, camel-langchain4j-tokenizer
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.24.0
>
>
> The tokenizer EIP looks like it cannot work in XML or YAML routes. Only the Java DSL sets the name of the tokenizer, and the reifier needs that name to find it.
> * {{TokenizerDefinition.tokenizerName}} is {{@XmlTransient}}. Only the constructor that takes an implementation sets it, and that constructor is what the Java DSL builder uses.
> * The XML parser ({{ModelParser.doParseTokenizerDefinition}}) creates {{new TokenizerDefinition()}} and calls only {{setTokenizerImplementation(...)}}, which does not set the name. The YAML deserializer does the same.
> * {{TokenizerReifier.createProcessor}} resolves {{TOKENIZER_PATH + definition.tokenizerName()}}, so an XML or YAML route looks up {{tokenizer/null}}. That should fail with a {{NoSuchServiceException}}.
> No test runs the tokenizer EIP from XML or YAML, which is why this was not seen. I found it by reading the code, while adding XML and YAML tabs to the tokenizer EIP page (CAMEL-25774). I will add a comment when it is confirmed with camel run.
> A possible fix: {{tokenizerName()}} falls back to {{tokenizerImplementation.tokenizerName()}} when the name is not set (or {{setTokenizerImplementation}} sets it), plus an XML and a YAML test in camel-langchain4j-tokenizer.
> A smaller problem in the same model: {{LangChain4jTokenizerDefinition.modelName}} has {{@XmlAttribute(required = true)}} while its {{@Metadata}} says {{required = false}}, and the option is optional. The XSD therefore marks {{modelName}} as required, and a Spring XML route without it fails XSD validation.
> _Claude Code on behalf of davsclaus_



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