You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/10/25 07:20:24 UTC

[camel] branch camel-4.0.x updated: CAMEL-20022: camel-yaml-dsl: Add WARN log if kebab-case is detected (#11825)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-4.0.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-4.0.x by this push:
     new 5441baad4d5 CAMEL-20022: camel-yaml-dsl: Add WARN log if kebab-case is detected (#11825)
5441baad4d5 is described below

commit 5441baad4d52264bf0c381665e39acbac922460f
Author: Tomohisa Igarashi <tm...@gmail.com>
AuthorDate: Wed Oct 25 03:20:17 2023 -0400

    CAMEL-20022: camel-yaml-dsl: Add WARN log if kebab-case is detected (#11825)
---
 .../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 6c4855aa07f..a78cb4fff41 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;
@@ -27,6 +32,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 2827dd37a17..971477f4f26 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
@@ -59,4 +59,29 @@ class SetPropertyTest extends YamlTestSupport {
                     ''')
             ]
     }
+
+    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}'
+            }
+        }
+    }
 }