Package io.debezium.transforms.outbox
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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classstatic interface -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.apache.kafka.connect.transforms.ExtractField<R>private final Map<String,EventRouterConfigurationProvider> private final EventRouterDelegate.DefaultConfigurationProviderprivate org.apache.kafka.connect.data.Schemaprivate static final Stringprivate booleanprivate Stringprivate static final org.slf4j.Loggerprivate com.fasterxml.jackson.databind.ObjectMapperprivate booleanprivate final org.apache.kafka.connect.transforms.RegexRouter<R>private booleanprivate SmtManager<R>private final ActivateTracingSpan<R> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapply(R r, EventRouterDelegate.RecordConverter<R> recordConverter) voidclose()org.apache.kafka.common.config.ConfigDefconfig()voidprivate ObjectdefineRecordKey(String fieldEventKey, org.apache.kafka.connect.data.Struct eventStruct, Object fallbackKey) private org.apache.kafka.connect.data.SchemadefineRecordKeySchema(String fieldEventKey, org.apache.kafka.connect.data.Schema eventStruct, org.apache.kafka.connect.data.Field fallbackKeyField) private LonggetEventTimestampMs(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.private org.apache.kafka.connect.data.SchemaBuildergetSchemaBuilder(org.apache.kafka.connect.data.Schema payloadSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic) private StringgetSchemaName(org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic) private org.apache.kafka.connect.data.SchemagetValueSchema(org.apache.kafka.connect.data.Schema payloadSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema, Integer version, String routedTopic) private org.apache.kafka.connect.data.SchemagetValueSchema(org.apache.kafka.connect.data.Schema payloadSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic) private voidprivate EventRouterConfigurationProviderlookupConfigurationProvider(org.apache.kafka.connect.data.Struct record) Lookup the configuration provider for the source connector or use the default if not found.private com.fasterxml.jackson.databind.JsonNodeparseJsonPayload(String jsonString)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
ENVELOPE_PAYLOAD
- See Also:
-
afterExtractor
-
regexRouter
-
invalidOperationBehavior
-
tracingSmt
private final ActivateTracingSpan<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> tracingSmt -
configurationProviders
-
defaultConfigurationProvider
-
fieldSchemaVersion
-
routeTombstoneOnEmptyPayload
private boolean routeTombstoneOnEmptyPayload -
additionalFields
-
defaultValueSchema
private org.apache.kafka.connect.data.Schema defaultValueSchema -
versionedValueSchema
-
onlyHeadersInOutputMessage
private boolean onlyHeadersInOutputMessage -
expandJsonPayload
private boolean expandJsonPayload -
objectMapper
private com.fasterxml.jackson.databind.ObjectMapper objectMapper -
smtManager
-
-
Constructor Details
-
EventRouterDelegate
public EventRouterDelegate()
-
-
Method Details
-
apply
-
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
-
handleUnexpectedOperation
-
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
-
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
-
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
-
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.
-