Class ProducerBuilderImpl<T>

  • All Implemented Interfaces:
    java.lang.Cloneable, org.apache.pulsar.client.api.ProducerBuilder<T>

    public class ProducerBuilderImpl<T>
    extends java.lang.Object
    implements org.apache.pulsar.client.api.ProducerBuilder<T>
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      org.apache.pulsar.client.api.ProducerBuilder<T> accessMode​(org.apache.pulsar.client.api.ProducerAccessMode accessMode)  
      org.apache.pulsar.client.api.ProducerBuilder<T> addEncryptionKey​(java.lang.String key)  
      org.apache.pulsar.client.api.ProducerBuilder<T> autoUpdatePartitions​(boolean autoUpdate)  
      org.apache.pulsar.client.api.ProducerBuilder<T> autoUpdatePartitionsInterval​(int interval, java.util.concurrent.TimeUnit unit)  
      org.apache.pulsar.client.api.ProducerBuilder<T> batcherBuilder​(org.apache.pulsar.client.api.BatcherBuilder batcherBuilder)  
      org.apache.pulsar.client.api.ProducerBuilder<T> batchingMaxBytes​(int batchingMaxBytes)  
      org.apache.pulsar.client.api.ProducerBuilder<T> batchingMaxMessages​(int batchMessagesMaxMessagesPerBatch)  
      org.apache.pulsar.client.api.ProducerBuilder<T> batchingMaxPublishDelay​(long batchDelay, @NonNull java.util.concurrent.TimeUnit timeUnit)  
      org.apache.pulsar.client.api.ProducerBuilder<T> blockIfQueueFull​(boolean blockIfQueueFull)  
      org.apache.pulsar.client.api.ProducerBuilder<T> clone()  
      org.apache.pulsar.client.api.ProducerBuilder<T> compressionType​(@NonNull org.apache.pulsar.client.api.CompressionType compressionType)  
      org.apache.pulsar.client.api.Producer<T> create()  
      java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Producer<T>> createAsync()  
      org.apache.pulsar.client.api.ProducerBuilder<T> cryptoFailureAction​(@NonNull org.apache.pulsar.client.api.ProducerCryptoFailureAction action)  
      org.apache.pulsar.client.api.ProducerBuilder<T> cryptoKeyReader​(@NonNull org.apache.pulsar.client.api.CryptoKeyReader cryptoKeyReader)  
      org.apache.pulsar.client.api.ProducerBuilder<T> defaultCryptoKeyReader​(@NonNull java.util.Map<java.lang.String,​java.lang.String> publicKeys)  
      org.apache.pulsar.client.api.ProducerBuilder<T> defaultCryptoKeyReader​(java.lang.String publicKey)  
      org.apache.pulsar.client.api.ProducerBuilder<T> enableBatching​(boolean batchMessagesEnabled)  
      org.apache.pulsar.client.api.ProducerBuilder<T> enableChunking​(boolean chunkingEnabled)  
      org.apache.pulsar.client.api.ProducerBuilder<T> enableLazyStartPartitionedProducers​(boolean lazyStartPartitionedProducers)  
      org.apache.pulsar.client.api.ProducerBuilder<T> enableMultiSchema​(boolean multiSchema)  
      org.apache.pulsar.client.api.ProducerBuilder<T> hashingScheme​(@NonNull org.apache.pulsar.client.api.HashingScheme hashingScheme)  
      org.apache.pulsar.client.api.ProducerBuilder<T> initialSequenceId​(long initialSequenceId)  
      ProducerBuilderImpl<T> initialSubscriptionName​(java.lang.String initialSubscriptionName)
      Use this config to automatically create an initial subscription when creating the topic.
      org.apache.pulsar.client.api.ProducerBuilder<T> intercept​(org.apache.pulsar.client.api.interceptor.ProducerInterceptor... interceptors)  
      org.apache.pulsar.client.api.ProducerBuilder<T> intercept​(org.apache.pulsar.client.api.ProducerInterceptor<T>... interceptors)
      Deprecated.
      org.apache.pulsar.client.api.ProducerBuilder<T> loadConf​(java.util.Map<java.lang.String,​java.lang.Object> config)  
      org.apache.pulsar.client.api.ProducerBuilder<T> maxPendingMessages​(int maxPendingMessages)  
      org.apache.pulsar.client.api.ProducerBuilder<T> maxPendingMessagesAcrossPartitions​(int maxPendingMessagesAcrossPartitions)
      Deprecated.
      org.apache.pulsar.client.api.ProducerBuilder<T> messageRouter​(@NonNull org.apache.pulsar.client.api.MessageRouter messageRouter)  
      org.apache.pulsar.client.api.ProducerBuilder<T> messageRoutingMode​(@NonNull org.apache.pulsar.client.api.MessageRoutingMode messageRouteMode)  
      org.apache.pulsar.client.api.ProducerBuilder<T> producerName​(java.lang.String producerName)  
      org.apache.pulsar.client.api.ProducerBuilder<T> properties​(@NonNull java.util.Map<java.lang.String,​java.lang.String> properties)  
      org.apache.pulsar.client.api.ProducerBuilder<T> property​(java.lang.String key, java.lang.String value)  
      org.apache.pulsar.client.api.ProducerBuilder<T> roundRobinRouterBatchingPartitionSwitchFrequency​(int frequency)  
      org.apache.pulsar.client.api.ProducerBuilder<T> schema​(org.apache.pulsar.client.api.Schema<T> schema)
      Allow to override schema in builder implementation.
      org.apache.pulsar.client.api.ProducerBuilder<T> sendTimeout​(int sendTimeout, @NonNull java.util.concurrent.TimeUnit unit)  
      org.apache.pulsar.client.api.ProducerBuilder<T> topic​(java.lang.String topicName)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ProducerBuilderImpl

        public ProducerBuilderImpl​(PulsarClientImpl client,
                                   org.apache.pulsar.client.api.Schema<T> schema)
    • Method Detail

      • schema

        public org.apache.pulsar.client.api.ProducerBuilder<T> schema​(org.apache.pulsar.client.api.Schema<T> schema)
        Allow to override schema in builder implementation.
        Returns:
      • clone

        public org.apache.pulsar.client.api.ProducerBuilder<T> clone()
        Specified by:
        clone in interface org.apache.pulsar.client.api.ProducerBuilder<T>
        Overrides:
        clone in class java.lang.Object
      • create

        public org.apache.pulsar.client.api.Producer<T> create()
                                                        throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        create in interface org.apache.pulsar.client.api.ProducerBuilder<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • createAsync

        public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Producer<T>> createAsync()
        Specified by:
        createAsync in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • loadConf

        public org.apache.pulsar.client.api.ProducerBuilder<T> loadConf​(java.util.Map<java.lang.String,​java.lang.Object> config)
        Specified by:
        loadConf in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • topic

        public org.apache.pulsar.client.api.ProducerBuilder<T> topic​(java.lang.String topicName)
        Specified by:
        topic in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • producerName

        public org.apache.pulsar.client.api.ProducerBuilder<T> producerName​(java.lang.String producerName)
        Specified by:
        producerName in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • sendTimeout

        public org.apache.pulsar.client.api.ProducerBuilder<T> sendTimeout​(int sendTimeout,
                                                                           @NonNull
                                                                           @NonNull java.util.concurrent.TimeUnit unit)
        Specified by:
        sendTimeout in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • maxPendingMessages

        public org.apache.pulsar.client.api.ProducerBuilder<T> maxPendingMessages​(int maxPendingMessages)
        Specified by:
        maxPendingMessages in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • maxPendingMessagesAcrossPartitions

        @Deprecated
        public org.apache.pulsar.client.api.ProducerBuilder<T> maxPendingMessagesAcrossPartitions​(int maxPendingMessagesAcrossPartitions)
        Deprecated.
        Specified by:
        maxPendingMessagesAcrossPartitions in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • accessMode

        public org.apache.pulsar.client.api.ProducerBuilder<T> accessMode​(org.apache.pulsar.client.api.ProducerAccessMode accessMode)
        Specified by:
        accessMode in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • blockIfQueueFull

        public org.apache.pulsar.client.api.ProducerBuilder<T> blockIfQueueFull​(boolean blockIfQueueFull)
        Specified by:
        blockIfQueueFull in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • messageRoutingMode

        public org.apache.pulsar.client.api.ProducerBuilder<T> messageRoutingMode​(@NonNull
                                                                                  @NonNull org.apache.pulsar.client.api.MessageRoutingMode messageRouteMode)
        Specified by:
        messageRoutingMode in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • compressionType

        public org.apache.pulsar.client.api.ProducerBuilder<T> compressionType​(@NonNull
                                                                               @NonNull org.apache.pulsar.client.api.CompressionType compressionType)
        Specified by:
        compressionType in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • hashingScheme

        public org.apache.pulsar.client.api.ProducerBuilder<T> hashingScheme​(@NonNull
                                                                             @NonNull org.apache.pulsar.client.api.HashingScheme hashingScheme)
        Specified by:
        hashingScheme in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • messageRouter

        public org.apache.pulsar.client.api.ProducerBuilder<T> messageRouter​(@NonNull
                                                                             @NonNull org.apache.pulsar.client.api.MessageRouter messageRouter)
        Specified by:
        messageRouter in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • enableBatching

        public org.apache.pulsar.client.api.ProducerBuilder<T> enableBatching​(boolean batchMessagesEnabled)
        Specified by:
        enableBatching in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • enableChunking

        public org.apache.pulsar.client.api.ProducerBuilder<T> enableChunking​(boolean chunkingEnabled)
        Specified by:
        enableChunking in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • cryptoKeyReader

        public org.apache.pulsar.client.api.ProducerBuilder<T> cryptoKeyReader​(@NonNull
                                                                               @NonNull org.apache.pulsar.client.api.CryptoKeyReader cryptoKeyReader)
        Specified by:
        cryptoKeyReader in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • defaultCryptoKeyReader

        public org.apache.pulsar.client.api.ProducerBuilder<T> defaultCryptoKeyReader​(java.lang.String publicKey)
        Specified by:
        defaultCryptoKeyReader in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • defaultCryptoKeyReader

        public org.apache.pulsar.client.api.ProducerBuilder<T> defaultCryptoKeyReader​(@NonNull
                                                                                      @NonNull java.util.Map<java.lang.String,​java.lang.String> publicKeys)
        Specified by:
        defaultCryptoKeyReader in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • addEncryptionKey

        public org.apache.pulsar.client.api.ProducerBuilder<T> addEncryptionKey​(java.lang.String key)
        Specified by:
        addEncryptionKey in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • cryptoFailureAction

        public org.apache.pulsar.client.api.ProducerBuilder<T> cryptoFailureAction​(@NonNull
                                                                                   @NonNull org.apache.pulsar.client.api.ProducerCryptoFailureAction action)
        Specified by:
        cryptoFailureAction in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • batchingMaxPublishDelay

        public org.apache.pulsar.client.api.ProducerBuilder<T> batchingMaxPublishDelay​(long batchDelay,
                                                                                       @NonNull
                                                                                       @NonNull java.util.concurrent.TimeUnit timeUnit)
        Specified by:
        batchingMaxPublishDelay in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • roundRobinRouterBatchingPartitionSwitchFrequency

        public org.apache.pulsar.client.api.ProducerBuilder<T> roundRobinRouterBatchingPartitionSwitchFrequency​(int frequency)
        Specified by:
        roundRobinRouterBatchingPartitionSwitchFrequency in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • batchingMaxMessages

        public org.apache.pulsar.client.api.ProducerBuilder<T> batchingMaxMessages​(int batchMessagesMaxMessagesPerBatch)
        Specified by:
        batchingMaxMessages in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • batchingMaxBytes

        public org.apache.pulsar.client.api.ProducerBuilder<T> batchingMaxBytes​(int batchingMaxBytes)
        Specified by:
        batchingMaxBytes in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • batcherBuilder

        public org.apache.pulsar.client.api.ProducerBuilder<T> batcherBuilder​(org.apache.pulsar.client.api.BatcherBuilder batcherBuilder)
        Specified by:
        batcherBuilder in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • initialSequenceId

        public org.apache.pulsar.client.api.ProducerBuilder<T> initialSequenceId​(long initialSequenceId)
        Specified by:
        initialSequenceId in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • property

        public org.apache.pulsar.client.api.ProducerBuilder<T> property​(java.lang.String key,
                                                                        java.lang.String value)
        Specified by:
        property in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • properties

        public org.apache.pulsar.client.api.ProducerBuilder<T> properties​(@NonNull
                                                                          @NonNull java.util.Map<java.lang.String,​java.lang.String> properties)
        Specified by:
        properties in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • intercept

        public org.apache.pulsar.client.api.ProducerBuilder<T> intercept​(org.apache.pulsar.client.api.interceptor.ProducerInterceptor... interceptors)
        Specified by:
        intercept in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • intercept

        @Deprecated
        public org.apache.pulsar.client.api.ProducerBuilder<T> intercept​(org.apache.pulsar.client.api.ProducerInterceptor<T>... interceptors)
        Deprecated.
        Specified by:
        intercept in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • autoUpdatePartitions

        public org.apache.pulsar.client.api.ProducerBuilder<T> autoUpdatePartitions​(boolean autoUpdate)
        Specified by:
        autoUpdatePartitions in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • autoUpdatePartitionsInterval

        public org.apache.pulsar.client.api.ProducerBuilder<T> autoUpdatePartitionsInterval​(int interval,
                                                                                            java.util.concurrent.TimeUnit unit)
        Specified by:
        autoUpdatePartitionsInterval in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • enableMultiSchema

        public org.apache.pulsar.client.api.ProducerBuilder<T> enableMultiSchema​(boolean multiSchema)
        Specified by:
        enableMultiSchema in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • enableLazyStartPartitionedProducers

        public org.apache.pulsar.client.api.ProducerBuilder<T> enableLazyStartPartitionedProducers​(boolean lazyStartPartitionedProducers)
        Specified by:
        enableLazyStartPartitionedProducers in interface org.apache.pulsar.client.api.ProducerBuilder<T>
      • initialSubscriptionName

        public ProducerBuilderImpl<T> initialSubscriptionName​(java.lang.String initialSubscriptionName)
        Use this config to automatically create an initial subscription when creating the topic. If this field is not set, the initial subscription will not be created. If this field is set but the broker's `allowAutoSubscriptionCreation` is disabled, the producer will fail to be created. This method is limited to internal use. This method will only be used when the consumer creates the dlq producer.
        Parameters:
        initialSubscriptionName - Name of the initial subscription of the topic.
        Returns:
        the producer builder implementation instance
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object