This is an automated email from the ASF dual-hosted git repository. igarashitm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 1c85154e3f1 CAMEL-20022: camel-yaml-dsl: Add WARN log if kebab-case is detected (#11823) 1c85154e3f1 is described below commit 1c85154e3f19ae6bcab678c39ecf15444ff0497c Author: Tomohisa Igarashi <tm.igara...@gmail.com> AuthorDate: Tue Oct 24 16:30:57 2023 -0400 CAMEL-20022: camel-yaml-dsl: Add WARN log if kebab-case is detected (#11823) --- .../dsl/yaml/deserializers/CustomResolver.java | 11 ++++++++++ .../apache/camel/dsl/yaml/SetPropertyTest.groovy | 25 ++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java index 52b6fdec608..e31508289d0 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/CustomResolver.java @@ -17,9 +17,14 @@ package org.apache.camel.dsl.yaml.deserializers; import org.apache.camel.dsl.yaml.common.YamlDeserializerResolver; +import org.apache.camel.util.StringHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.snakeyaml.engine.v2.api.ConstructNode; public class CustomResolver implements YamlDeserializerResolver { + public static final Logger LOG = LoggerFactory.getLogger(CustomResolver.class); + @Override public int getOrder() { return YamlDeserializerResolver.ORDER_DEFAULT; @@ -33,6 +38,12 @@ public class CustomResolver implements YamlDeserializerResolver { @Override public ConstructNode resolve(String id) { + if (id != null && id.contains("-")) { + LOG.warn( + "The kebab-case '{}' is deprecated and it will be removed in the next version. Use the camelCase '{}' instead.", + id, StringHelper.dashToCamelCase(id)); + } + switch (id) { // // Route diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy index 7a8cc99882c..0dc8681bdd3 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy @@ -81,4 +81,29 @@ class SetPropertyTest extends YamlTestSupport { Assertions.assertTrue(e.message.contains("additional properties"), e.getMessage()) } } + + def "kebab-case: set-property no validation"() { + when: + var route = ''' + - from: + uri: "direct:start" + steps: + - set-property: + name: test + expression: + simple: "${body}" + - to: "mock:result" + ''' + loadRoutesNoValidate(route) + + then: + with(context.routeDefinitions[0].outputs[0], SetPropertyDefinition) { + name == 'test' + + with(expression, ExpressionDefinition) { + language == 'simple' + expression == '${body}' + } + } + } }