Class ProducerBuilderImpl<T>

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

public class ProducerBuilderImpl<T> extends Object implements org.apache.pulsar.client.api.ProducerBuilder<T>
  • Constructor Details

    • ProducerBuilderImpl

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

    • 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 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 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(Map<String,Object> config)
      Specified by:
      loadConf in interface org.apache.pulsar.client.api.ProducerBuilder<T>
    • topic

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

      public org.apache.pulsar.client.api.ProducerBuilder<T> producerName(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 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>
    • chunkMaxMessageSize

      public org.apache.pulsar.client.api.ProducerBuilder<T> chunkMaxMessageSize(int chunkMaxMessageSize)
      Specified by:
      chunkMaxMessageSize 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(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 Map<String,String> publicKeys)
      Specified by:
      defaultCryptoKeyReader in interface org.apache.pulsar.client.api.ProducerBuilder<T>
    • addEncryptionKey

      public org.apache.pulsar.client.api.ProducerBuilder<T> addEncryptionKey(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 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(String key, 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 Map<String,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, 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(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 String toString()
      Overrides:
      toString in class Object