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 interfaceEventRouterDelegate.RecordConverter<R>
-
Field Summary
Fields Modifier and Type Field Description private List<EventRouterConfigDefinition.AdditionalField>additionalFieldsprivate org.apache.kafka.connect.transforms.ExtractField<R>afterExtractorprivate org.apache.kafka.connect.data.SchemadefaultValueSchemaprivate static StringENVELOPE_PAYLOADprivate booleanexpandJsonPayloadprivate StringfieldEventIdprivate StringfieldEventKeyprivate StringfieldEventTimestampprivate StringfieldPayloadprivate StringfieldPayloadIdprivate StringfieldSchemaVersionprivate EventRouterConfigDefinition.InvalidOperationBehaviorinvalidOperationBehaviorprivate static org.slf4j.LoggerLOGGERprivate com.fasterxml.jackson.databind.ObjectMapperobjectMapperprivate booleanonlyHeadersInOutputMessageprivate org.apache.kafka.connect.transforms.RegexRouter<R>regexRouterprivate StringrouteByFieldprivate booleanrouteTombstoneOnEmptyPayloadprivate SmtManager<R>smtManagerprivate ActivateTracingSpan<R>tracingSmtprivate 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 Rapply(R r, EventRouterDelegate.RecordConverter<R> recordConverter)voidclose()org.apache.kafka.common.config.ConfigDefconfig()voidconfigure(Map<String,?> configMap)private ObjectdefineRecordKey(org.apache.kafka.connect.data.Struct eventStruct, Object fallbackKey)private org.apache.kafka.connect.data.SchemadefineRecordKeySchema(org.apache.kafka.connect.data.Schema eventStruct, org.apache.kafka.connect.data.Field fallbackKeyField)private LonggetEventTimestampMs(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 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 debeziumEventSchema, Integer version, String routedTopic)private org.apache.kafka.connect.data.SchemagetValueSchema(org.apache.kafka.connect.data.Schema debeziumEventSchema, String routedTopic)private voidhandleUnexpectedOperation(R r)private com.fasterxml.jackson.databind.JsonNodeparseJsonPayload(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)
-
-