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

  • All Implemented Interfaces:
    Closeable, AutoCloseable, org.apache.kafka.common.Configurable, org.apache.kafka.connect.transforms.Transformation<R>

    @Incubating
    public class EventRouter<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    extends Object
    implements org.apache.kafka.connect.transforms.Transformation<R>
    Debezium Outbox Transform Event Router
    Author:
    Renato mefi ([email protected])
    • Field Detail

      • LOGGER

        private static final org.slf4j.Logger LOGGER
      • afterExtractor

        private final org.apache.kafka.connect.transforms.ExtractField<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> afterExtractor
      • regexRouter

        private final org.apache.kafka.connect.transforms.RegexRouter<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> regexRouter
      • tracingSmt

        private final ActivateTracingSpan<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> tracingSmt
      • fieldEventId

        private String fieldEventId
      • fieldEventKey

        private String fieldEventKey
      • fieldEventTimestamp

        private String fieldEventTimestamp
      • fieldPayload

        private String fieldPayload
      • fieldPayloadId

        private String fieldPayloadId
      • fieldSchemaVersion

        private String fieldSchemaVersion
      • routeByField

        private String routeByField
      • routeTombstoneOnEmptyPayload

        private boolean routeTombstoneOnEmptyPayload
      • defaultValueSchema

        private org.apache.kafka.connect.data.Schema defaultValueSchema
      • versionedValueSchema

        private final Map<Integer,​org.apache.kafka.connect.data.Schema> versionedValueSchema
      • onlyHeadersInOutputMessage

        private boolean onlyHeadersInOutputMessage
      • smtManager

        private SmtManager<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> smtManager
    • Constructor Detail

      • EventRouter

        public EventRouter()
    • Method Detail

      • apply

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

        private Long getEventTimestampMs​(org.apache.kafka.connect.data.Struct debeziumEventValue,
                                         org.apache.kafka.connect.data.Struct eventStruct)
        Returns the Kafka record timestamp for the outgoing record. Either obtained from the configured field or the timestamp when Debezium processed the event.
      • defineRecordKeySchema

        private org.apache.kafka.connect.data.Schema defineRecordKeySchema​(org.apache.kafka.connect.data.Schema eventStruct,
                                                                           org.apache.kafka.connect.data.Field fallbackKeyField)
      • defineRecordKey

        private Object defineRecordKey​(org.apache.kafka.connect.data.Struct eventStruct,
                                       Object fallbackKey)
      • handleUnexpectedOperation

        private void handleUnexpectedOperation​(R r)
      • 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>>
      • 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>>
      • configure

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

        private org.apache.kafka.connect.data.Schema getValueSchema​(org.apache.kafka.connect.data.Schema debeziumEventSchema,
                                                                    String routedTopic)
      • getValueSchema

        private org.apache.kafka.connect.data.Schema getValueSchema​(org.apache.kafka.connect.data.Schema debeziumEventSchema,
                                                                    Integer version,
                                                                    String routedTopic)
      • getSchemaBuilder

        private org.apache.kafka.connect.data.SchemaBuilder getSchemaBuilder​(org.apache.kafka.connect.data.Schema debeziumEventSchema,
                                                                             String routedTopic)
      • getSchemaName

        private String getSchemaName​(org.apache.kafka.connect.data.Schema debeziumEventSchema,
                                     String routedTopic)