Package io.debezium.schema
Class DefaultRegexTopicNamingStrategy
java.lang.Object
io.debezium.schema.AbstractTopicNamingStrategy<DataCollectionId>
io.debezium.schema.DefaultRegexTopicNamingStrategy
- All Implemented Interfaces:
TopicNamingStrategy<DataCollectionId>
@Incubating
public class DefaultRegexTopicNamingStrategy
extends AbstractTopicNamingStrategy<DataCollectionId>
Implement a regex expression strategy to determine data event topic names using
DataCollectionId.databaseParts()
.- Author:
- Harvey Yue
-
Field Summary
Modifier and TypeFieldDescriptionprivate static final org.slf4j.Logger
static final Field
static final Field
private Pattern
private String
Fields inherited from class io.debezium.schema.AbstractTopicNamingStrategy
DEFAULT_HEARTBEAT_TOPIC_PREFIX, DEFAULT_TRANSACTION_TOPIC, delimiter, heartbeatPrefix, LOGIC_NAME_PLACEHOLDER, logicalName, prefix, TOPIC_CACHE_SIZE, TOPIC_DELIMITER, TOPIC_HEARTBEAT_PREFIX, TOPIC_NAME_PATTERN, TOPIC_PREFIX, TOPIC_TRANSACTION, topicNames, transaction
Fields inherited from interface io.debezium.spi.topic.TopicNamingStrategy
REPLACEMENT_CHAR
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
configure
(Properties props) private String
determineNewTopic
(DataCollectionId tableId, String oldTopic) Determine the new topic name.private static int
validateTopicReplacement
(Configuration config, Field field, Field.ValidationOutput problems) If TOPIC_REGEX has a value that is really a regex, then the TOPIC_REPLACEMENT must be a non-empty value.Methods inherited from class io.debezium.schema.AbstractTopicNamingStrategy
heartbeatTopic, mkString, schemaChangeTopic, transactionTopic, validateTopicName
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.debezium.spi.topic.TopicNamingStrategy
sanitizedTopicName
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
TOPIC_REGEX
-
TOPIC_REPLACEMENT
-
topicRegex
-
topicReplacement
-
-
Constructor Details
-
DefaultRegexTopicNamingStrategy
-
-
Method Details
-
validateTopicReplacement
private static int validateTopicReplacement(Configuration config, Field field, Field.ValidationOutput problems) If TOPIC_REGEX has a value that is really a regex, then the TOPIC_REPLACEMENT must be a non-empty value. -
configure
- Specified by:
configure
in interfaceTopicNamingStrategy<DataCollectionId>
- Overrides:
configure
in classAbstractTopicNamingStrategy<DataCollectionId>
-
dataChangeTopic
- Specified by:
dataChangeTopic
in interfaceTopicNamingStrategy<DataCollectionId>
- Specified by:
dataChangeTopic
in classAbstractTopicNamingStrategy<DataCollectionId>
-
determineNewTopic
Determine the new topic name.- Parameters:
tableId
- the table idoldTopic
- the name of the old topic- Returns:
- return the new topic name, if the regex applies. Otherwise, return original topic.
-