Class DecodeLogicalDecodingMessageContent<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>

java.lang.Object
io.debezium.connector.postgresql.transforms.DecodeLogicalDecodingMessageContent<R>
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.kafka.common.Configurable, org.apache.kafka.connect.components.Versioned, org.apache.kafka.connect.transforms.Transformation<R>

public class DecodeLogicalDecodingMessageContent<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> extends Object implements org.apache.kafka.connect.transforms.Transformation<R>, org.apache.kafka.connect.components.Versioned
The transform converts binary content of a logical decoding message to a structured form. One of the possible usages is to apply the transform before EventRouter so that the transform will produce a record suitable for the Outbox SMT.
Author:
Roman Kudryashov
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • FIELDS_NULL_INCLUDE

      public static final Field FIELDS_NULL_INCLUDE
    • objectMapper

      private com.fasterxml.jackson.databind.ObjectMapper objectMapper
    • jsonSchemaData

      private JsonSchemaData jsonSchemaData
    • logicalDecodingMessageContentSchemaCache

      private BoundedConcurrentHashMap<org.apache.kafka.connect.data.Schema,org.apache.kafka.connect.data.Schema> logicalDecodingMessageContentSchemaCache
  • Constructor Details

    • DecodeLogicalDecodingMessageContent

      public DecodeLogicalDecodingMessageContent()
  • Method Details

    • config

      public org.apache.kafka.common.config.ConfigDef config()
      Specified by:
      config in interface org.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    • configure

      public void configure(Map<String,?> configs)
      Specified by:
      configure in interface org.apache.kafka.common.Configurable
    • apply

      public R apply(R record)
      Specified by:
      apply in interface org.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    • getLogicalDecodingMessageContent

      private org.apache.kafka.connect.data.Struct getLogicalDecodingMessageContent(org.apache.kafka.connect.data.Struct valueStruct)
    • convertLogicalDecodingMessageContentBytesToStruct

      private org.apache.kafka.connect.data.Struct convertLogicalDecodingMessageContentBytesToStruct(byte[] logicalDecodingMessageContent)
    • parseLogicalDecodingMessageContentJsonString

      private com.fasterxml.jackson.databind.JsonNode parseLogicalDecodingMessageContentJsonString(String logicalDecodingMessageContentJsonString)
    • removeLogicalDecodingMessageContentField

      private R removeLogicalDecodingMessageContentField(R record)
    • getUpdatedValueSchema

      private org.apache.kafka.connect.data.Schema getUpdatedValueSchema(org.apache.kafka.connect.data.Schema logicalDecodingMessageContentSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema)
    • getSchemaBuilder

      private org.apache.kafka.connect.data.SchemaBuilder getSchemaBuilder(org.apache.kafka.connect.data.Schema logicalDecodingMessageContentSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema)
    • getUpdatedValue

      private org.apache.kafka.connect.data.Struct getUpdatedValue(org.apache.kafka.connect.data.Schema updatedValueSchema, org.apache.kafka.connect.data.Struct originalValue, org.apache.kafka.connect.data.Struct logicalDecodingMessageContent)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    • version

      public String version()
      Specified by:
      version in interface org.apache.kafka.connect.components.Versioned