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 Classes Modifier and Type Class Description static interface
EventRouterDelegate.RecordConverter<R>
-
Field Summary
Fields Modifier and Type Field Description private List<EventRouterConfigDefinition.AdditionalField>
additionalFields
private org.apache.kafka.connect.transforms.ExtractField<R>
afterExtractor
private org.apache.kafka.connect.data.Schema
defaultValueSchema
private static String
ENVELOPE_PAYLOAD
private boolean
expandJsonPayload
private String
fieldEventId
private String
fieldEventKey
private String
fieldEventTimestamp
private String
fieldPayload
private String
fieldPayloadId
private String
fieldSchemaVersion
private EventRouterConfigDefinition.InvalidOperationBehavior
invalidOperationBehavior
private static org.slf4j.Logger
LOGGER
private com.fasterxml.jackson.databind.ObjectMapper
objectMapper
private boolean
onlyHeadersInOutputMessage
private org.apache.kafka.connect.transforms.RegexRouter<R>
regexRouter
private String
routeByField
private boolean
routeTombstoneOnEmptyPayload
private SmtManager<R>
smtManager
private ActivateTracingSpan<R>
tracingSmt
private Map<Integer,org.apache.kafka.connect.data.Schema>
versionedValueSchema
-
Constructor Summary
Constructors Constructor Description EventRouterDelegate()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description R
apply(R r, EventRouterDelegate.RecordConverter<R> recordConverter)
void
close()
org.apache.kafka.common.config.ConfigDef
config()
void
configure(Map<String,?> configMap)
private Object
defineRecordKey(org.apache.kafka.connect.data.Struct eventStruct, Object fallbackKey)
private org.apache.kafka.connect.data.Schema
defineRecordKeySchema(org.apache.kafka.connect.data.Schema eventStruct, org.apache.kafka.connect.data.Field fallbackKeyField)
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.private org.apache.kafka.connect.data.SchemaBuilder
getSchemaBuilder(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 debeziumEventSchema, Integer version, String routedTopic)
private org.apache.kafka.connect.data.Schema
getValueSchema(org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic)
private void
handleUnexpectedOperation(R r)
private com.fasterxml.jackson.databind.JsonNode
parseJsonPayload(String jsonString)
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
ENVELOPE_PAYLOAD
private static final String ENVELOPE_PAYLOAD
- See Also:
- Constant Field Values
-
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
-
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
-
additionalFields
private List<EventRouterConfigDefinition.AdditionalField> additionalFields
-
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
-
-
Method Detail
-
apply
public R apply(R r, EventRouterDelegate.RecordConverter<R> recordConverter)
-
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)
-
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()
-
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)
-
-