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

java.lang.Object
io.debezium.transforms.outbox.EventRouterDelegate<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 Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • ENVELOPE_PAYLOAD

      private static final String ENVELOPE_PAYLOAD
      See Also:
    • 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
    • invalidOperationBehavior

      private EventRouterConfigDefinition.InvalidOperationBehavior invalidOperationBehavior
    • tracingSmt

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

      private final Map<String,EventRouterConfigurationProvider> configurationProviders
    • defaultConfigurationProvider

      private final EventRouterDelegate.DefaultConfigurationProvider defaultConfigurationProvider
    • fieldSchemaVersion

      private String fieldSchemaVersion
    • routeTombstoneOnEmptyPayload

      private boolean routeTombstoneOnEmptyPayload
    • additionalFields

    • versionedValueSchema

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

      private BoundedConcurrentHashMap<org.apache.kafka.connect.data.Schema,org.apache.kafka.connect.data.Schema> payloadSchemaCache
    • onlyHeadersInOutputMessage

      private boolean onlyHeadersInOutputMessage
    • jsonPayloadNullFieldBehavior

      private EventRouterConfigDefinition.JsonPayloadNullFieldBehavior jsonPayloadNullFieldBehavior
    • expandJsonPayload

      private boolean expandJsonPayload
    • jsonSchemaData

      private JsonSchemaData jsonSchemaData
    • objectMapper

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

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

    • EventRouterDelegate

      public EventRouterDelegate()
  • Method Details

    • apply

      public R apply(R r, EventRouterDelegate.RecordConverter<R> recordConverter)
    • 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)
    • defineRecordKey

      private Object defineRecordKey(String fieldEventKey, org.apache.kafka.connect.data.Struct eventStruct)
    • 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(org.apache.kafka.connect.data.Schema payloadSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic)
    • getValueSchema

      private org.apache.kafka.connect.data.Schema getValueSchema(org.apache.kafka.connect.data.Schema payloadSchema, 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 payloadSchema, 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.