Package io.debezium.transforms.outbox
Class EventRouter<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
- java.lang.Object
-
- io.debezium.transforms.outbox.EventRouter<R>
-
- All Implemented Interfaces:
Closeable,AutoCloseable,org.apache.kafka.common.Configurable,org.apache.kafka.connect.transforms.Transformation<R>
@Incubating public class EventRouter<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> extends Object implements org.apache.kafka.connect.transforms.Transformation<R>
Debezium Outbox Transform Event Router- Author:
- Renato mefi (gh@mefi.in)
-
-
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 StringfieldEventIdprivate StringfieldEventKeyprivate StringfieldEventTimestampprivate StringfieldPayloadprivate StringfieldPayloadIdprivate StringfieldSchemaVersionprivate EventRouterConfigDefinition.InvalidOperationBehaviorinvalidOperationBehaviorprivate static org.slf4j.LoggerLOGGERprivate 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 EventRouter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Rapply(R r)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)
-
-
-
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
-
smtManager
private SmtManager<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> smtManager
-
-
Method Detail
-
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)
-
config
public org.apache.kafka.common.config.ConfigDef config()
-
close
public void close()
-
configure
public void configure(Map<String,?> configMap)
- Specified by:
configurein interfaceorg.apache.kafka.common.Configurable
-
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)
-
-