You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/04/07 12:50:32 UTC

[camel-kafka-connector] 04/04: SMT FieldsToHeaders Documentation #902

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

acosentino pushed a commit to branch camel-kafka-connector-0.9.x
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git

commit a80d6fbe243d96fc979ded19317452776d3f0048
Author: Luigi De Masi <ld...@redhat.com>
AuthorDate: Wed Apr 7 13:08:00 2021 +0200

     SMT FieldsToHeaders Documentation  #902
---
 .../ROOT/pages/single-message-transform.adoc       | 23 +++++++
 .../ROOT/pages/transformers/fieldsToHeaders.adoc   | 73 ++++++++++++++++++++++
 2 files changed, 96 insertions(+)

diff --git a/docs/modules/ROOT/pages/single-message-transform.adoc b/docs/modules/ROOT/pages/single-message-transform.adoc
new file mode 100644
index 0000000..1b2a0a8
--- /dev/null
+++ b/docs/modules/ROOT/pages/single-message-transform.adoc
@@ -0,0 +1,23 @@
+[[SingleMessageTransformations-SingleMessageTransformations]]
+= Single Message Transformations
+
+Single Message Transforms (SMTs) is a Kafka API that provides a simple interface for
+manipulating records as they flow through both the source and sink side of your
+data pipeline. It operates on every single message in your data pipeline as it
+passes through the Kafka Connect connector.
+Single Message Transformations are applied to messages as they flow through Connect.
+SMTs transform inbound messages after a source connector has produced them,
+but before they are written to Kafka. SMTs transform outbound messages before they
+are sent to a sink connector. The following SMTs are available for use with Kafka Connect.
+
+In addition to the https://docs.confluent.io/current/connect/transforms/index.html?_ga=2.114132679.1300749793.1612453936-340332144.1608111036&_gac=1.228771694.1611682559.CjwKCAiAxp-ABhALEiwAXm6IyeFH3rDEIpDWXGQaoibWgcjXxdz8YLkAbi3n8O-quiuWzdAeNezaqhoCdmgQAvD_BwE[prebuilt transformations]#,#
+Camel Kafka Connector provides additionals SMTs:
+
+[cols="^,^ ", options="header"]
+|===
+|Transform | Description
+
+|xref:transformers/fieldsToHeaders.adoc[FieldsToHeaders]
+|Extract fields from a configured record value (struct, schema and map are supported)
+and copy the value in configured headers
+|===
diff --git a/docs/modules/ROOT/pages/transformers/fieldsToHeaders.adoc b/docs/modules/ROOT/pages/transformers/fieldsToHeaders.adoc
new file mode 100644
index 0000000..4ebc2d1
--- /dev/null
+++ b/docs/modules/ROOT/pages/transformers/fieldsToHeaders.adoc
@@ -0,0 +1,73 @@
+[[ToHeader-ToHeader]]
+= FieldsToHeaders
+The following provides usage information for the SMT `org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform`
+
+== Description
+
+FieldsToHeaders pull field(s) out of a complex (non-primitive, Map or Struct) key or value
+and puts the extracted field(s) in headers. Fields and headers are matched by index,
+for example:
+
+[source,java-properties]
+----
+transforms.fieldsToHeadersTransform.fields=a,b,c,d
+transforms.fieldsToHeadersTransform.headers=X,Y,Z,P
+----
+field 'a' goes to header 'X', field 'b' goes to header 'Y' etc...
+
+Any null values are passed through unmodified.
+
+Use the concrete transformation type designed for the record key
+(`org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Key`) or value
+(`org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Value`).
+
+== Examples
+
+The following examples show how to use FieldsToHeaders.
+
+[source,java-properties]
+----
+transforms=FieldsToHeadersTransform
+transforms.fieldsToHeadersTransform.type=org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Value
+transforms.fieldsToHeadersTransform.fields=FROM,TO,CC,SUBJECT
+transforms.fieldsToHeadersTransform.headers=from,to,cc,subject
+----
+Given the following message:
+
+[source,json]
+----
+{
+            "FROM": "bob@example.com",
+              "TO": "alice@mail.com",
+              "CC": "managers@enterprise.com",
+         "SUBJECT": "Needs Attention!",
+            "BODY": "Tere is an issue that needs your attention!",
+  "APP_SETTING_ID": 9,
+"APP_SETTING_NAME": "my_name",
+     "SETTING_KEY":"my_setting_key"
+}
+----
+the following headers will be added to the Kafka ConnectRecord object:
+
+[source]
+----
+   from: "bob@example.com"
+     to: "alice@mail.com"
+     cc: "managers@enterprise.com"
+subject: "Needs Attention!"
+   body: "Tere is an issue that needs your attention!"
+----
+
+== Properties
+
+[cols="^,^ ", options="header"]
+|===
+|Transform | Description
+
+|fields
+|Field names to extract.
+
+|headers
+|The target header names
+|===
+