# Class Publisher.Builder (1.151.0)

1.151.0 (latest) 1.150.1 1.149.0 1.148.0 1.147.0 1.145.0 1.143.1 1.142.0 1.141.5 1.140.2 1.139.4 1.138.0 1.137.1 1.136.1 1.135.0 1.134.2 1.133.1 1.132.2 1.131.0 1.130.0 1.129.6 1.127.3 1.126.6 1.125.13 1.123.18 1.122.2 1.121.1 1.120.24 1.119.1 1.118.0 1.117.0 1.116.4 1.115.5

    public static final class Publisher.Builder

A builder of [Publisher](https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher)s.

## Inheritance

[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \> Publisher.Builder

## Inherited Members

[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) [Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

## Static Methods

### getDefaultBatchingSettings()

    public static BatchingSettings getDefaultBatchingSettings()

Returns the default BatchingSettings used by the client if settings are not provided.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.batching.BatchingSettings.html` |   |

## Methods

### build()

    public Publisher build()

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher` |   |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html` |   |

### setBatchingSettings(BatchingSettings batchingSettings)

    public Publisher.Builder setBatchingSettings(BatchingSettings batchingSettings)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `batchingSettings` | `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.batching.BatchingSettings.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setChannelProvider(TransportChannelProvider channelProvider)

    public Publisher.Builder setChannelProvider(TransportChannelProvider channelProvider)

`ChannelProvider` to use to create Channels, which must point at Cloud Pub/Sub
endpoint.

For performance, this client benefits from having multiple underlying connections. See
com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.Builder#setPoolSize(int).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `channelProvider` | `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.rpc.TransportChannelProvider.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setCompressionBytesThreshold(long compressionBytesThreshold)

    public Publisher.Builder setCompressionBytesThreshold(long compressionBytesThreshold)

Sets the threshold (in bytes) above which messages are compressed for transport. Only takes
effect if setEnableCompression(true) is also called."

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `compressionBytesThreshold` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setCredentialsProvider(CredentialsProvider credentialsProvider)

    public Publisher.Builder setCredentialsProvider(CredentialsProvider credentialsProvider)

`CredentialsProvider` to use to create Credentials to authenticate calls.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `credentialsProvider` | `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.core.CredentialsProvider.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setEnableCompression(boolean enableCompression)

    public Publisher.Builder setEnableCompression(boolean enableCompression)

Gives the ability to enable transport compression.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `enableCompression` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setEnableMessageOrdering(boolean enableMessageOrdering)

    public Publisher.Builder setEnableMessageOrdering(boolean enableMessageOrdering)

Sets the message ordering option.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `enableMessageOrdering` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing)

    public Publisher.Builder setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing)

Gives the ability to enable Open Telemetry Tracing

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `enableOpenTelemetryTracing` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setEndpoint(String endpoint)

    public Publisher.Builder setEndpoint(String endpoint)

Gives the ability to override the gRPC endpoint.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `endpoint` | `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setExecutorProvider(ExecutorProvider executorProvider)

    public Publisher.Builder setExecutorProvider(ExecutorProvider executorProvider)

Gives the ability to set a custom executor to be used by the library.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `executorProvider` | `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.core.ExecutorProvider.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setHeaderProvider(HeaderProvider headerProvider)

    public Publisher.Builder setHeaderProvider(HeaderProvider headerProvider)

> [!WARNING]
> **Beta**
>
> This feature is covered by the [Pre-GA Offerings Terms](https://docs.cloud.google.com/terms/service-terms#1) of the Terms of Service. Pre-GA libraries might have limited support, and changes to pre-GA libraries might not be compatible with other pre-GA versions. For more information, see the launch stage descriptions.

Sets the static header provider. The header provider will be called during client
construction only once. The headers returned by the provider will be cached and supplied as
is for each request issued by the constructed client. Some reserved headers can be overridden
(e.g. Content-Type) or merged with the default value (e.g. User-Agent) by the underlying
transport layer.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `headerProvider` | `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.rpc.HeaderProvider.html` the header provider |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` | the builder |

### setOpenTelemetry(OpenTelemetry openTelemetry)

    public Publisher.Builder setOpenTelemetry(OpenTelemetry openTelemetry)

Sets the instance of OpenTelemetry for the Publisher class.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `openTelemetry` | `io.opentelemetry.api.OpenTelemetry` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setRetrySettings(RetrySettings retrySettings)

    public Publisher.Builder setRetrySettings(RetrySettings retrySettings)

Configures the Publisher's retry parameters.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `retrySettings` | `https://docs.cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setTransform(ApiFunction\<PubsubMessage,PubsubMessage\> messageTransform)

    public Publisher.Builder setTransform(ApiFunction<PubsubMessage,PubsubMessage> messageTransform)

> [!WARNING]
> **Beta**
>
> This feature is covered by the [Pre-GA Offerings Terms](https://docs.cloud.google.com/terms/service-terms#1) of the Terms of Service. Pre-GA libraries might have limited support, and changes to pre-GA libraries might not be compatible with other pre-GA versions. For more information, see the launch stage descriptions.

Gives the ability to set an [ApiFunction](https://docs.cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFunction.html) that will transform the [PubsubMessage](https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.pubsub.v1.PubsubMessage)
before it is sent

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `messageTransform` | `https://docs.cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFunction.html<https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.pubsub.v1.PubsubMessage,https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.pubsub.v1.PubsubMessage>` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |

### setUniverseDomain(String universeDomain)

    public Publisher.Builder setUniverseDomain(String universeDomain)

Gives the ability to override the universe domain.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `universeDomain` | `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder` |   |