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}'
+            }
+        }
+    }
 }

Reply via email to