java.lang.Object
pl.allegro.tech.hermes.consumers.consumer.Message
All Implemented Interfaces:
pl.allegro.tech.hermes.domain.filtering.FilterableMessage

public class Message extends Object implements pl.allegro.tech.hermes.domain.filtering.FilterableMessage
Implementation note: this class is partially mutable and may be accessed from multiple threads involved in message lifecycle, it must be thread safe.
  • Constructor Details

    • Message

      public Message(String id, String topic, byte[] content, pl.allegro.tech.hermes.api.ContentType contentType, Optional<pl.allegro.tech.hermes.schema.CompiledSchema<org.apache.avro.Schema>> schema, long publishingTimestamp, long readingTimestamp, pl.allegro.tech.hermes.common.kafka.offset.PartitionOffset partitionOffset, long partitionAssignmentTerm, Map<String,String> externalMetadata, List<pl.allegro.tech.hermes.api.Header> additionalHeaders, String subscription, boolean hasSubscriptionIdentityHeaders)
  • Method Details

    • getPublishingTimestamp

      public long getPublishingTimestamp()
    • getReadingTimestamp

      public long getReadingTimestamp()
    • getOffset

      public long getOffset()
    • getPartitionAssignmentTerm

      public long getPartitionAssignmentTerm()
    • getData

      public byte[] getData()
      Specified by:
      getData in interface pl.allegro.tech.hermes.domain.filtering.FilterableMessage
    • getContentType

      public pl.allegro.tech.hermes.api.ContentType getContentType()
      Specified by:
      getContentType in interface pl.allegro.tech.hermes.domain.filtering.FilterableMessage
    • getPartition

      public int getPartition()
    • getTopic

      public String getTopic()
    • isTtlExceeded

      public boolean isTtlExceeded(long ttlMillis)
    • incrementRetryCounter

      public void incrementRetryCounter(Collection<URI> succeededUris)
    • getRetryCounter

      public int getRetryCounter()
    • getSchema

      public Optional<pl.allegro.tech.hermes.schema.CompiledSchema<org.apache.avro.Schema>> getSchema()
      Specified by:
      getSchema in interface pl.allegro.tech.hermes.domain.filtering.FilterableMessage
    • getId

      public String getId()
    • getSucceededUris

      public Set<String> getSucceededUris()
    • getExternalMetadata

      public Map<String,String> getExternalMetadata()
      Specified by:
      getExternalMetadata in interface pl.allegro.tech.hermes.domain.filtering.FilterableMessage
    • getAdditionalHeaders

      public List<pl.allegro.tech.hermes.api.Header> getAdditionalHeaders()
    • updateAndGetCurrentMessageBackoff

      public long updateAndGetCurrentMessageBackoff(pl.allegro.tech.hermes.api.SubscriptionPolicy subscriptionPolicy)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • message

      public static Message.Builder message()
    • getKafkaTopic

      public pl.allegro.tech.hermes.common.kafka.KafkaTopicName getKafkaTopic()
    • getPartitionOffset

      public pl.allegro.tech.hermes.common.kafka.offset.PartitionOffset getPartitionOffset()
    • hasNotBeenSentTo

      public boolean hasNotBeenSentTo(String uri)
    • getSize

      public long getSize()
    • hasSubscriptionIdentityHeaders

      public boolean hasSubscriptionIdentityHeaders()
    • getSubscription

      public String getSubscription()