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).
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Class Publisher.Builder (1.141.2)\n\nVersion latestkeyboard_arrow_down\n\n- [1.141.2 (latest)](/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.141.1](/java/docs/reference/google-cloud-pubsub/1.141.1/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.140.2](/java/docs/reference/google-cloud-pubsub/1.140.2/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.139.4](/java/docs/reference/google-cloud-pubsub/1.139.4/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.138.0](/java/docs/reference/google-cloud-pubsub/1.138.0/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.137.1](/java/docs/reference/google-cloud-pubsub/1.137.1/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.136.1](/java/docs/reference/google-cloud-pubsub/1.136.1/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.135.0](/java/docs/reference/google-cloud-pubsub/1.135.0/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.134.2](/java/docs/reference/google-cloud-pubsub/1.134.2/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.133.1](/java/docs/reference/google-cloud-pubsub/1.133.1/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.132.2](/java/docs/reference/google-cloud-pubsub/1.132.2/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.131.0](/java/docs/reference/google-cloud-pubsub/1.131.0/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.130.0](/java/docs/reference/google-cloud-pubsub/1.130.0/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.129.6](/java/docs/reference/google-cloud-pubsub/1.129.6/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.127.3](/java/docs/reference/google-cloud-pubsub/1.127.3/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.126.6](/java/docs/reference/google-cloud-pubsub/1.126.6/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.125.13](/java/docs/reference/google-cloud-pubsub/1.125.13/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.123.18](/java/docs/reference/google-cloud-pubsub/1.123.18/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.122.2](/java/docs/reference/google-cloud-pubsub/1.122.2/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.121.1](/java/docs/reference/google-cloud-pubsub/1.121.1/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.120.24](/java/docs/reference/google-cloud-pubsub/1.120.24/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.119.1](/java/docs/reference/google-cloud-pubsub/1.119.1/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.118.0](/java/docs/reference/google-cloud-pubsub/1.118.0/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.117.0](/java/docs/reference/google-cloud-pubsub/1.117.0/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.116.4](/java/docs/reference/google-cloud-pubsub/1.116.4/com.google.cloud.pubsub.v1.Publisher.Builder)\n- [1.115.5](/java/docs/reference/google-cloud-pubsub/1.115.5/com.google.cloud.pubsub.v1.Publisher.Builder) \n\n public static final class Publisher.Builder\n\nA builder of [Publisher](/java/docs/reference/google-cloud-pubsub/latest/com.google.cloud.pubsub.v1.Publisher)s. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e Publisher.Builder \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nStatic Methods\n--------------\n\n### getDefaultBatchingSettings()\n\n public static BatchingSettings getDefaultBatchingSettings()\n\nReturns the default BatchingSettings used by the client if settings are not provided.\n\nMethods\n-------\n\n### build()\n\n public Publisher build()\n\n### setBatchingSettings(BatchingSettings batchingSettings)\n\n public Publisher.Builder setBatchingSettings(BatchingSettings batchingSettings)\n\n### setChannelProvider(TransportChannelProvider channelProvider)\n\n public Publisher.Builder setChannelProvider(TransportChannelProvider channelProvider)\n\n`ChannelProvider` to use to create Channels, which must point at Cloud Pub/Sub\nendpoint.\n\nFor performance, this client benefits from having multiple underlying connections. See\ncom.google.api.gax.grpc.InstantiatingGrpcChannelProvider.Builder#setPoolSize(int).\n\n### setCompressionBytesThreshold(long compressionBytesThreshold)\n\n public Publisher.Builder setCompressionBytesThreshold(long compressionBytesThreshold)\n\nSets the threshold (in bytes) above which messages are compressed for transport. Only takes\neffect if setEnableCompression(true) is also called.\"\n\n### setCredentialsProvider(CredentialsProvider credentialsProvider)\n\n public Publisher.Builder setCredentialsProvider(CredentialsProvider credentialsProvider)\n\n`CredentialsProvider` to use to create Credentials to authenticate calls.\n\n### setEnableCompression(boolean enableCompression)\n\n public Publisher.Builder setEnableCompression(boolean enableCompression)\n\nGives the ability to enable transport compression.\n\n### setEnableMessageOrdering(boolean enableMessageOrdering)\n\n public Publisher.Builder setEnableMessageOrdering(boolean enableMessageOrdering)\n\nSets the message ordering option.\n\n### setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing)\n\n public Publisher.Builder setEnableOpenTelemetryTracing(boolean enableOpenTelemetryTracing)\n\nGives the ability to enable Open Telemetry Tracing\n\n### setEndpoint(String endpoint)\n\n public Publisher.Builder setEndpoint(String endpoint)\n\nGives the ability to override the gRPC endpoint.\n\n### setExecutorProvider(ExecutorProvider executorProvider)\n\n public Publisher.Builder setExecutorProvider(ExecutorProvider executorProvider)\n\nGives the ability to set a custom executor to be used by the library.\n\n### setHeaderProvider(HeaderProvider headerProvider)\n\n public Publisher.Builder setHeaderProvider(HeaderProvider headerProvider)\n\n| **Beta**\n|\n| This feature is covered by the [Pre-GA Offerings Terms](/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.\n\nSets the static header provider. The header provider will be called during client\nconstruction only once. The headers returned by the provider will be cached and supplied as\nis for each request issued by the constructed client. Some reserved headers can be overridden\n(e.g. Content-Type) or merged with the default value (e.g. User-Agent) by the underlying\ntransport layer.\n\n### setOpenTelemetry(OpenTelemetry openTelemetry)\n\n public Publisher.Builder setOpenTelemetry(OpenTelemetry openTelemetry)\n\nSets the instance of OpenTelemetry for the Publisher class.\n\n### setRetrySettings(RetrySettings retrySettings)\n\n public Publisher.Builder setRetrySettings(RetrySettings retrySettings)\n\nConfigures the Publisher's retry parameters.\n\n### setTransform(ApiFunction\\\u003cPubsubMessage,PubsubMessage\\\u003e messageTransform)\n\n public Publisher.Builder setTransform(ApiFunction\u003cPubsubMessage,PubsubMessage\u003e messageTransform)\n\n| **Beta**\n|\n| This feature is covered by the [Pre-GA Offerings Terms](/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.\n\nGives the ability to set an [ApiFunction](https://cloud.google.com/java/docs/reference/api-common/latest/com.google.api.core.ApiFunction.html) that will transform the [PubsubMessage](/java/docs/reference/google-cloud-pubsub/latest/com.google.pubsub.v1.PubsubMessage)\nbefore it is sent\n\n### setUniverseDomain(String universeDomain)\n\n public Publisher.Builder setUniverseDomain(String universeDomain)\n\nGives the ability to override the universe domain."]]