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 {