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
Modifier and TypeClassDescriptionprivate static class
static interface
-
Field Summary
Modifier and TypeFieldDescriptionprivate final org.apache.kafka.connect.transforms.ExtractField<R>
private final Map<String,
EventRouterConfigurationProvider> private final EventRouterDelegate.DefaultConfigurationProvider
private static final String
private boolean
private String
private JsonSchemaData
private static final org.slf4j.Logger
private com.fasterxml.jackson.databind.ObjectMapper
private boolean
private BoundedConcurrentHashMap<org.apache.kafka.connect.data.Schema,
org.apache.kafka.connect.data.Schema> private final org.apache.kafka.connect.transforms.RegexRouter<R>
private boolean
private SmtManager<R>
private final ActivateTracingSpan<R>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionapply
(R r, EventRouterDelegate.RecordConverter<R> recordConverter) void
close()
org.apache.kafka.common.config.ConfigDef
config()
void
private Object
defineRecordKey
(String fieldEventKey, org.apache.kafka.connect.data.Struct eventStruct) private org.apache.kafka.connect.data.Schema
defineRecordKeySchema
(String fieldEventKey, org.apache.kafka.connect.data.Schema eventStruct) 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.private org.apache.kafka.connect.data.SchemaBuilder
getSchemaBuilder
(org.apache.kafka.connect.data.Schema payloadSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic) private String
getSchemaName
(org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic) 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) private org.apache.kafka.connect.data.Schema
getValueSchema
(org.apache.kafka.connect.data.Schema payloadSchema, org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic) private void
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.private com.fasterxml.jackson.databind.JsonNode
parseJsonPayload
(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
-
versionedValueSchema
-
payloadSchemaCache
private BoundedConcurrentHashMap<org.apache.kafka.connect.data.Schema,org.apache.kafka.connect.data.Schema> payloadSchemaCache -
onlyHeadersInOutputMessage
private boolean onlyHeadersInOutputMessage -
jsonPayloadNullFieldBehavior
-
expandJsonPayload
private boolean expandJsonPayload -
jsonSchemaData
-
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) -
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.
-