docs: public static Map<String, Message> messageTopics(Message message, String defaultTopic, String dynamicTopicConfigs) {
          List<CanalEntry.Entry> entries;
          if (message.isRaw()) {
              List<ByteString> rawEntries = message.getRawEntries();
              entries = new ArrayList<>(rawEntries.size());
              for (ByteString byteString : rawEntries) {
                  CanalEntry.Entry entry;
                  try {
                      entry = CanalEntry.Entry.parseFrom(byteString);
                  } catch (InvalidProtocolBufferException e) {
                      throw new RuntimeException(e);
                  }
                  entries.add(entry);
              }
          } else {
              entries = message.getEntries();
          }
          Map<String, Message> messages = new HashMap<>();
          for (CanalEntry.Entry entry : entries) {
              if (entry.getEntryType() == CanalEntry.EntryType.TRANSACTIONBEGIN
                  || entry.getEntryType() == CanalEntry.EntryType.TRANSACTIONEND) {
                  continue;
              }
  
              String schemaName = entry.getHeader().getSchemaName();
              String tableName = entry.getHeader().getTableName();
  
              if (StringUtils.isEmpty(schemaName) || StringUtils.isEmpty(tableName)) {
                  put2MapMessage(messages, message.getId(), defaultTopic, entry);
              } else {
                  Set<String> topics = matchTopics(schemaName + "." + tableName, dynamicTopicConfigs);
                  if (topics != null) {
                      for (String topic : topics) {
                          put2MapMessage(messages, message.getId(), topic, entry);
                      }
                  } else {
                      topics = matchTopics(schemaName, dynamicTopicConfigs);
                      if (topics != null) {
                          for (String topic : topics) {
                              put2MapMessage(messages, message.getId(), topic, entry);
                          }
                      } else {
                          put2MapMessage(messages, message.getId(), defaultTopic, entry);
                      }
                  }
              }
          }
          return messages;
      }