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 c27b478 Add javadoc to ReactiveMessageSenderSpec (#25)
c27b478 is described below
commit c27b478d6867131dae84e2d1ca869aa1fc9743aa
Author: Christophe Bornet <[email protected]>
AuthorDate: Wed Nov 23 10:35:20 2022 +0100
Add javadoc to ReactiveMessageSenderSpec (#25)
---
.../client/api/ReactiveMessageSenderSpec.java | 142 +++++++++++++++++++++
1 file changed, 142 insertions(+)
diff --git
a/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ReactiveMessageSenderSpec.java
b/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ReactiveMessageSenderSpec.java
index 3bf87c9..0ee1715 100644
---
a/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ReactiveMessageSenderSpec.java
+++
b/pulsar-client-reactive-api/src/main/java/org/apache/pulsar/reactive/client/api/ReactiveMessageSenderSpec.java
@@ -27,60 +27,202 @@ import org.apache.pulsar.client.api.HashingScheme;
import org.apache.pulsar.client.api.MessageRouter;
import org.apache.pulsar.client.api.MessageRoutingMode;
import org.apache.pulsar.client.api.ProducerAccessMode;
+import org.apache.pulsar.client.api.ProducerBuilder;
import org.apache.pulsar.client.api.ProducerCryptoFailureAction;
+/**
+ * Spec for {@link ReactiveMessageSender} configuration.
+ *
+ * @author Lari Hotari
+ * @author Christophe Bornet
+ */
public interface ReactiveMessageSenderSpec {
+ /**
+ * Gets the topic to publish on.
+ * @return the topic
+ * @see ProducerBuilder#topic
+ */
String getTopicName();
+ /**
+ * Gets the name of the producer.
+ * @return the producer name
+ * @see ProducerBuilder#producerName
+ */
String getProducerName();
+ /**
+ * Gets the send timeout.
+ * @return the send timeout
+ * @see ProducerBuilder#sendTimeout
+ */
Duration getSendTimeout();
+ /**
+ * Gets the maximum size of the queue holding the messages pending to
receive an
+ * acknowledgment from the broker.
+ * @return the maximum pending messages
+ * @see ProducerBuilder#maxPendingMessages
+ */
Integer getMaxPendingMessages();
+ /**
+ * Gets the maximum number of pending messages across all the
partitions.
+ * @return the maximum number of pending messages across all the
partitions
+ * @see ProducerBuilder#maxPendingMessagesAcrossPartitions
+ */
Integer getMaxPendingMessagesAcrossPartitions();
+ /**
+ * Gets the message routing logic for producers on partitioned topics.
+ * @return the message routing mode
+ * @see ProducerBuilder#messageRoutingMode
+ */
MessageRoutingMode getMessageRoutingMode();
+ /**
+ * Gets the hashing function determining the partition where to publish
a particular
+ * message on partitioned topics.
+ * @return the hashing scheme
+ * @see ProducerBuilder#hashingScheme
+ */
HashingScheme getHashingScheme();
+ /**
+ * Gets the action the producer will take in case of encryption
failures.
+ * @return the action the producer will take in case of encryption
failures
+ * @see ProducerBuilder#cryptoFailureAction
+ */
ProducerCryptoFailureAction getCryptoFailureAction();
+ /**
+ * Gets the action the producer will take in case of encryption
failures.
+ * @return the action the producer will take in case of encryption
failures
+ * @see ProducerBuilder#messageRouter
+ */
MessageRouter getMessageRouter();
+ /**
+ * Gets the time period within which the messages sent will be batched.
+ * @return the batch delay
+ * @see ProducerBuilder#batchingMaxPublishDelay
+ */
Duration getBatchingMaxPublishDelay();
+ /**
+ * Gets the partition switch frequency while batching of messages is
enabled and using
+ * round-robin routing mode for non-keyed message.
+ * @return the frequency of partition switch
+ * @see ProducerBuilder#roundRobinRouterBatchingPartitionSwitchFrequency
+ */
Integer getRoundRobinRouterBatchingPartitionSwitchFrequency();
+ /**
+ * Gets the maximum number of messages permitted in a batch.
+ * @return the maximum number of messages in a batch
+ * @see ProducerBuilder#batchingMaxMessages
+ */
Integer getBatchingMaxMessages();
+ /**
+ * Gets the maximum number of bytes permitted in a batch.
+ * @return the maximum number of messages in a batch
+ * @see ProducerBuilder#batchingMaxBytes
+ */
Integer getBatchingMaxBytes();
+ /**
+ * Gets whether automatic batching of messages is enabled for the
producer.
+ * @return true if batching is enabled
+ * @see ProducerBuilder#enableBatching
+ */
Boolean getBatchingEnabled();
+ /**
+ * Gets the batcher builder of the producer.
+ * @return the batcher builder
+ * @see ProducerBuilder#batcherBuilder
+ */
BatcherBuilder getBatcherBuilder();
+ /**
+ * Gets whether chunking of messages is enabled.
+ * @return true if message chunking is enabled
+ * @see ProducerBuilder#enableChunking
+ */
Boolean getChunkingEnabled();
+ /**
+ * Gets the key reader to be used to encrypt the message payloads.
+ * @return the key reader to be used to encrypt the message payloads
+ * @see ProducerBuilder#cryptoKeyReader
+ */
CryptoKeyReader getCryptoKeyReader();
+ /**
+ * Gets the public encryption key names, used by producer to encrypt
the data key.
+ * @return the public encryption key names
+ * @see ProducerBuilder#addEncryptionKey
+ */
Set<String> getEncryptionKeys();
+ /**
+ * Gets the compression type for the producer.
+ * @return the compression type
+ * @see ProducerBuilder#compressionType
+ */
CompressionType getCompressionType();
+ /**
+ * Gets the baseline for the sequence ids for messages published by the
producer.
+ * @return the initial sequence id
+ * @see ProducerBuilder#initialSequenceId
+ */
Long getInitialSequenceId();
+ /**
+ * Gets whether partitioned producer will automatically discover new
partitions at
+ * runtime.
+ * @return true if auto discovery of the partition configuration
changes is enabled
+ * @see ProducerBuilder#autoUpdatePartitions
+ */
Boolean getAutoUpdatePartitions();
+ /**
+ * Gets the interval of partitions updates if autoUpdatePartitions is
enabled.
+ * @return the interval of partitions updates
+ * @see ProducerBuilder#autoUpdatePartitionsInterval
+ */
Duration getAutoUpdatePartitionsInterval();
+ /**
+ * Gets whether the multiple schema mode is enabled.
+ * @return true if the multiple schema mode is enabled
+ * @see ProducerBuilder#enableMultiSchema
+ */
Boolean getMultiSchema();
+ /**
+ * Gets the type of access mode that the producer requires on the topic.
+ * @return the access mode
+ * @see ProducerBuilder#accessMode
+ */
ProducerAccessMode getAccessMode();
+ /**
+ * Gets whether producers register and connect immediately to the owner
broker of each
+ * partition or start lazily on demand.
+ * @return true if lazy starting of partitioned producers is enabled
+ * @see ProducerBuilder#enableLazyStartPartitionedProducers
+ */
Boolean getLazyStartPartitionedProducers();
+ /**
+ * Gets the properties of the producer.
+ * @return the properties of the producer
+ * @see ProducerBuilder#properties
+ */
Map<String, String> getProperties();
}