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 <[email protected]>
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}'
+ }
+ }
+ }
}