Claus Ibsen created CAMEL-24723:
-----------------------------------
Summary: camel-jbang - camel validate yaml --canonical reports the
deprecated compact notation as such; the runtime WARN covers implicit
expressions
Key: CAMEL-24723
URL: https://issues.apache.org/jira/browse/CAMEL-24723
Project: Camel
Issue Type: Improvement
Components: camel-yaml-dsl, camel-jbang
Reporter: Claus Ibsen
The classic compact notation of the YAML DSL (a step as a string {{log:
"..."}}, a language as a string {{simple: "..."}}, a language key directly on
the EIP {{setBody: {simple: ...}}}) is deprecated; the canonical format is the
explicit form ({{log: {message: "..."}}}, {{setBody: {expression: {simple:
{expression: "..."}}}}}). Two things say so today, neither well:
* {{camel validate yaml --canonical}} rejects the compact notation but reports
the raw schema errors: "property 'simple' is not defined in the schema and the
schema does not allow additional properties", "string found, object expected".
Nothing says it is the deprecated notation, what the canonical form of that
line is, or that {{camel validate normalize}} rewrites the file.
* The runtime WARN ("YAML DSL compact notation detected",
{{YamlDeserializationContext.warnCompactNotationOnce}}) fires for a scalar step
or language and for a top-level {{from:}}, but not for a language key directly
on the EIP ({{setBody: {simple: {expression: ...}}}}), the most common compact
pattern, which loads silently.
Make the validator say what it found: one message per occurrence, naming the
node, that it is the deprecated compact notation, the canonical form to write,
and the normalize command. And have the deserializers warn for the implicit
expression too, so {{camel run}} and the validator agree on what the compact
notation is.
Follows CAMEL-24722.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)