Class AbstractTopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>

java.lang.Object
io.debezium.schema.AbstractTopicNamingStrategy<I>
All Implemented Interfaces:
io.debezium.spi.topic.TopicNamingStrategy<I>
Direct Known Subclasses:
AbstractRegexTopicNamingStrategy, AbstractUnicodeTopicNamingStrategy, DefaultTopicNamingStrategy, SchemaTopicNamingStrategy

@Incubating public abstract class AbstractTopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId> extends Object implements io.debezium.spi.topic.TopicNamingStrategy<I>
An abstract implementation of TopicNamingStrategy.
Author:
Harvey Yue
  • Field Details

    • DEFAULT_HEARTBEAT_TOPIC_PREFIX

      public static final String DEFAULT_HEARTBEAT_TOPIC_PREFIX
      See Also:
    • DEFAULT_TRANSACTION_TOPIC

      public static final String DEFAULT_TRANSACTION_TOPIC
      See Also:
    • TOPIC_DELIMITER

      public static final io.debezium.config.Field TOPIC_DELIMITER
    • TOPIC_CACHE_SIZE

      public static final io.debezium.config.Field TOPIC_CACHE_SIZE
    • TOPIC_HEARTBEAT_PREFIX

      public static final io.debezium.config.Field TOPIC_HEARTBEAT_PREFIX
    • TOPIC_HEARTBEAT_NAME

      public static final io.debezium.config.Field TOPIC_HEARTBEAT_NAME
    • TOPIC_TRANSACTION

      public static final io.debezium.config.Field TOPIC_TRANSACTION
    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • topicNames

      protected io.debezium.util.BoundedConcurrentHashMap<I extends io.debezium.spi.schema.DataCollectionId,String> topicNames
    • delimiter

      protected String delimiter
    • prefix

      protected String prefix
    • transaction

      protected String transaction
    • heartbeatPrefix

      protected String heartbeatPrefix
    • heartbeatTopicName

      protected String heartbeatTopicName
    • multiPartitionMode

      protected boolean multiPartitionMode
    • replacement

      protected io.debezium.spi.common.ReplacementFunction replacement
  • Constructor Details

    • AbstractTopicNamingStrategy

      public AbstractTopicNamingStrategy(Properties props)
  • Method Details

    • configure

      public void configure(Properties props)
      Specified by:
      configure in interface io.debezium.spi.topic.TopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>
    • dataChangeTopic

      public abstract String dataChangeTopic(I id)
      Specified by:
      dataChangeTopic in interface io.debezium.spi.topic.TopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>
    • schemaChangeTopic

      public String schemaChangeTopic()
      Specified by:
      schemaChangeTopic in interface io.debezium.spi.topic.TopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>
    • heartbeatTopic

      public String heartbeatTopic()
      Specified by:
      heartbeatTopic in interface io.debezium.spi.topic.TopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>
    • transactionTopic

      public String transactionTopic()
      Specified by:
      transactionTopic in interface io.debezium.spi.topic.TopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>
    • sanitizedTopicName

      public String sanitizedTopicName(String topicName)
      Specified by:
      sanitizedTopicName in interface io.debezium.spi.topic.TopicNamingStrategy<I extends io.debezium.spi.schema.DataCollectionId>
    • validateHeartbeatTopicName

      public static int validateHeartbeatTopicName(io.debezium.config.Configuration config, io.debezium.config.Field field, io.debezium.config.Field.ValidationOutput problems)
    • isValidCharacter

      protected boolean isValidCharacter(char c)
    • mkString

      protected String mkString(List<String> data, String delimiter)
    • getSchemaPartsTopicName

      protected String getSchemaPartsTopicName(io.debezium.spi.schema.DataCollectionId id)