Claus Ibsen created CAMEL-26296:
-----------------------------------
Summary: camel-catalog - the options of a language that
camel.language.<name>.<option> sets are not in the catalog
Key: CAMEL-26296
URL: https://issues.apache.org/jira/browse/CAMEL-26296
Project: Camel
Issue Type: Improvement
Reporter: Claus Ibsen
Fix For: 4.24.0
camel-main binds camel.language.<name>.<option> to a property of the language
bean (QuickjsLanguage.setEngineMaxMemory ...). The catalog only has the options
of the expression of a language (resultType, trim, ...), and camel validate,
the MCP camel_validate_source tool and the editor of the Camel CLI check these
keys against them (AbstractCamelCatalog.validateConfigurationProperty). So the
check is wrong both ways:
* A working key is reported as unknown: camel.language.quickjs.engineMaxMemory
and engineMaxEvaluations (quickjs-language.adoc),
camel.language.typesafe-ai.endpoint, threshold and state
(typesafe-ai-language.adoc). Both run fine with camel run.
* A key that fails at startup passes: camel.language.simple.trim=false gives
"Error binding property (camel.language.simple.trim=false) with name: trim on
bean: org.apache.camel.language.simple.SimpleLanguage".
The languages with setters of their own that the catalog does not have:
typesafe-ai (endpoint, threshold, uncertainty, uncertaintyPolicy, state),
quickjs (engineMaxMemory, engineMaxEvaluations), semantic (defaultState),
openfeature (endpoint), java (configResource), xpath (xpathFactory,
objectModelUri), xquery (configuration), jsonpath (options). Some of the
expression options are setters of the language as well (jsonpath
suppressExceptions, xpath preCompile ...), and some are not (simple trim).
A fix: declare the options of the language bean, such as with @Metadata on the
Language class as a component does, generate them as their own section of the
language JSON, show them on the doc page of the language, and validate
camel.language.<name>.<option> against them rather than the options of the
expression.
Split from CAMEL-26294.
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)