Class MutableReactiveMessageConsumerSpec

java.lang.Object
org.apache.pulsar.reactive.client.api.MutableReactiveMessageConsumerSpec
All Implemented Interfaces:
ReactiveMessageConsumerSpec

public class MutableReactiveMessageConsumerSpec extends Object implements ReactiveMessageConsumerSpec
Mutable spec for a ReactiveMessageConsumer.
  • Constructor Details

    • MutableReactiveMessageConsumerSpec

      public MutableReactiveMessageConsumerSpec()
      Constructs a default MutableReactiveMessageConsumerSpec.
    • MutableReactiveMessageConsumerSpec

      public MutableReactiveMessageConsumerSpec(ReactiveMessageConsumerSpec consumerSpec)
      Constructs a MutableReactiveMessageConsumerSpec from another ReactiveMessageConsumerSpec.
      Parameters:
      consumerSpec - the spec to construct from
  • Method Details

    • getTopicNames

      public List<String> getTopicNames()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the topics to subscribe to.
      Specified by:
      getTopicNames in interface ReactiveMessageConsumerSpec
      Returns:
      the topic names
      See Also:
      • ConsumerBuilder.topics(java.util.List<java.lang.String>)
    • setTopicNames

      public void setTopicNames(List<String> topicNames)
      Sets the topics to subscribe to.
      Parameters:
      topicNames - the topics to subscribe to.
    • getTopicsPattern

      public Pattern getTopicsPattern()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the topics pattern of the topics to subscribe to.
      Specified by:
      getTopicsPattern in interface ReactiveMessageConsumerSpec
      Returns:
      the topics pattern
      See Also:
      • ConsumerBuilder.topicsPattern(Pattern)
    • setTopicsPattern

      public void setTopicsPattern(Pattern topicsPattern)
      Sets the topics pattern of the topics to subscribe to.
      Parameters:
      topicsPattern - the topics pattern of the topics to subscribe to.
    • getTopicsPatternSubscriptionMode

      public org.apache.pulsar.client.api.RegexSubscriptionMode getTopicsPatternSubscriptionMode()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the type of topics to subscribe to when using a topic pattern - Persistent, Non-Persistent, or both.
      Specified by:
      getTopicsPatternSubscriptionMode in interface ReactiveMessageConsumerSpec
      Returns:
      the pattern subscription mode
      See Also:
      • ConsumerBuilder.subscriptionTopicsMode(org.apache.pulsar.client.api.RegexSubscriptionMode)
    • setTopicsPatternSubscriptionMode

      public void setTopicsPatternSubscriptionMode(org.apache.pulsar.client.api.RegexSubscriptionMode topicsPatternSubscriptionMode)
      Sets the type of topics to subscribe to when using a topic pattern - Persistent, Non-Persistent, or both.
      Parameters:
      topicsPatternSubscriptionMode - type of topics to subscribe to
    • getTopicsPatternAutoDiscoveryPeriod

      public Duration getTopicsPatternAutoDiscoveryPeriod()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the topics auto discovery period when using a topic pattern.
      Specified by:
      getTopicsPatternAutoDiscoveryPeriod in interface ReactiveMessageConsumerSpec
      Returns:
      the topics discovery period
      See Also:
      • ConsumerBuilder.patternAutoDiscoveryPeriod(int)
    • setTopicsPatternAutoDiscoveryPeriod

      public void setTopicsPatternAutoDiscoveryPeriod(Duration topicsPatternAutoDiscoveryPeriod)
      Sets the topics auto discovery period when using a topic pattern.
      Parameters:
      topicsPatternAutoDiscoveryPeriod - the topics auto discovery period
    • getSubscriptionName

      public String getSubscriptionName()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the subscription name.
      Specified by:
      getSubscriptionName in interface ReactiveMessageConsumerSpec
      Returns:
      the name of the subscription
      See Also:
      • ConsumerBuilder.subscriptionName(java.lang.String)
    • setSubscriptionName

      public void setSubscriptionName(String subscriptionName)
      Sets the subscription name.
      Parameters:
      subscriptionName - the subscription name
    • getSubscriptionMode

      public org.apache.pulsar.client.api.SubscriptionMode getSubscriptionMode()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the subscription mode.
      Specified by:
      getSubscriptionMode in interface ReactiveMessageConsumerSpec
      Returns:
      the subscription mode
      See Also:
      • ConsumerBuilder.subscriptionMode(org.apache.pulsar.client.api.SubscriptionMode)
    • setSubscriptionMode

      public void setSubscriptionMode(org.apache.pulsar.client.api.SubscriptionMode subscriptionMode)
      Sets the subscription mode.
      Parameters:
      subscriptionMode - the subscription mode
    • getSubscriptionType

      public org.apache.pulsar.client.api.SubscriptionType getSubscriptionType()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the subscription type.
      Specified by:
      getSubscriptionType in interface ReactiveMessageConsumerSpec
      Returns:
      the subscription type
      See Also:
      • ConsumerBuilder.subscriptionType(org.apache.pulsar.client.api.SubscriptionType)
    • setSubscriptionType

      public void setSubscriptionType(org.apache.pulsar.client.api.SubscriptionType subscriptionType)
      Sets the subscription type.
      Parameters:
      subscriptionType - the subscription type
    • getSubscriptionInitialPosition

      public org.apache.pulsar.client.api.SubscriptionInitialPosition getSubscriptionInitialPosition()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the subscription initial position.
      Specified by:
      getSubscriptionInitialPosition in interface ReactiveMessageConsumerSpec
      Returns:
      the position where to initialize a newly created subscription
      See Also:
      • ConsumerBuilder.subscriptionInitialPosition(org.apache.pulsar.client.api.SubscriptionInitialPosition)
    • setSubscriptionInitialPosition

      public void setSubscriptionInitialPosition(org.apache.pulsar.client.api.SubscriptionInitialPosition subscriptionInitialPosition)
      Sets the subscription initial position.
      Parameters:
      subscriptionInitialPosition - the subscription initial position
    • getKeySharedPolicy

      public org.apache.pulsar.client.api.KeySharedPolicy getKeySharedPolicy()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the policy used for SubscriptionType.Key_Shared subscriptions.
      Specified by:
      getKeySharedPolicy in interface ReactiveMessageConsumerSpec
      Returns:
      the key-shared policy
      See Also:
      • ConsumerBuilder.keySharedPolicy(org.apache.pulsar.client.api.KeySharedPolicy)
    • setKeySharedPolicy

      public void setKeySharedPolicy(org.apache.pulsar.client.api.KeySharedPolicy keySharedPolicy)
      Sets the policy used for SubscriptionType.Key_Shared subscriptions.
      Parameters:
      keySharedPolicy - the key-shared policy to use
    • getReplicateSubscriptionState

      public Boolean getReplicateSubscriptionState()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether the subscription shall be replicated.
      Specified by:
      getReplicateSubscriptionState in interface ReactiveMessageConsumerSpec
      Returns:
      true if the subscription is replicated
      See Also:
      • ConsumerBuilder.replicateSubscriptionState(boolean)
    • setReplicateSubscriptionState

      public void setReplicateSubscriptionState(Boolean replicateSubscriptionState)
      Sets whether the subscription shall be replicated.
      Parameters:
      replicateSubscriptionState - true to replicate the subscription
    • getSubscriptionProperties

      public Map<String,String> getSubscriptionProperties()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the properties for the subscription.
      Specified by:
      getSubscriptionProperties in interface ReactiveMessageConsumerSpec
      Returns:
      the subscription properties
      See Also:
      • ConsumerBuilder.subscriptionProperties(java.util.Map<java.lang.String, java.lang.String>)
    • setSubscriptionProperties

      public void setSubscriptionProperties(Map<String,String> subscriptionProperties)
      Sets the properties for the subscription.
      Parameters:
      subscriptionProperties - the subscription properties
    • getConsumerName

      public String getConsumerName()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the consumer name.
      Specified by:
      getConsumerName in interface ReactiveMessageConsumerSpec
      Returns:
      the consumer name
      See Also:
      • ConsumerBuilder.consumerName(java.lang.String)
    • setConsumerName

      public void setConsumerName(String consumerName)
      Sets the consumer name.
      Parameters:
      consumerName - the consumer name
    • getProperties

      public Map<String,String> getProperties()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the consumer properties.
      Specified by:
      getProperties in interface ReactiveMessageConsumerSpec
      Returns:
      the consumer properties
      See Also:
      • ConsumerBuilder.properties(java.util.Map<java.lang.String, java.lang.String>)
    • setProperties

      public void setProperties(Map<String,String> properties)
      Sets the consumer properties.
      Parameters:
      properties - the consumer properties
    • getPriorityLevel

      public Integer getPriorityLevel()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the priority level for the consumer to which a broker gives more priority while dispatching messages.
      Specified by:
      getPriorityLevel in interface ReactiveMessageConsumerSpec
      Returns:
      the priority level of the consumer
      See Also:
      • ConsumerBuilder.priorityLevel(int)
    • setPriorityLevel

      public void setPriorityLevel(Integer priorityLevel)
      Sets the priority level for the consumer to which a broker gives more priority while dispatching messages.
      Parameters:
      priorityLevel - the priority level of the consumer
    • getReadCompacted

      public Boolean getReadCompacted()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether to read messages from the compacted topic rather than reading the full message backlog of the topic.
      Specified by:
      getReadCompacted in interface ReactiveMessageConsumerSpec
      Returns:
      true if messages are read from the compacted topic
      See Also:
      • ConsumerBuilder.readCompacted(boolean)
    • setReadCompacted

      public void setReadCompacted(Boolean readCompacted)
      Sets whether to read messages from the compacted topic rather than reading the full message backlog of the topic.
      Parameters:
      readCompacted - true to read messages from the compacted topic
    • getBatchIndexAckEnabled

      public Boolean getBatchIndexAckEnabled()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether batch index acknowledgement is enabled.
      Specified by:
      getBatchIndexAckEnabled in interface ReactiveMessageConsumerSpec
      Returns:
      true if batch index acknowledgement is enabled
      See Also:
      • ConsumerBuilder.enableBatchIndexAcknowledgment(boolean)
    • setBatchIndexAckEnabled

      public void setBatchIndexAckEnabled(Boolean batchIndexAckEnabled)
      Sets whether batch index acknowledgement is enabled.
      Parameters:
      batchIndexAckEnabled - true to enable batch index acknowledgement
    • getAckTimeout

      public Duration getAckTimeout()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the timeout duration for unacknowledged messages.
      Specified by:
      getAckTimeout in interface ReactiveMessageConsumerSpec
      Returns:
      the timeout duration for unacknowledged messages
      See Also:
      • ConsumerBuilder.ackTimeout(long, java.util.concurrent.TimeUnit)
    • setAckTimeout

      public void setAckTimeout(Duration ackTimeout)
      Sets the timeout duration for unacknowledged messages.
      Parameters:
      ackTimeout - the timeout duration for unacknowledged messages
    • getAckTimeoutTickTime

      public Duration getAckTimeoutTickTime()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the tick time of the ack-timeout redelivery.
      Specified by:
      getAckTimeoutTickTime in interface ReactiveMessageConsumerSpec
      Returns:
      the tick time of the ack-timeout redelivery
      See Also:
      • ConsumerBuilder.ackTimeoutTickTime(long, java.util.concurrent.TimeUnit)
    • setAckTimeoutTickTime

      public void setAckTimeoutTickTime(Duration ackTimeoutTickTime)
      Sets the tick time of the ack-timeout redelivery.
      Parameters:
      ackTimeoutTickTime - the tick time of the ack-timeout redelivery
    • getAcknowledgementsGroupTime

      public Duration getAcknowledgementsGroupTime()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the duration used to group acknowledgements.
      Specified by:
      getAcknowledgementsGroupTime in interface ReactiveMessageConsumerSpec
      Returns:
      the duration used to group acknowledgements
      See Also:
      • ConsumerBuilder.acknowledgmentGroupTime(long, java.util.concurrent.TimeUnit)
    • setAcknowledgementsGroupTime

      public void setAcknowledgementsGroupTime(Duration acknowledgementsGroupTime)
      Sets the duration used to group acknowledgements.
      Parameters:
      acknowledgementsGroupTime - the duration used to group acknowledgements
    • getAcknowledgeAsynchronously

      public Boolean getAcknowledgeAsynchronously()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether to ignore the acknowledge operation completion and make it asynchronous from the message consuming processing to improve performance by allowing the acknowledges and message processing to interleave.
      Specified by:
      getAcknowledgeAsynchronously in interface ReactiveMessageConsumerSpec
      Returns:
      true if the acknowledge operation completion is ignored
    • setAcknowledgeAsynchronously

      public void setAcknowledgeAsynchronously(Boolean acknowledgeAsynchronously)
      Sets whether to ignore the acknowledge operation completion and make it asynchronous from the message consuming processing to improve performance by allowing the acknowledges and message processing to interleave.
      Parameters:
      acknowledgeAsynchronously - true to ignore the acknowledge operation completion
    • getAcknowledgeScheduler

      public reactor.core.scheduler.Scheduler getAcknowledgeScheduler()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the scheduler to use to handle acknowledgements.
      Specified by:
      getAcknowledgeScheduler in interface ReactiveMessageConsumerSpec
      Returns:
      the scheduler to use to handle acknowledgements
    • setAcknowledgeScheduler

      public void setAcknowledgeScheduler(reactor.core.scheduler.Scheduler acknowledgeScheduler)
      Sets the scheduler to use to handle acknowledgements.
      Parameters:
      acknowledgeScheduler - the scheduler to use to handle acknowledgements
    • getNegativeAckRedeliveryDelay

      public Duration getNegativeAckRedeliveryDelay()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the delay to wait before re-delivering messages that have failed to be processed.
      Specified by:
      getNegativeAckRedeliveryDelay in interface ReactiveMessageConsumerSpec
      Returns:
      the redelivery delay for failed messages
      See Also:
      • ConsumerBuilder.negativeAckRedeliveryDelay(long, java.util.concurrent.TimeUnit)
    • setNegativeAckRedeliveryDelay

      public void setNegativeAckRedeliveryDelay(Duration negativeAckRedeliveryDelay)
      Sets the delay to wait before re-delivering messages that have failed to be processed.
      Parameters:
      negativeAckRedeliveryDelay - the redelivery delay for failed messages
    • getDeadLetterPolicy

      public org.apache.pulsar.client.api.DeadLetterPolicy getDeadLetterPolicy()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the dead letter policy for the consumer.
      Specified by:
      getDeadLetterPolicy in interface ReactiveMessageConsumerSpec
      Returns:
      the dead letter policy
      See Also:
      • ConsumerBuilder.deadLetterPolicy(org.apache.pulsar.client.api.DeadLetterPolicy)
    • setDeadLetterPolicy

      public void setDeadLetterPolicy(org.apache.pulsar.client.api.DeadLetterPolicy deadLetterPolicy)
      Sets the dead letter policy for the consumer.
      Parameters:
      deadLetterPolicy - the dead letter policy
    • getRetryLetterTopicEnable

      public Boolean getRetryLetterTopicEnable()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether the retries are enabled.
      Specified by:
      getRetryLetterTopicEnable in interface ReactiveMessageConsumerSpec
      Returns:
      true if retries are enabled
      See Also:
      • ConsumerBuilder.enableRetry(boolean)
    • setRetryLetterTopicEnable

      public void setRetryLetterTopicEnable(Boolean retryLetterTopicEnable)
      Sets whether the retries are enabled.
      Parameters:
      retryLetterTopicEnable - true to enable retries
    • getReceiverQueueSize

      public Integer getReceiverQueueSize()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the size of the consumer receive queue.
      Specified by:
      getReceiverQueueSize in interface ReactiveMessageConsumerSpec
      Returns:
      the size of the consumer receive queue
      See Also:
      • ConsumerBuilder.receiverQueueSize(int)
    • setReceiverQueueSize

      public void setReceiverQueueSize(Integer receiverQueueSize)
      Sets the size of the consumer receive queue.
      Parameters:
      receiverQueueSize - the size of the consumer receive queue
    • getMaxTotalReceiverQueueSizeAcrossPartitions

      public Integer getMaxTotalReceiverQueueSizeAcrossPartitions()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the max total receiver queue size across partitions.
      Specified by:
      getMaxTotalReceiverQueueSizeAcrossPartitions in interface ReactiveMessageConsumerSpec
      Returns:
      the max total receiver queue size across partitions
      See Also:
      • ConsumerBuilder.maxTotalReceiverQueueSizeAcrossPartitions(int)
    • setMaxTotalReceiverQueueSizeAcrossPartitions

      public void setMaxTotalReceiverQueueSizeAcrossPartitions(Integer maxTotalReceiverQueueSizeAcrossPartitions)
      Sets the maximum total receiver queue size across partitions.
      Parameters:
      maxTotalReceiverQueueSizeAcrossPartitions - the maximum total receiver queue size across partitions
    • getAutoUpdatePartitions

      public Boolean getAutoUpdatePartitions()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether the consumer shall subscribe automatically to new partitions of partitioned topics.
      Specified by:
      getAutoUpdatePartitions in interface ReactiveMessageConsumerSpec
      Returns:
      true if the consumer subscribes automatically to new partitions
      See Also:
      • ConsumerBuilder.autoUpdatePartitions(boolean)
    • setAutoUpdatePartitions

      public void setAutoUpdatePartitions(Boolean autoUpdatePartitions)
      Sets whether the consumer shall subscribe automatically to new partitions of partitioned topics.
      Parameters:
      autoUpdatePartitions - true for the consumer to subscribe automatically to new partitions
    • getAutoUpdatePartitionsInterval

      public Duration getAutoUpdatePartitionsInterval()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the interval of updating partitions when autoUpdatePartitions is enabled.
      Specified by:
      getAutoUpdatePartitionsInterval in interface ReactiveMessageConsumerSpec
      Returns:
      the interval between partitions updates
      See Also:
      • ConsumerBuilder.autoUpdatePartitionsInterval(int, java.util.concurrent.TimeUnit)
      • ConsumerBuilder.autoUpdatePartitions(boolean)
    • setAutoUpdatePartitionsInterval

      public void setAutoUpdatePartitionsInterval(Duration autoUpdatePartitionsInterval)
      Sets the interval of updating partitions when autoUpdatePartitions is enabled.
      Parameters:
      autoUpdatePartitionsInterval - the interval between partitions updates
    • getCryptoKeyReader

      public org.apache.pulsar.client.api.CryptoKeyReader getCryptoKeyReader()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the key reader to be used to decrypt the message payloads.
      Specified by:
      getCryptoKeyReader in interface ReactiveMessageConsumerSpec
      Returns:
      the key reader to be used to decrypt the message payloads
      See Also:
      • ConsumerBuilder.cryptoKeyReader(org.apache.pulsar.client.api.CryptoKeyReader)
    • setCryptoKeyReader

      public void setCryptoKeyReader(org.apache.pulsar.client.api.CryptoKeyReader cryptoKeyReader)
      Sets the key reader to be used to decrypt the message payloads.
      Parameters:
      cryptoKeyReader - the key reader to be used to decrypt the message payloads
    • getCryptoFailureAction

      public org.apache.pulsar.client.api.ConsumerCryptoFailureAction getCryptoFailureAction()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the action the consumer will take in case of decryption failures.
      Specified by:
      getCryptoFailureAction in interface ReactiveMessageConsumerSpec
      Returns:
      the action the consumer will take in case of decryption failures
      See Also:
      • ConsumerBuilder.cryptoFailureAction(org.apache.pulsar.client.api.ConsumerCryptoFailureAction)
    • setCryptoFailureAction

      public void setCryptoFailureAction(org.apache.pulsar.client.api.ConsumerCryptoFailureAction cryptoFailureAction)
      Sets the action the consumer will take in case of decryption failures.
      Parameters:
      cryptoFailureAction - the action the consumer will take in case of decryption failures
    • getMaxPendingChunkedMessage

      public Integer getMaxPendingChunkedMessage()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the maximum number of messages in the queue holding pending chunked messages.
      Specified by:
      getMaxPendingChunkedMessage in interface ReactiveMessageConsumerSpec
      Returns:
      the maximum number of messages in the queue holding pending chunked
      See Also:
      • messages.
    • setMaxPendingChunkedMessage

      public void setMaxPendingChunkedMessage(Integer maxPendingChunkedMessage)
      Sets the maximum number of messages in the queue holding pending chunked messages.
      Parameters:
      maxPendingChunkedMessage - the maximum number of messages in the queue holding pending chunked messages
    • getAutoAckOldestChunkedMessageOnQueueFull

      public Boolean getAutoAckOldestChunkedMessageOnQueueFull()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets whether to automatically acknowledge pending chunked messages when maxPendingChunkedMessage is reached.
      Specified by:
      getAutoAckOldestChunkedMessageOnQueueFull in interface ReactiveMessageConsumerSpec
      Returns:
      true to acknowledge the messages, false to have them redelivered.
      See Also:
      • ConsumerBuilder.autoAckOldestChunkedMessageOnQueueFull(boolean)
      • ConsumerBuilder.maxPendingChunkedMessage(int)
    • setAutoAckOldestChunkedMessageOnQueueFull

      public void setAutoAckOldestChunkedMessageOnQueueFull(Boolean autoAckOldestChunkedMessageOnQueueFull)
      Sets whether to automatically acknowledge pending chunked messages when maxPendingChunkedMessage is reached.
      Parameters:
      autoAckOldestChunkedMessageOnQueueFull - true to acknowledge the messages, false to have them redelivered
    • getExpireTimeOfIncompleteChunkedMessage

      public Duration getExpireTimeOfIncompleteChunkedMessage()
      Description copied from interface: ReactiveMessageConsumerSpec
      Gets the time interval to expire incomplete chunks if a consumer fails to receive all the chunks.
      Specified by:
      getExpireTimeOfIncompleteChunkedMessage in interface ReactiveMessageConsumerSpec
      Returns:
      the time interval to expire incomplete chunks.
      See Also:
      • ConsumerBuilder.expireTimeOfIncompleteChunkedMessage(long, java.util.concurrent.TimeUnit)
    • setExpireTimeOfIncompleteChunkedMessage

      public void setExpireTimeOfIncompleteChunkedMessage(Duration expireTimeOfIncompleteChunkedMessage)
      Sets the time interval to expire incomplete chunks if a consumer fails to receive all the chunks.
      Parameters:
      expireTimeOfIncompleteChunkedMessage - the time interval to expire incomplete chunks.
    • applySpec

      public void applySpec(ReactiveMessageConsumerSpec consumerSpec)
      Updates this spec from the defined values of another spec.
      Parameters:
      consumerSpec - the spec from which to update