Package io.debezium.converters
Class CloudEventsMaker
- java.lang.Object
-
- io.debezium.converters.CloudEventsMaker
-
- Direct Known Subclasses:
CloudEventsMaker.MongodbCloudEventsMaker
,CloudEventsMaker.MysqlCloudEventsMaker
,CloudEventsMaker.PostgresCloudEventsMaker
,CloudEventsMaker.SqlserverCloudEventsMaker
public abstract class CloudEventsMaker extends Object
An abstract class that builds CloudEvents attributes using fields of change records provided byRecordParser
. Callerscreate(RecordParser, SerializerType, String)
create} a concrete CloudEventsMaker for a specific connector type.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CloudEventsMaker.FieldName
The constants for the names of CloudEvents attributes.static class
CloudEventsMaker.MongodbCloudEventsMaker
CloudEvents maker for records produced by MongoDB connector.static class
CloudEventsMaker.MysqlCloudEventsMaker
CloudEvents maker for records produced by MySQL connector.static class
CloudEventsMaker.PostgresCloudEventsMaker
CloudEvents maker for records produced by PostgreSQL connector.static class
CloudEventsMaker.SqlserverCloudEventsMaker
CloudEvents maker for records produced by SQL Server connector.
-
Field Summary
Fields Modifier and Type Field Description private org.apache.kafka.connect.data.Schema
ceDataAttributeSchema
static String
CLOUDEVENTS_SPECVERSION
(package private) static Map<SerializerType,String>
CONTENT_TYPE_NAME_MAP
private SerializerType
dataContentType
private String
dataSchemaUriBase
protected RecordParser
recordParser
private static String
SCHEMA_URL_PATH
-
Constructor Summary
Constructors Modifier Constructor Description private
CloudEventsMaker(RecordParser parser, SerializerType contentType, String dataSchemaUriBase)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.apache.kafka.connect.data.Struct
ceDataAttribute()
Construct the value of the data attribute of CloudEvents.org.apache.kafka.connect.data.Schema
ceDataAttributeSchema()
Construct the schema of the data attribute of CloudEvents.String
ceDatacontenttype()
Get the data content type of CloudEvents envelope.String
ceDataschemaUri(String schemaId)
Get the data schema url of CloudEvents envelope.String
ceEnvelopeSchemaName()
Construct the name of the schema of CloudEvents envelope.abstract String
ceId()
Construct the id of CloudEvents envelope.String
ceSource(String logicalName)
Construct the source field of CloudEvents envelope, e.g.String
ceSpecversion()
Get the version of CloudEvents specification.String
ceTime()
Get the timestamp of CloudEvents envelope using the format defined in RFC 3339.String
ceType()
Construct the type field of CloudEvents envelope.static CloudEventsMaker
create(RecordParser parser, SerializerType contentType)
Create a concrete CloudEvents maker using the outputs of a record parser.static CloudEventsMaker
create(RecordParser parser, SerializerType contentType, String dataSchemaUriBase)
Create a concrete CloudEvents maker using the outputs of a record parser.
-
-
-
Field Detail
-
SCHEMA_URL_PATH
private static final String SCHEMA_URL_PATH
- See Also:
- Constant Field Values
-
CLOUDEVENTS_SPECVERSION
public static final String CLOUDEVENTS_SPECVERSION
- See Also:
- Constant Field Values
-
dataContentType
private final SerializerType dataContentType
-
dataSchemaUriBase
private final String dataSchemaUriBase
-
ceDataAttributeSchema
private final org.apache.kafka.connect.data.Schema ceDataAttributeSchema
-
recordParser
protected final RecordParser recordParser
-
CONTENT_TYPE_NAME_MAP
static final Map<SerializerType,String> CONTENT_TYPE_NAME_MAP
-
-
Constructor Detail
-
CloudEventsMaker
private CloudEventsMaker(RecordParser parser, SerializerType contentType, String dataSchemaUriBase)
-
-
Method Detail
-
create
public static CloudEventsMaker create(RecordParser parser, SerializerType contentType, String dataSchemaUriBase)
Create a concrete CloudEvents maker using the outputs of a record parser. Also need to specify the data content type (that is the serialization format of the data attribute).- Parameters:
parser
- the parser of a change recordcontentType
- the data content type of CloudEventsdataSchemaUriBase
- the URI of the schema in case of Avro; may be null- Returns:
- a concrete CloudEvents maker
-
create
public static CloudEventsMaker create(RecordParser parser, SerializerType contentType)
Create a concrete CloudEvents maker using the outputs of a record parser. Also need to specify the data content type (that is the serialization format of the data attribute) and the url of data schema registry when using Avro as the data content type.- Parameters:
parser
- the parser of a change recordcontentType
- the data content type of CloudEvents- Returns:
- a concrete CloudEvents maker
-
ceId
public abstract String ceId()
Construct the id of CloudEvents envelope.- Returns:
- the id of CloudEvents envelope
-
ceSource
public String ceSource(String logicalName)
Construct the source field of CloudEvents envelope, e.g. "/debezium/postgres/dbserver1".- Returns:
- the source field of CloudEvents envelope
-
ceSpecversion
public String ceSpecversion()
Get the version of CloudEvents specification.- Returns:
- the version of CloudEvents specification
-
ceType
public String ceType()
Construct the type field of CloudEvents envelope.- Returns:
- the type field of CloudEvents envelope
-
ceDatacontenttype
public String ceDatacontenttype()
Get the data content type of CloudEvents envelope.- Returns:
- the data content type of CloudEvents envelope
-
ceDataschemaUri
public String ceDataschemaUri(String schemaId)
Get the data schema url of CloudEvents envelope.- Returns:
- the data schema url of CloudEvents envelope
-
ceTime
public String ceTime()
Get the timestamp of CloudEvents envelope using the format defined in RFC 3339.- Returns:
- the timestamp of CloudEvents envelope
-
ceDataAttributeSchema
public org.apache.kafka.connect.data.Schema ceDataAttributeSchema()
Construct the schema of the data attribute of CloudEvents.- Returns:
- the schema of the data attribute of CloudEvents
-
ceDataAttribute
public org.apache.kafka.connect.data.Struct ceDataAttribute()
Construct the value of the data attribute of CloudEvents.- Returns:
- the value of the data attribute of CloudEvents
-
ceEnvelopeSchemaName
public String ceEnvelopeSchemaName()
Construct the name of the schema of CloudEvents envelope.- Returns:
- the name of the schema of CloudEvents envelope
-
-