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 {