Class Message
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.
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionMessage(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 Summary
Modifier and TypeMethodDescriptionbooleanList<pl.allegro.tech.hermes.api.Header>pl.allegro.tech.hermes.api.ContentTypebyte[]getData()getId()pl.allegro.tech.hermes.common.kafka.KafkaTopicNamelongintlongpl.allegro.tech.hermes.common.kafka.offset.PartitionOffsetlonglongintOptional<pl.allegro.tech.hermes.schema.CompiledSchema<org.apache.avro.Schema>>longgetSize()getTopic()inthashCode()booleanhasNotBeenSentTo(String uri) booleanvoidincrementRetryCounter(Collection<URI> succeededUris) booleanisTtlExceeded(long ttlMillis) static Message.Buildermessage()longupdateAndGetCurrentMessageBackoff(pl.allegro.tech.hermes.api.SubscriptionPolicy subscriptionPolicy)
-
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:
getDatain interfacepl.allegro.tech.hermes.domain.filtering.FilterableMessage
-
getContentType
public pl.allegro.tech.hermes.api.ContentType getContentType()- Specified by:
getContentTypein interfacepl.allegro.tech.hermes.domain.filtering.FilterableMessage
-
getPartition
public int getPartition() -
getTopic
-
isTtlExceeded
public boolean isTtlExceeded(long ttlMillis) -
incrementRetryCounter
-
getRetryCounter
public int getRetryCounter() -
getSchema
- Specified by:
getSchemain interfacepl.allegro.tech.hermes.domain.filtering.FilterableMessage
-
getId
-
getExternalMetadata
- Specified by:
getExternalMetadatain interfacepl.allegro.tech.hermes.domain.filtering.FilterableMessage
-
getAdditionalHeaders
-
updateAndGetCurrentMessageBackoff
public long updateAndGetCurrentMessageBackoff(pl.allegro.tech.hermes.api.SubscriptionPolicy subscriptionPolicy) -
hashCode
public int hashCode() -
equals
-
message
-
getKafkaTopic
public pl.allegro.tech.hermes.common.kafka.KafkaTopicName getKafkaTopic() -
getPartitionOffset
public pl.allegro.tech.hermes.common.kafka.offset.PartitionOffset getPartitionOffset() -
hasNotBeenSentTo
-
getSize
public long getSize() -
hasSubscriptionIdentityHeaders
public boolean hasSubscriptionIdentityHeaders() -
getSubscription
-