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

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

commit 36db607d25e75e6d384fc0dc847c0a2e6a985921
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Mon Sep 9 11:04:02 2024 +0200

    Cassandra Sink: Make the Json unmarshalling step optional
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 kamelets/cassandra-sink.kamelet.yaml                  | 19 +++++++++++++++----
 .../resources/kamelets/cassandra-sink.kamelet.yaml    | 18 ++++++++++++++----
 script/validator/validator.go                         |  2 +-
 3 files changed, 30 insertions(+), 9 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/src/main/resources/kamelets/cassandra-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/cassandra-sink.kamelet.yaml
index ff577f03..3d224430 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
@@ -100,10 +105,15 @@ spec:
     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