Class TopicService


  • @Component
    public class TopicService
    extends java.lang.Object
    • Method Detail

      • createTopicWithSchema

        public void createTopicWithSchema​(pl.allegro.tech.hermes.api.TopicWithSchema topicWithSchema,
                                          RequestUser createdBy,
                                          CreatorRights isAllowedToManage)
      • removeTopicWithSchema

        public void removeTopicWithSchema​(pl.allegro.tech.hermes.api.Topic topic,
                                          RequestUser removedBy)
      • updateTopicWithSchema

        public void updateTopicWithSchema​(pl.allegro.tech.hermes.api.TopicName topicName,
                                          pl.allegro.tech.hermes.api.PatchData patch,
                                          RequestUser modifiedBy)
      • updateTopic

        public void updateTopic​(pl.allegro.tech.hermes.api.TopicName topicName,
                                pl.allegro.tech.hermes.api.PatchData patch,
                                RequestUser modifiedBy)
      • touchTopic

        public void touchTopic​(pl.allegro.tech.hermes.api.TopicName topicName,
                               RequestUser touchedBy)
      • scheduleTouchTopic

        public void scheduleTouchTopic​(pl.allegro.tech.hermes.api.TopicName topicName,
                                       RequestUser touchedBy)
        Topic is touched so other Hermes instances are notified to read latest topic schema from schema-registry. However, schema-registry can be distributed so when schema is written there then it can not be available on all nodes immediately. This is the reason why we delay touch of topic here, to wait until schema is distributed on schema-registry nodes.
      • listQualifiedTopicNames

        public java.util.List<java.lang.String> listQualifiedTopicNames​(java.lang.String groupName)
      • listTopics

        public java.util.List<pl.allegro.tech.hermes.api.Topic> listTopics​(java.lang.String groupName)
      • listQualifiedTopicNames

        public java.util.List<java.lang.String> listQualifiedTopicNames()
      • getTopicDetails

        public pl.allegro.tech.hermes.api.Topic getTopicDetails​(pl.allegro.tech.hermes.api.TopicName topicName)
      • getTopicWithSchema

        public pl.allegro.tech.hermes.api.TopicWithSchema getTopicWithSchema​(pl.allegro.tech.hermes.api.TopicName topicName)
      • getTopicMetrics

        public pl.allegro.tech.hermes.api.TopicMetrics getTopicMetrics​(pl.allegro.tech.hermes.api.TopicName topicName)
      • fetchSingleMessageFromPrimary

        public java.lang.String fetchSingleMessageFromPrimary​(java.lang.String brokersClusterName,
                                                              pl.allegro.tech.hermes.api.TopicName topicName,
                                                              java.lang.Integer partition,
                                                              java.lang.Long offset)
      • listTrackedTopicNames

        public java.util.List<java.lang.String> listTrackedTopicNames()
      • listTrackedTopicNames

        public java.util.List<java.lang.String> listTrackedTopicNames​(java.lang.String groupName)
      • listFilteredTopicNames

        public java.util.List<java.lang.String> listFilteredTopicNames​(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query)
      • listFilteredTopicNames

        public java.util.List<java.lang.String> listFilteredTopicNames​(java.lang.String groupName,
                                                                       pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query)
      • queryTopic

        public java.util.List<pl.allegro.tech.hermes.api.Topic> queryTopic​(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query)
      • getAllTopics

        public java.util.List<pl.allegro.tech.hermes.api.Topic> getAllTopics()
      • preview

        public java.util.Optional<byte[]> preview​(pl.allegro.tech.hermes.api.TopicName topicName,
                                                  int idx)
      • previewText

        public java.util.List<pl.allegro.tech.hermes.api.MessageTextPreview> previewText​(pl.allegro.tech.hermes.api.TopicName topicName)
      • queryTopicsMetrics

        public java.util.List<pl.allegro.tech.hermes.api.TopicNameWithMetrics> queryTopicsMetrics​(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.TopicNameWithMetrics> query)
      • listForOwnerId

        public java.util.List<pl.allegro.tech.hermes.api.Topic> listForOwnerId​(pl.allegro.tech.hermes.api.OwnerId ownerId)