Class EventHubBufferedProducerClientBuilder

java.lang.Object
com.azure.messaging.eventhubs.EventHubBufferedProducerClientBuilder

public final class EventHubBufferedProducerClientBuilder extends Object
See Also:
  • Constructor Details

  • Method Details

    • clientOptions

      public EventHubBufferedProducerClientBuilder clientOptions(com.azure.core.util.ClientOptions clientOptions)
      Sets the client options.
      Parameters:
      clientOptions - The client options.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • configuration

      public EventHubBufferedProducerClientBuilder configuration(com.azure.core.util.Configuration configuration)
      Sets the configuration store that is used during construction of the service client. If not specified, the default configuration store is used to configure the buffered producer. Use Configuration.NONE to bypass using configuration settings during construction.
      Parameters:
      configuration - The configuration store used to configure the buffered producer.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • connectionString

      public EventHubBufferedProducerClientBuilder connectionString(String connectionString)
      Sets the credential information given a connection string to the Event Hub instance.

      If the connection string is copied from the Event Hubs namespace, it will likely not contain the name to the desired Event Hub, which is needed. In this case, the name can be added manually by adding "EntityPath=EVENT_HUB_NAME" to the end of the connection string. For example, "EntityPath=telemetry-hub".

      If you have defined a shared access policy directly on the Event Hub itself, then copying the connection string from that Event Hub will result in a connection string that contains the name.

      Parameters:
      connectionString - The connection string to use for connecting to the Event Hub instance. It is expected that the Event Hub name and the shared access key properties are contained in this connection string.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
      Throws:
      IllegalArgumentException - if connectionString is null or empty. Or, the connectionString does not contain the "EntityPath" key, which is the name of the Event Hub instance.
      com.azure.core.exception.AzureException - If the shared access signature token credential could not be created using the connection string.
    • connectionString

      public EventHubBufferedProducerClientBuilder connectionString(String connectionString, String eventHubName)
      Sets the credential information given a connection string to the Event Hubs namespace and name to a specific Event Hub instance.
      Parameters:
      connectionString - The connection string to use for connecting to the Event Hubs namespace; it is expected that the shared access key properties are contained in this connection string, but not the Event Hub name.
      eventHubName - The name of the Event Hub to connect the client to.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
      Throws:
      NullPointerException - if connectionString or eventHubName is null.
      IllegalArgumentException - if connectionString or eventHubName is an empty string. Or, if the connectionString contains the Event Hub name.
      com.azure.core.exception.AzureException - If the shared access signature token credential could not be created using the connection string.
    • credential

      public EventHubBufferedProducerClientBuilder credential(String fullyQualifiedNamespace, String eventHubName, com.azure.core.credential.TokenCredential credential)
      Sets the credential information for which Event Hub instance to connect to, and how to authorize against it.
      Parameters:
      fullyQualifiedNamespace - The fully qualified name for the Event Hubs namespace. This is likely to be similar to "{your-namespace}.servicebus.windows.net".
      eventHubName - The name of the Event Hub to connect the client to.
      credential - The token credential to use for authorization. Access controls may be specified by the Event Hubs namespace or the requested Event Hub, depending on Azure configuration.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
      Throws:
      IllegalArgumentException - if fullyQualifiedNamespace or eventHubName is an empty string.
      NullPointerException - if fullyQualifiedNamespace, eventHubName, or credential is null.
    • credential

      public EventHubBufferedProducerClientBuilder credential(String fullyQualifiedNamespace, String eventHubName, com.azure.core.credential.AzureNamedKeyCredential credential)
      Sets the TokenCredential used to authorize requests sent to the service. Refer to the Azure SDK for Java identity and authentication documentation for more details on proper usage of the TokenCredential type.
      Parameters:
      fullyQualifiedNamespace - The fully qualified name for the Event Hubs namespace. This is likely to be similar to "{your-namespace}.servicebus.windows.net".
      eventHubName - The name of the Event Hub to connect the client to.
      credential - The token credential to use for authorization. Access controls may be specified by the Event Hubs namespace or the requested Event Hub, depending on Azure configuration.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
      Throws:
      NullPointerException - if fullyQualifiedNamespace, eventHubName, or credential is null.
    • credential

      public EventHubBufferedProducerClientBuilder credential(String fullyQualifiedNamespace, String eventHubName, com.azure.core.credential.AzureSasCredential credential)
      Sets the TokenCredential used to authorize requests sent to the service. Refer to the Azure SDK for Java identity and authentication documentation for more details on proper usage of the TokenCredential type.
      Parameters:
      fullyQualifiedNamespace - The fully qualified name for the Event Hubs namespace. This is likely to be similar to "{your-namespace}.servicebus.windows.net".
      eventHubName - The name of the Event Hub to connect the client to.
      credential - The token credential to use for authorization. Access controls may be specified by the Event Hubs namespace or the requested Event Hub, depending on Azure configuration.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
      Throws:
      NullPointerException - if fullyQualifiedNamespace, eventHubName, or credential is null.
    • customEndpointAddress

      public EventHubBufferedProducerClientBuilder customEndpointAddress(String customEndpointAddress)
      Sets a custom endpoint address when connecting to the Event Hubs service. This can be useful when your network does not allow connecting to the standard Azure Event Hubs endpoint address, but does allow connecting through an intermediary. For example: https://my.custom.endpoint.com:55300.

      If no port is specified, the default port for the transport type is used.

      Parameters:
      customEndpointAddress - The custom endpoint address.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
      Throws:
      IllegalArgumentException - if customEndpointAddress cannot be parsed into a valid URL.
    • maxEventBufferLengthPerPartition

      public EventHubBufferedProducerClientBuilder maxEventBufferLengthPerPartition(int maxEventBufferLengthPerPartition)
      The total number of events that can be buffered for publishing at a given time for a given partition. Once this capacity is reached, more events can enqueued by calling the enqueueEvent methods on either EventHubBufferedProducerClient or EventHubBufferedProducerAsyncClient. The default limit is 1500 queued events for each partition.
      Parameters:
      maxEventBufferLengthPerPartition - Total number of events that can be buffered for publishing at a given time.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • maxWaitTime

      public EventHubBufferedProducerClientBuilder maxWaitTime(Duration maxWaitTime)
      The amount of time to wait for a batch to be built with events in the buffer before publishing a partially full batch.
      Parameters:
      maxWaitTime - The amount of time to wait.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • onSendBatchFailed

      public EventHubBufferedProducerClientBuilder onSendBatchFailed(Consumer<SendBatchFailedContext> sendFailedContext)
      The callback to invoke when publishing a set of events fails.
      Parameters:
      sendFailedContext - The callback to invoke.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • onSendBatchSucceeded

      public EventHubBufferedProducerClientBuilder onSendBatchSucceeded(Consumer<SendBatchSucceededContext> sendSucceededContext)
      The callback to invoke when publishing a set of events succeeds.
      Parameters:
      sendSucceededContext - The callback to invoke when publishing a ste of events succeeds.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • proxyOptions

      public EventHubBufferedProducerClientBuilder proxyOptions(com.azure.core.amqp.ProxyOptions proxyOptions)
      Sets the proxy configuration to use for the buffered producer. When a proxy is configured, AmqpTransportType.AMQP_WEB_SOCKETS must be used for the transport type.
      Parameters:
      proxyOptions - The proxy configuration to use.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • retryOptions

      public EventHubBufferedProducerClientBuilder retryOptions(com.azure.core.amqp.AmqpRetryOptions retryOptions)
      Sets the retry policy for the producer client. If not specified, the default retry options are used.
      Parameters:
      retryOptions - The retry policy to use.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • transportType

      public EventHubBufferedProducerClientBuilder transportType(com.azure.core.amqp.AmqpTransportType transport)
      Sets the transport type by which all the communication with Azure Event Hubs occurs. Default value is AmqpTransportType.AMQP.
      Parameters:
      transport - The transport type to use.
      Returns:
      The updated EventHubBufferedProducerClientBuilder object.
    • buildAsyncClient

      public EventHubBufferedProducerAsyncClient buildAsyncClient()
      Builds a new instance of the async buffered producer client.
      Returns:
      A new instance of EventHubBufferedProducerAsyncClient.
      Throws:
      NullPointerException - if onSendBatchSucceeded(Consumer), onSendBatchFailed(Consumer), or maxWaitTime(Duration) are null.
      IllegalArgumentException - if maxConcurrentSends(int), maxConcurrentSendsPerPartition(int), or maxEventBufferLengthPerPartition(int) are less than 1.
    • buildClient

      public EventHubBufferedProducerClient buildClient()
      Builds a new instance of the buffered producer client.
      Returns:
      A new instance of EventHubBufferedProducerClient.