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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git


The following commit(s) were added to refs/heads/main by this push:
     new 48c1c3ae Cassandra Sink: Make the Json unmarshalling step optional 
(#2186)
48c1c3ae is described below

commit 48c1c3aefef21bb11d15855ec39e286df2b9b2db
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Mon Sep 9 11:11:28 2024 +0200

    Cassandra Sink: Make the Json unmarshalling step optional (#2186)
    
    * Cassandra Sink: Make the Json unmarshalling step optional
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
    
    * Cassandra Sink: Make the Json unmarshalling step optional
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
    
    ---------
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 kamelets/cassandra-sink.kamelet.yaml                  | 19 +++++++++++++++----
 .../camel/kamelets/catalog/KameletsCatalogTest.java   |  2 +-
 .../resources/kamelets/cassandra-sink.kamelet.yaml    | 19 +++++++++++++++----
 script/validator/validator.go                         |  2 +-
 4 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/kamelets/cassandra-sink.kamelet.yaml 
b/kamelets/cassandra-sink.kamelet.yaml
index ff577f03..4911e25b 100644
--- a/kamelets/cassandra-sink.kamelet.yaml
+++ b/kamelets/cassandra-sink.kamelet.yaml
@@ -89,6 +89,11 @@ spec:
         description: To use a specific comma separated list of Extra Type 
codecs. 
         type: string
         enum: ["BLOB_TO_ARRAY", "BOOLEAN_LIST_TO_ARRAY", "BYTE_LIST_TO_ARRAY", 
"SHORT_LIST_TO_ARRAY", "INT_LIST_TO_ARRAY", "LONG_LIST_TO_ARRAY", 
"FLOAT_LIST_TO_ARRAY", "DOUBLE_LIST_TO_ARRAY", "TIMESTAMP_UTC", 
"TIMESTAMP_MILLIS_SYSTEM", "TIMESTAMP_MILLIS_UTC", "ZONED_TIMESTAMP_SYSTEM", 
"ZONED_TIMESTAMP_UTC", "ZONED_TIMESTAMP_PERSISTED", "LOCAL_TIMESTAMP_SYSTEM", 
"LOCAL_TIMESTAMP_UTC"]
+      jsonPayload:
+        title: JSON Payload
+        description: If we want to transform the payload in json or not
+        type: boolean
+        default: true
   types:
     in:
       mediaType: application/json
@@ -96,14 +101,20 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:cassandraql"
+  - "camel:core"
   template:
     from:
       uri: "kamelet:source"
       steps:
-      - unmarshal:
-          json: 
-            library: Jackson
-            useList: true
+      - choice:
+          precondition: true
+          when:
+            - simple: '${properties:jsonPayload:true}'
+              steps:
+                - unmarshal:
+                    json: 
+                      library: Jackson
+                      useList: true
       - to: 
           uri: "cql://{{connectionHost}}:{{connectionPort}}/{{keyspace}}"
           parameters:
diff --git 
a/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
 
b/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
index 8307e227..126ed5b7 100644
--- 
a/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
+++ 
b/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java
@@ -131,7 +131,7 @@ public class KameletsCatalogTest {
         List<String> deps = catalog.getKameletDependencies("aws-sqs-source");
         assertEquals(4, deps.size());
         deps = catalog.getKameletDependencies("cassandra-sink");
-        assertEquals(3, deps.size());
+        assertEquals(4, deps.size());
         assertEquals("camel:jackson", deps.get(0));
     }
 
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/cassandra-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/cassandra-sink.kamelet.yaml
index ff577f03..4911e25b 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/cassandra-sink.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/cassandra-sink.kamelet.yaml
@@ -89,6 +89,11 @@ spec:
         description: To use a specific comma separated list of Extra Type 
codecs. 
         type: string
         enum: ["BLOB_TO_ARRAY", "BOOLEAN_LIST_TO_ARRAY", "BYTE_LIST_TO_ARRAY", 
"SHORT_LIST_TO_ARRAY", "INT_LIST_TO_ARRAY", "LONG_LIST_TO_ARRAY", 
"FLOAT_LIST_TO_ARRAY", "DOUBLE_LIST_TO_ARRAY", "TIMESTAMP_UTC", 
"TIMESTAMP_MILLIS_SYSTEM", "TIMESTAMP_MILLIS_UTC", "ZONED_TIMESTAMP_SYSTEM", 
"ZONED_TIMESTAMP_UTC", "ZONED_TIMESTAMP_PERSISTED", "LOCAL_TIMESTAMP_SYSTEM", 
"LOCAL_TIMESTAMP_UTC"]
+      jsonPayload:
+        title: JSON Payload
+        description: If we want to transform the payload in json or not
+        type: boolean
+        default: true
   types:
     in:
       mediaType: application/json
@@ -96,14 +101,20 @@ spec:
   - "camel:jackson"
   - "camel:kamelet"
   - "camel:cassandraql"
+  - "camel:core"
   template:
     from:
       uri: "kamelet:source"
       steps:
-      - unmarshal:
-          json: 
-            library: Jackson
-            useList: true
+      - choice:
+          precondition: true
+          when:
+            - simple: '${properties:jsonPayload:true}'
+              steps:
+                - unmarshal:
+                    json: 
+                      library: Jackson
+                      useList: true
       - to: 
           uri: "cql://{{connectionHost}}:{{connectionPort}}/{{keyspace}}"
           parameters:
diff --git a/script/validator/validator.go b/script/validator/validator.go
index 339ff3b0..32d25673 100644
--- a/script/validator/validator.go
+++ b/script/validator/validator.go
@@ -395,7 +395,7 @@ func listKamelets(dir string) []KameletInfo {
 
 func verifyUsedParams(kamelets []KameletInfo) (errors []error) {
        for _, k := range kamelets {
-               if k.FileName != 
"../../kamelets/azure-storage-blob-source.kamelet.yaml" && k.FileName != 
"../../kamelets/aws-s3-event-based-source.kamelet.yaml" && k.FileName != 
"../../kamelets/set-kafka-key-action.kamelet.yaml" && k.FileName != 
"../../kamelets/azure-storage-blob-event-based-source.kamelet.yaml" && 
k.FileName != "../../kamelets/google-storage-event-based-source.kamelet.yaml" 
&& k.FileName != "../../kamelets/elasticsearch-search-source.kamelet.yaml" && 
k.FileName != "../../kamelets/op [...]
+               if k.FileName != 
"../../kamelets/azure-storage-blob-source.kamelet.yaml" && k.FileName != 
"../../kamelets/aws-s3-event-based-source.kamelet.yaml" && k.FileName != 
"../../kamelets/set-kafka-key-action.kamelet.yaml" && k.FileName != 
"../../kamelets/azure-storage-blob-event-based-source.kamelet.yaml" && 
k.FileName != "../../kamelets/google-storage-event-based-source.kamelet.yaml" 
&& k.FileName != "../../kamelets/elasticsearch-search-source.kamelet.yaml" && 
k.FileName != "../../kamelets/op [...]
                        used := getUsedParams(k.Kamelet)
                        declared := getDeclaredParams(k.Kamelet)
                        for p := range used {

Reply via email to