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 ([email protected])
-
-
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 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 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 EventRouter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description R
apply(R r)
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)
-
-
-
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:
configure
in 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)
-
-