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 2024/03/20 10:25:00 UTC

(camel) branch camel-4.4.x updated: CAMEL-20576 camel-jbang-plugin-k run command kebab-case parsing invalid (#13536) (#13546)

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

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


The following commit(s) were added to refs/heads/camel-4.4.x by this push:
     new d54865acabf CAMEL-20576 camel-jbang-plugin-k run command kebab-case parsing invalid (#13536) (#13546)
d54865acabf is described below

commit d54865acabf92167bb3549c54c0c6893bce71695
Author: Claudio Miranda <cl...@claudius.com.br>
AuthorDate: Wed Mar 20 07:24:54 2024 -0300

    CAMEL-20576 camel-jbang-plugin-k run command kebab-case parsing invalid (#13536) (#13546)
    
    https://issues.apache.org/jira/browse/CAMEL-20576
    (cherry picked from commit de91375c6a8f80f9aac4f0e961425ef379ec2f95)
---
 .../apache/camel/dsl/jbang/core/commands/k/TraitHelper.java   |  5 ++++-
 .../camel/dsl/jbang/core/commands/k/IntegrationRunTest.java   | 11 +++++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/TraitHelper.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/TraitHelper.java
index 6af102f09ca..de40760942b 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/TraitHelper.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/main/java/org/apache/camel/dsl/jbang/core/commands/k/TraitHelper.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.v1.integrationspec.Traits;
 
 /**
@@ -51,7 +52,9 @@ public final class TraitHelper {
                 final String[] trait = traitExpression.split("\\.", 2);
                 final String[] traitConfig = trait[1].split("=", 2);
 
-                final String traitKey = traitConfig[0];
+                // the CRD api is in CamelCase, then we have to
+                // convert the kebab-case to CamelCase
+                final String traitKey = StringHelper.dashToCamelCase(traitConfig[0]);
                 final Object traitValue = resolveTraitValue(traitKey, traitConfig[1].trim());
                 if (traitJson.containsKey(trait[0])) {
                     Map<String, Object> config = traitJson.get(trait[0]);
diff --git a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java
index 249a3c7b66a..4dba66a0487 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-k/src/test/java/org/apache/camel/dsl/jbang/core/commands/k/IntegrationRunTest.java
@@ -65,7 +65,7 @@ class IntegrationRunTest extends KubeBaseTest {
     public void shouldAddTraits() throws Exception {
         IntegrationRun command = createCommand();
         command.filePaths = new String[] { "classpath:route.yaml" };
-        command.traits = new String[] { "logging.level=DEBUG", "container.imagePullPolicy=Always" };
+        command.traits = new String[] { "logging.level=DEBUG", "container.image-pull-policy=Always" };
         command.output = "yaml";
         command.doCall();
 
@@ -542,7 +542,9 @@ class IntegrationRunTest extends KubeBaseTest {
         IntegrationRun command = createCommand();
         command.filePaths = new String[] { "classpath:route.yaml" };
         command.traits
-                = new String[] { "toleration.taints=camel.apache.org/master:NoExecute:300", "camel.properties=camel.foo=bar" };
+                = new String[] {
+                        "toleration.taints=camel.apache.org/master:NoExecute:300", "camel.properties=camel.foo=bar",
+                        "affinity.node-affinity-labels=kubernetes.io/hostname" };
         command.output = "yaml";
         command.doCall();
 
@@ -563,6 +565,11 @@ class IntegrationRunTest extends KubeBaseTest {
                             constant: Hello Camel !!!
                         - to: log:info
                   traits:
+                    affinity:
+                      nodeAffinityLabels:
+                      - kubernetes.io/hostname
+                      podAffinity: false
+                      podAntiAffinity: false
                     camel:
                       properties:
                       - camel.foo=bar