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


  • public class EventRouterDelegate<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    extends Object
    A delegate class having common logic between Outbox Event Routers for SQL DBs and MongoDB
    Author:
    Sungho Hwang
    • 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
      • fieldSchemaVersion

        private String fieldSchemaVersion
      • 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
      • expandJsonPayload

        private boolean expandJsonPayload
      • objectMapper

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

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

      • EventRouterDelegate

        public EventRouterDelegate()
    • Method Detail

      • getEventTimestampMs

        private Long getEventTimestampMs​(String fieldEventTimestamp,
                                         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​(String fieldEventKey,
                                                                           org.apache.kafka.connect.data.Schema eventStruct,
                                                                           org.apache.kafka.connect.data.Field fallbackKeyField)
      • defineRecordKey

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

        private void handleUnexpectedOperation​(R r)
      • parseJsonPayload

        private com.fasterxml.jackson.databind.JsonNode parseJsonPayload​(String jsonString)
                                                                  throws Exception
        Throws:
        Exception
      • config

        public org.apache.kafka.common.config.ConfigDef config()
      • close

        public void close()
      • configure

        public void configure​(Map<String,​?> configMap)
      • getValueSchema

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

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

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

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

        private EventRouterConfigurationProvider lookupConfigurationProvider​(org.apache.kafka.connect.data.Struct record)
        Lookup the configuration provider for the source connector or use the default if not found.