This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-client-reactive.git


The following commit(s) were added to refs/heads/main by this push:
     new 20e62c5  Deprecate public constructor in 
ImmutableReactiveMessageConsumerSpec (#222)
20e62c5 is described below

commit 20e62c5f3ab5d560b4a92d6a9cb3616d4383912e
Author: Chris Bono <[email protected]>
AuthorDate: Wed Jun 11 03:46:21 2025 -0500

    Deprecate public constructor in ImmutableReactiveMessageConsumerSpec (#222)
    
    This commit deprecates the current public constructor with all fields
    in favor of a package-protected variant. The constructor was initially
    added to support Jackson serde but it did not need to be public.
    
    Resolves #221
---
 .../api/ImmutableReactiveMessageConsumerSpec.java  | 163 +++++++++++++++++++++
 1 file changed, 163 insertions(+)

diff --git 
a/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ImmutableReactiveMessageConsumerSpec.java
 
b/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ImmutableReactiveMessageConsumerSpec.java
index 3291073..7c9886b 100644
--- 
a/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ImmutableReactiveMessageConsumerSpec.java
+++ 
b/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ImmutableReactiveMessageConsumerSpec.java
@@ -191,7 +191,170 @@ public class ImmutableReactiveMessageConsumerSpec 
implements ReactiveMessageCons
                this.expireTimeOfIncompleteChunkedMessage = 
consumerSpec.getExpireTimeOfIncompleteChunkedMessage();
        }
 
+       /**
+        * Constructs an instance with the specified parameters.
+        * @param topicNames the topics to subscribe to
+        * @param topicsPattern the topics pattern of the topics to subscribe to
+        * @param topicsPatternSubscriptionMode the type of topics to subscribe 
to when using
+        * a topic pattern - Persistent, Non-Persistent, or both
+        * @param topicsPatternAutoDiscoveryPeriod the topics auto discovery 
period when using
+        * a topic pattern
+        * @param subscriptionName the subscription name
+        * @param subscriptionMode the subscription mode
+        * @param subscriptionType the subscription type
+        * @param subscriptionInitialPosition the subscription initial position
+        * @param keySharedPolicy the policy used for {@link 
SubscriptionType#Key_Shared}
+        * subscriptions
+        * @param replicateSubscriptionState whether the subscription shall be 
replicated
+        * @param subscriptionProperties the properties for the subscription
+        * @param consumerName the consumer name
+        * @param properties the consumer properties
+        * @param priorityLevel the priority level for the consumer to which a 
broker gives
+        * more priority while dispatching messages
+        * @param readCompacted whether to read messages from the compacted 
topic rather than
+        * reading the full message backlog of the topic
+        * @param batchIndexAckEnabled whether batch index acknowledgement is 
enabled
+        * @param ackTimeout the timeout duration for unacknowledged messages
+        * @param ackTimeoutTickTime the tick time of the ack-timeout redelivery
+        * @param acknowledgementsGroupTime the duration used to group 
acknowledgements
+        * @param acknowledgeAsynchronously 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
+        * @param acknowledgeScheduler the scheduler to use to handle 
acknowledgements
+        * @param negativeAckRedeliveryDelay the delay to wait before 
re-delivering messages
+        * that have failed to be processed
+        * @param deadLetterPolicy the dead letter policy for the consumer
+        * @param retryLetterTopicEnable whether the retries are enabled
+        * @param receiverQueueSize the size of the consumer receive queue
+        * @param maxTotalReceiverQueueSizeAcrossPartitions the maximum total 
receiver queue
+        * size across partitions
+        * @param autoUpdatePartitions whether the consumer shall subscribe 
automatically to
+        * new partitions of partitioned topics
+        * @param autoUpdatePartitionsInterval the interval of updating 
partitions when
+        * autoUpdatePartitions is enabled
+        * @param cryptoKeyReader the key reader to be used to decrypt the 
message payloads
+        * @param cryptoFailureAction the action the consumer will take in case 
of decryption
+        * failures
+        * @param maxPendingChunkedMessage the maximum number of messages in 
the queue holding
+        * pending chunked messages
+        * @param autoAckOldestChunkedMessageOnQueueFull whether to 
automatically acknowledge
+        * pending chunked messages when maxPendingChunkedMessage is reached
+        * @param expireTimeOfIncompleteChunkedMessage the time interval to 
expire incomplete
+        * chunks if a consumer fails to receive all the chunks
+        * @deprecated since 0.7.0 for removal in 0.9.0 in favor of
+        * {@link #ImmutableReactiveMessageConsumerSpec(List, Pattern, 
RegexSubscriptionMode, Duration, String, SubscriptionMode, SubscriptionType, 
SubscriptionInitialPosition, KeySharedPolicy, Boolean, Map, String, Map, 
Integer, Boolean, Boolean, Duration, Duration, Duration, Boolean, Scheduler, 
Duration, RedeliveryBackoff, RedeliveryBackoff, DeadLetterPolicy, Boolean, 
Integer, Integer, Boolean, Duration, CryptoKeyReader, 
ConsumerCryptoFailureAction, Integer, Boolean, Duration)}
+        */
+       @Deprecated
        public ImmutableReactiveMessageConsumerSpec(List<String> topicNames, 
Pattern topicsPattern,
+                       RegexSubscriptionMode topicsPatternSubscriptionMode, 
Duration topicsPatternAutoDiscoveryPeriod,
+                       String subscriptionName, SubscriptionMode 
subscriptionMode, SubscriptionType subscriptionType,
+                       SubscriptionInitialPosition 
subscriptionInitialPosition, KeySharedPolicy keySharedPolicy,
+                       Boolean replicateSubscriptionState, Map<String, String> 
subscriptionProperties, String consumerName,
+                       Map<String, String> properties, Integer priorityLevel, 
Boolean readCompacted, Boolean batchIndexAckEnabled,
+                       Duration ackTimeout, Duration ackTimeoutTickTime, 
Duration acknowledgementsGroupTime,
+                       Boolean acknowledgeAsynchronously, Scheduler 
acknowledgeScheduler, Duration negativeAckRedeliveryDelay,
+                       DeadLetterPolicy deadLetterPolicy, Boolean 
retryLetterTopicEnable, Integer receiverQueueSize,
+                       Integer maxTotalReceiverQueueSizeAcrossPartitions, 
Boolean autoUpdatePartitions,
+                       Duration autoUpdatePartitionsInterval, CryptoKeyReader 
cryptoKeyReader,
+                       ConsumerCryptoFailureAction cryptoFailureAction, 
Integer maxPendingChunkedMessage,
+                       Boolean autoAckOldestChunkedMessageOnQueueFull, 
Duration expireTimeOfIncompleteChunkedMessage) {
+               this.topicNames = topicNames;
+               this.topicsPattern = topicsPattern;
+               this.topicsPatternSubscriptionMode = 
topicsPatternSubscriptionMode;
+               this.topicsPatternAutoDiscoveryPeriod = 
topicsPatternAutoDiscoveryPeriod;
+               this.subscriptionName = subscriptionName;
+               this.subscriptionMode = subscriptionMode;
+               this.subscriptionType = subscriptionType;
+               this.subscriptionInitialPosition = subscriptionInitialPosition;
+               this.keySharedPolicy = keySharedPolicy;
+               this.replicateSubscriptionState = replicateSubscriptionState;
+               this.subscriptionProperties = subscriptionProperties;
+               this.consumerName = consumerName;
+               this.properties = properties;
+               this.priorityLevel = priorityLevel;
+               this.readCompacted = readCompacted;
+               this.batchIndexAckEnabled = batchIndexAckEnabled;
+               this.ackTimeout = ackTimeout;
+               this.ackTimeoutTickTime = ackTimeoutTickTime;
+               this.acknowledgementsGroupTime = acknowledgementsGroupTime;
+               this.acknowledgeAsynchronously = acknowledgeAsynchronously;
+               this.acknowledgeScheduler = acknowledgeScheduler;
+               this.negativeAckRedeliveryDelay = negativeAckRedeliveryDelay;
+               this.negativeAckRedeliveryBackoff = null;
+               this.ackTimeoutRedeliveryBackoff = null;
+               this.deadLetterPolicy = deadLetterPolicy;
+               this.retryLetterTopicEnable = retryLetterTopicEnable;
+               this.receiverQueueSize = receiverQueueSize;
+               this.maxTotalReceiverQueueSizeAcrossPartitions = 
maxTotalReceiverQueueSizeAcrossPartitions;
+               this.autoUpdatePartitions = autoUpdatePartitions;
+               this.autoUpdatePartitionsInterval = 
autoUpdatePartitionsInterval;
+               this.cryptoKeyReader = cryptoKeyReader;
+               this.cryptoFailureAction = cryptoFailureAction;
+               this.maxPendingChunkedMessage = maxPendingChunkedMessage;
+               this.autoAckOldestChunkedMessageOnQueueFull = 
autoAckOldestChunkedMessageOnQueueFull;
+               this.expireTimeOfIncompleteChunkedMessage = 
expireTimeOfIncompleteChunkedMessage;
+       }
+
+       /**
+        * Constructs an instance with the specified parameters. Intended for 
use by the
+        * Jackson mixin for the Jackson serde.
+        * @param topicNames the topics to subscribe to
+        * @param topicsPattern the topics pattern of the topics to subscribe to
+        * @param topicsPatternSubscriptionMode the type of topics to subscribe 
to when using
+        * a topic pattern - Persistent, Non-Persistent, or both
+        * @param topicsPatternAutoDiscoveryPeriod the topics auto discovery 
period when using
+        * a topic pattern
+        * @param subscriptionName the subscription name
+        * @param subscriptionMode the subscription mode
+        * @param subscriptionType the subscription type
+        * @param subscriptionInitialPosition the subscription initial position
+        * @param keySharedPolicy the policy used for {@link 
SubscriptionType#Key_Shared}
+        * subscriptions
+        * @param replicateSubscriptionState whether the subscription shall be 
replicated
+        * @param subscriptionProperties the properties for the subscription
+        * @param consumerName the consumer name
+        * @param properties the consumer properties
+        * @param priorityLevel the priority level for the consumer to which a 
broker gives
+        * more priority while dispatching messages
+        * @param readCompacted whether to read messages from the compacted 
topic rather than
+        * reading the full message backlog of the topic
+        * @param batchIndexAckEnabled whether batch index acknowledgement is 
enabled
+        * @param ackTimeout the timeout duration for unacknowledged messages
+        * @param ackTimeoutTickTime the tick time of the ack-timeout redelivery
+        * @param acknowledgementsGroupTime the duration used to group 
acknowledgements
+        * @param acknowledgeAsynchronously 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
+        * @param acknowledgeScheduler the scheduler to use to handle 
acknowledgements
+        * @param negativeAckRedeliveryDelay the delay to wait before 
re-delivering messages
+        * that have failed to be processed
+        * @param deadLetterPolicy the dead letter policy for the consumer
+        * @param negativeAckRedeliveryBackoff the redelivery backoff policy 
for messages that
+        * are negatively acknowledged
+        * @param ackTimeoutRedeliveryBackoff the redelivery backoff policy for 
messages that
+        * are redelivered due to acknowledgement timeout
+        * @param retryLetterTopicEnable whether the retries are enabled
+        * @param receiverQueueSize the size of the consumer receive queue
+        * @param maxTotalReceiverQueueSizeAcrossPartitions the maximum total 
receiver queue
+        * size across partitions
+        * @param autoUpdatePartitions whether the consumer shall subscribe 
automatically to
+        * new partitions of partitioned topics
+        * @param autoUpdatePartitionsInterval the interval of updating 
partitions when
+        * autoUpdatePartitions is enabled
+        * @param cryptoKeyReader the key reader to be used to decrypt the 
message payloads
+        * @param cryptoFailureAction the action the consumer will take in case 
of decryption
+        * failures
+        * @param maxPendingChunkedMessage the maximum number of messages in 
the queue holding
+        * pending chunked messages
+        * @param autoAckOldestChunkedMessageOnQueueFull whether to 
automatically acknowledge
+        * pending chunked messages when maxPendingChunkedMessage is reached
+        * @param expireTimeOfIncompleteChunkedMessage the time interval to 
expire incomplete
+        * chunks if a consumer fails to receive all the chunks
+        */
+       @SuppressWarnings("unused")
+       ImmutableReactiveMessageConsumerSpec(List<String> topicNames, Pattern 
topicsPattern,
                        RegexSubscriptionMode topicsPatternSubscriptionMode, 
Duration topicsPatternAutoDiscoveryPeriod,
                        String subscriptionName, SubscriptionMode 
subscriptionMode, SubscriptionType subscriptionType,
                        SubscriptionInitialPosition 
subscriptionInitialPosition, KeySharedPolicy keySharedPolicy,

Reply via email to