Class ConvertingEngineBuilder<R>

java.lang.Object
io.debezium.embedded.ConvertingEngineBuilder<R>
All Implemented Interfaces:
io.debezium.engine.DebeziumEngine.Builder<R>

public class ConvertingEngineBuilder<R> extends Object implements io.debezium.engine.DebeziumEngine.Builder<R>
A builder that creates a decorator around EmbeddedEngine that is responsible for the conversion to the final format.
Author:
Jiri Pechanec
  • Field Details

    • CONVERTER_PREFIX

      private static final String CONVERTER_PREFIX
      See Also:
    • HEADER_CONVERTER_PREFIX

      private static final String HEADER_CONVERTER_PREFIX
      See Also:
    • KEY_CONVERTER_PREFIX

      private static final String KEY_CONVERTER_PREFIX
      See Also:
    • VALUE_CONVERTER_PREFIX

      private static final String VALUE_CONVERTER_PREFIX
      See Also:
    • FIELD_CLASS

      private static final String FIELD_CLASS
      See Also:
    • TOPIC_NAME

      private static final String TOPIC_NAME
      See Also:
    • APICURIO_SCHEMA_REGISTRY_URL_CONFIG

      private static final String APICURIO_SCHEMA_REGISTRY_URL_CONFIG
      See Also:
    • delegate

      private final io.debezium.engine.DebeziumEngine.Builder<org.apache.kafka.connect.source.SourceRecord> delegate
    • formatHeader

      private final Class<? extends io.debezium.engine.format.SerializationFormat<?>> formatHeader
    • formatKey

      private final Class<? extends io.debezium.engine.format.SerializationFormat<?>> formatKey
    • formatValue

      private final Class<? extends io.debezium.engine.format.SerializationFormat<?>> formatValue
    • config

      private Configuration config
    • toFormat

      private Function<org.apache.kafka.connect.source.SourceRecord,R> toFormat
    • fromFormat

      private Function<R,org.apache.kafka.connect.source.SourceRecord> fromFormat
  • Constructor Details

    • ConvertingEngineBuilder

      ConvertingEngineBuilder(io.debezium.engine.format.ChangeEventFormat<?> format)
    • ConvertingEngineBuilder

      ConvertingEngineBuilder(io.debezium.engine.format.KeyValueChangeEventFormat<?,?> format)
    • ConvertingEngineBuilder

      ConvertingEngineBuilder(io.debezium.engine.format.KeyValueHeaderChangeEventFormat<?,?,?> format)
  • Method Details

    • notifying

      public io.debezium.engine.DebeziumEngine.Builder<R> notifying(Consumer<R> consumer)
      Specified by:
      notifying in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • isFormat

      private static boolean isFormat(Class<? extends io.debezium.engine.format.SerializationFormat<?>> format1, Class<? extends io.debezium.engine.format.SerializationFormat<?>> format2)
    • notifying

      public io.debezium.engine.DebeziumEngine.Builder<R> notifying(io.debezium.engine.DebeziumEngine.ChangeConsumer<R> handler)
      Specified by:
      notifying in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • using

      public io.debezium.engine.DebeziumEngine.Builder<R> using(Properties config)
      Specified by:
      using in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • using

      public io.debezium.engine.DebeziumEngine.Builder<R> using(ClassLoader classLoader)
      Specified by:
      using in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • using

      public io.debezium.engine.DebeziumEngine.Builder<R> using(Clock clock)
      Specified by:
      using in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • using

      public io.debezium.engine.DebeziumEngine.Builder<R> using(io.debezium.engine.DebeziumEngine.CompletionCallback completionCallback)
      Specified by:
      using in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • using

      public io.debezium.engine.DebeziumEngine.Builder<R> using(io.debezium.engine.DebeziumEngine.ConnectorCallback connectorCallback)
      Specified by:
      using in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • using

      public io.debezium.engine.DebeziumEngine.Builder<R> using(io.debezium.engine.spi.OffsetCommitPolicy policy)
      Specified by:
      using in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • build

      public io.debezium.engine.DebeziumEngine<R> build()
      Specified by:
      build in interface io.debezium.engine.DebeziumEngine.Builder<R>
    • shouldConvertKeyAndValueToString

      private boolean shouldConvertKeyAndValueToString()
    • shouldConvertHeadersToString

      private boolean shouldConvertHeadersToString()
    • convertHeaders

      private List<io.debezium.engine.Header<byte[]>> convertHeaders(org.apache.kafka.connect.source.SourceRecord record, String topicName, org.apache.kafka.connect.storage.HeaderConverter headerConverter)
    • createHeaderConverter

      private org.apache.kafka.connect.storage.HeaderConverter createHeaderConverter(Class<? extends io.debezium.engine.format.SerializationFormat<?>> format)
    • createConverter

      private org.apache.kafka.connect.storage.Converter createConverter(Class<? extends io.debezium.engine.format.SerializationFormat<?>> format, boolean key)