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)

Reply via email to