Encapsulates client state, including executor, credentials, and transport channel.
UnlikeClientSettingswhich allows users to configure the client,ClientContextis intended to be used in generated code. Most users will not need to use it.
The objects that need to be closed in order to clean up the resources created in the process of
creating this ClientContext. This will include the closeables from the transport context.
[[["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."],[[["\u003cp\u003eThe latest version of \u003ccode\u003eClientContext\u003c/code\u003e is 2.63.1, which is part of the Google API Client Libraries for Java.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eClientContext\u003c/code\u003e encapsulates the client state, including the executor, credentials, and transport channel, and is primarily intended for use within generated code rather than by most users.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eClientContext\u003c/code\u003e offers static methods to create new instances based on \u003ccode\u003eClientSettings\u003c/code\u003e or \u003ccode\u003eStubSettings\u003c/code\u003e, including methods \u003ccode\u003ecreate()\u003c/code\u003e and \u003ccode\u003enewBuilder()\u003c/code\u003e, and has methods to retrieve the resources it contains.\u003c/p\u003e\n"],["\u003cp\u003eIt contains methods to get critical aspects of the client's configuration, like \u003ccode\u003egetCredentials()\u003c/code\u003e, \u003ccode\u003egetExecutor()\u003c/code\u003e, and \u003ccode\u003egetTransportChannel()\u003c/code\u003e, along with methods to manage tracing and background resources.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eClientContext\u003c/code\u003e class has many methods that are used to get information about the context like \u003ccode\u003egetEndpoint()\u003c/code\u003e or \u003ccode\u003egetHeaders()\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Class ClientContext (2.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.69.0 (latest)](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ClientContext)\n- [2.68.2](/java/docs/reference/gax/2.68.2/com.google.api.gax.rpc.ClientContext)\n- [2.67.0](/java/docs/reference/gax/2.67.0/com.google.api.gax.rpc.ClientContext)\n- [2.66.0](/java/docs/reference/gax/2.66.0/com.google.api.gax.rpc.ClientContext)\n- [2.65.0](/java/docs/reference/gax/2.65.0/com.google.api.gax.rpc.ClientContext)\n- [2.63.1](/java/docs/reference/gax/2.63.1/com.google.api.gax.rpc.ClientContext)\n- [2.62.0](/java/docs/reference/gax/2.62.0/com.google.api.gax.rpc.ClientContext)\n- [2.61.0](/java/docs/reference/gax/2.61.0/com.google.api.gax.rpc.ClientContext)\n- [2.60.0](/java/docs/reference/gax/2.60.0/com.google.api.gax.rpc.ClientContext)\n- [2.59.1](/java/docs/reference/gax/2.59.1/com.google.api.gax.rpc.ClientContext)\n- [2.58.0](/java/docs/reference/gax/2.58.0/com.google.api.gax.rpc.ClientContext)\n- [2.57.0](/java/docs/reference/gax/2.57.0/com.google.api.gax.rpc.ClientContext)\n- [2.55.0](/java/docs/reference/gax/2.55.0/com.google.api.gax.rpc.ClientContext)\n- [2.54.1](/java/docs/reference/gax/2.54.1/com.google.api.gax.rpc.ClientContext)\n- [2.53.0](/java/docs/reference/gax/2.53.0/com.google.api.gax.rpc.ClientContext)\n- [2.52.0](/java/docs/reference/gax/2.52.0/com.google.api.gax.rpc.ClientContext)\n- [2.51.0](/java/docs/reference/gax/2.51.0/com.google.api.gax.rpc.ClientContext)\n- [2.50.0](/java/docs/reference/gax/2.50.0/com.google.api.gax.rpc.ClientContext)\n- [2.49.0](/java/docs/reference/gax/2.49.0/com.google.api.gax.rpc.ClientContext)\n- [2.48.1](/java/docs/reference/gax/2.48.1/com.google.api.gax.rpc.ClientContext)\n- [2.47.0](/java/docs/reference/gax/2.47.0/com.google.api.gax.rpc.ClientContext)\n- [2.46.1](/java/docs/reference/gax/2.46.1/com.google.api.gax.rpc.ClientContext)\n- [2.45.0](/java/docs/reference/gax/2.45.0/com.google.api.gax.rpc.ClientContext)\n- [2.43.0](/java/docs/reference/gax/2.43.0/com.google.api.gax.rpc.ClientContext)\n- [2.42.0](/java/docs/reference/gax/2.42.0/com.google.api.gax.rpc.ClientContext)\n- [2.41.0](/java/docs/reference/gax/2.41.0/com.google.api.gax.rpc.ClientContext)\n- [2.39.0](/java/docs/reference/gax/2.39.0/com.google.api.gax.rpc.ClientContext)\n- [2.38.0](/java/docs/reference/gax/2.38.0/com.google.api.gax.rpc.ClientContext)\n- [2.37.0](/java/docs/reference/gax/2.37.0/com.google.api.gax.rpc.ClientContext)\n- [2.36.0](/java/docs/reference/gax/2.36.0/com.google.api.gax.rpc.ClientContext)\n- [2.35.0](/java/docs/reference/gax/2.35.0/com.google.api.gax.rpc.ClientContext)\n- [2.34.1](/java/docs/reference/gax/2.34.1/com.google.api.gax.rpc.ClientContext)\n- [2.33.0](/java/docs/reference/gax/2.33.0/com.google.api.gax.rpc.ClientContext)\n- [2.32.1](/java/docs/reference/gax/2.32.1/com.google.api.gax.rpc.ClientContext)\n- [2.31.1](/java/docs/reference/gax/2.31.1/com.google.api.gax.rpc.ClientContext)\n- [2.30.1](/java/docs/reference/gax/2.30.1/com.google.api.gax.rpc.ClientContext)\n- [2.24.0](/java/docs/reference/gax/2.24.0/com.google.api.gax.rpc.ClientContext)\n- [2.23.3](/java/docs/reference/gax/2.23.3/com.google.api.gax.rpc.ClientContext)\n- [2.22.0](/java/docs/reference/gax/2.22.0/com.google.api.gax.rpc.ClientContext)\n- [2.21.0](/java/docs/reference/gax/2.21.0/com.google.api.gax.rpc.ClientContext)\n- [2.20.1](/java/docs/reference/gax/2.20.1/com.google.api.gax.rpc.ClientContext)\n- [2.19.6](/java/docs/reference/gax/2.19.6/com.google.api.gax.rpc.ClientContext)\n- [2.18.7](/java/docs/reference/gax/2.18.7/com.google.api.gax.rpc.ClientContext)\n- [2.17.0](/java/docs/reference/gax/2.17.0/com.google.api.gax.rpc.ClientContext)\n- [2.16.0](/java/docs/reference/gax/2.16.0/com.google.api.gax.rpc.ClientContext)\n- [2.15.0](/java/docs/reference/gax/2.15.0/com.google.api.gax.rpc.ClientContext)\n- [2.14.0](/java/docs/reference/gax/2.14.0/com.google.api.gax.rpc.ClientContext)\n- [2.13.0](/java/docs/reference/gax/2.13.0/com.google.api.gax.rpc.ClientContext)\n- [2.12.2](/java/docs/reference/gax/2.12.2/com.google.api.gax.rpc.ClientContext)\n- [2.11.0](/java/docs/reference/gax/2.11.0/com.google.api.gax.rpc.ClientContext)\n- [2.10.0](/java/docs/reference/gax/2.10.0/com.google.api.gax.rpc.ClientContext)\n- [2.9.0](/java/docs/reference/gax/2.9.0/com.google.api.gax.rpc.ClientContext)\n- [2.8.1](/java/docs/reference/gax/2.8.1/com.google.api.gax.rpc.ClientContext)\n- [2.7.1](/java/docs/reference/gax/2.7.1/com.google.api.gax.rpc.ClientContext) \n\n public abstract class ClientContext\n\nEncapsulates client state, including executor, credentials, and transport channel.\n\nUnlike [ClientSettings](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ClientSettings) which allows users to configure the client, `\nClientContext` is intended to be used in generated code. Most users will not need to use it. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e ClientContext \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### create(ClientSettings settings)\n\n public static ClientContext create(ClientSettings settings)\n\nInstantiates the executor, credentials, and transport context based on the given client\nsettings.\n\n### create(StubSettings settings)\n\n public static ClientContext create(StubSettings settings)\n\nInstantiates the executor, credentials, and transport context based on the given client\nsettings.\n\n### newBuilder()\n\n public static ClientContext.Builder newBuilder()\n\nCreate a new ClientContext with default values\n\nConstructors\n------------\n\n### ClientContext()\n\n public ClientContext()\n\nMethods\n-------\n\n### getBackgroundResources()\n\n public abstract List\u003cBackgroundResource\u003e getBackgroundResources()\n\nThe objects that need to be closed in order to clean up the resources created in the process of\ncreating this ClientContext. This will include the closeables from the transport context.\n\n### getClock()\n\n public abstract ApiClock getClock()\n\n### getCredentials()\n\n public abstract Credentials getCredentials()\n\n### getDefaultCallContext()\n\n public abstract ApiCallContext getDefaultCallContext()\n\n### getEndpoint()\n\n public abstract String getEndpoint()\n\n### getExecutor()\n\n public abstract ScheduledExecutorService getExecutor()\n\nGets the executor to use for running scheduled API call logic (such as retries and long-running\noperations).\n\n### getGdchApiAudience()\n\n public abstract String getGdchApiAudience()\n\nGets the API audience used when creating a Client that uses com.google.auth.oauth2.GdchCredentials\n\n### getHeaders()\n\n public abstract Map\u003cString,String\u003e getHeaders()\n\n### getInternalHeaders()\n\n protected abstract Map\u003cString,String\u003e getInternalHeaders()\n\n### getQuotaProjectId()\n\n public abstract String getQuotaProjectId()\n\n### getStreamWatchdog()\n\n public abstract Watchdog getStreamWatchdog()\n\n### getStreamWatchdogCheckInterval()\n\n public final Duration getStreamWatchdogCheckInterval()\n\n| **Obsolete**\n|\n| *Use getStreamWatchdogCheckIntervalDuration() instead*\n|\n| This feature is stable for usage in this major version, but may be deprecated in a future release.\n\nThis method is obsolete. Use [#getStreamWatchdogCheckIntervalDuration()](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ClientContext#com_google_api_gax_rpc_ClientContext_getStreamWatchdogCheckIntervalDuration__) instead.\n\n### getStreamWatchdogCheckIntervalDuration()\n\n public abstract Duration getStreamWatchdogCheckIntervalDuration()\n\n### getTracerFactory()\n\n public abstract ApiTracerFactory getTracerFactory()\n\n| **Beta**\n|\n| *The surface for tracing is not stable yet and may change in the future.*\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\nGets the [ApiTracerFactory](/java/docs/reference/gax/latest/com.google.api.gax.tracing.ApiTracerFactory) that will be used to generate traces for operations.\n\n### getTransportChannel()\n\n public abstract TransportChannel getTransportChannel()\n\n### getUniverseDomain()\n\n public abstract String getUniverseDomain()\n\n### toBuilder()\n\n public abstract ClientContext.Builder toBuilder()"]]