[
https://issues.apache.org/jira/browse/CAMEL-25347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-25347.
---------------------------------
Resolution: Fixed
> camel-yaml-dsl: Validate scalar alternatives without losing required fields
> ---------------------------------------------------------------------------
>
> Key: CAMEL-25347
> URL: https://issues.apache.org/jira/browse/CAMEL-25347
> Project: Camel
> Issue Type: Bug
> Components: camel-core, camel-yaml-dsl
> Reporter: Luigi De Masi
> Assignee: Luigi De Masi
> Priority: Major
> Fix For: 4.23.0
>
>
> The YAML validator can report errors from the wrong oneOf/anyOf alternative
> when a scalar uses a form accepted by the runtime (for example, a quoted
> number or a property placeholder). Filtering those scalar errors must not
> hide genuinely missing required fields, and alternative selection must
> distinguish separate YAML locations.
> For example, validate a semantic boolean question with instructions and
> threshold: "{{limit:0.1}}". This should be accepted like the numeric literal
> 0.1; malformed fields and missing required declarations must still fail.
> The existing CAMEL-25238 fix introduced
> removeSatisfiedAlternatives/constructOf. Replace that workaround with
> alternative selection per YAML location and ranking that accounts for runtime
> scalar conversions, retaining all original CAMEL-25238 regression tests.
> There is also a source metadata inconsistency exposed by preserving
> required-field errors: ParamDefinition.getType() defaults to path, but its
> XmlAttribute is marked required. Correct the source annotation and regenerate
> the published schemas so both the Camel validator and other schema consumers
> accept the same REST definition. Do not modify the schema only at validation
> time.
> This work is split from CAMEL-25310 following review of
> https://github.com/apache/camel/pull/27373#pullrequestreview-5415057613.
> Regression coverage should include multiple YAML locations, placeholders and
> quoted numbers, required fields, existing oneOf diagnostics, and REST
> parameters with an omitted type.
> AI-generated by Codex on behalf of GitHub operator @luigidemasi.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)