Interface CamundaClientBuilder
- All Known Subinterfaces:
CamundaClientCloudBuilderStep1.CamundaClientCloudBuilderStep2.CamundaClientCloudBuilderStep3.CamundaClientCloudBuilderStep4,CamundaClientCloudBuilderStep1.CamundaClientCloudBuilderStep2.CamundaClientCloudBuilderStep3.CamundaClientCloudBuilderStep4.CamundaClientCloudBuilderStep5
- All Known Implementing Classes:
CamundaClientBuilderImpl,CamundaClientCloudBuilderImpl
CamundaClient.-
Method Summary
Modifier and TypeMethodDescriptionapplyEnvironmentVariableOverrides(boolean applyEnvironmentVariableOverrides) Allows to disable the mechanism to override some properties by ENVIRONMENT VARIABLES.build()caCertificatePath(String certificatePath) Path to a root CA certificate to be used instead of the certificate in the default default store.credentialsProvider(CredentialsProvider credentialsProvider) A customCredentialsProviderwhich will be used to apply authentication credentials to requests.defaultJobPollInterval(Duration pollInterval) The interval which a job worker is periodically polling for new jobs.defaultJobTimeout(Duration timeout) The timeout which is used when none is provided for a job worker.defaultJobWorkerExceptionHandler(JobExceptionHandler jobExceptionHandler) A custom retryBackoffSupplier allows the client to determine the default retry backoff strategy that every job worker will apply unless configured otherwise.defaultJobWorkerMaxJobsActive(int maxJobsActive) defaultJobWorkerName(String workerName) The name of the worker which is used when none is set for a job worker.defaultJobWorkerStreamEnabled(boolean streamEnabled) A custom streamEnabled allows the client to use job stream instead of job poll.defaultJobWorkerTenantFilter(TenantFilter tenantFilter) The behavior to adopt when filtering jobs during activation by a given worker.defaultJobWorkerTenantIds(List<String> tenantIds) defaultMessageTimeToLive(Duration timeToLive) The time-to-live which is used when none is provided for a message.defaultRequestTimeout(Duration requestTimeout) The request timeout used if not overridden by the command.defaultRequestTimeoutOffset(Duration requestTimeoutOffset) The request timeout client offset is used in commands where thedefaultRequestTimeout(Duration)is also passed to the server.defaultTenantId(String tenantId) grpcAddress(URI grpcAddress) default CamundaClientBuilderjobHandlingExecutor(ExecutorService executor) Identical behavior asjobHandlingExecutor(ExecutorService,boolean), but taking ownership of the executor by default.jobHandlingExecutor(ExecutorService executor, boolean takeOwnership) Allows passing a custom executor service that will be used for handling jobs (i.e. executing theJobHandler).default CamundaClientBuilderjobWorkerExecutor(ScheduledExecutorService executor) Deprecated.jobWorkerExecutor(ScheduledExecutorService executor, boolean takeOwnership) Deprecated.default CamundaClientBuilderIdentical behavior asjobWorkerSchedulingExecutor(ScheduledExecutorService,boolean), but taking ownership of the executor by default.jobWorkerSchedulingExecutor(ScheduledExecutorService executor, boolean takeOwnership) Allows passing a custom scheduled executor service that will be used for scheduling job worker tasks such as polling for new jobs.Time interval between keep alive messages sent to the gateway.maxHttpConnections(int maxConnections) Sets the maximum number of concurrent HTTP connections the client can open.maxMessageSize(int maxSize) A custom maxMessageSize allows the client to receive larger or smaller responses from Camunda.maxMetadataSize(int maxSize) A custom maxMetadataSize allows the client to receive larger or smaller response headers from Camunda.numJobWorkerExecutionThreads(int numThreads) overrideAuthority(String authority) Overrides the authority used with TLS virtual hosting.physicalTenantId(String physicalTenantId) preferRestOverGrpc(boolean preferRestOverGrpc) If true, will prefer to use REST over gRPC for calls which can be done over both REST and gRPC.prefixPhysicalTenantPath(boolean prefixPhysicalTenantPath) Controls whether the client prefixes the REST base path with/physical-tenants/<id>when aphysical tenant idis set (defaulttrue).restAddress(URI restAddress) useClientSideLoadBalancing(boolean useClientSideLoadBalancing) If enabled, the client will use DNS-based name resolution and balance across all addresses.useDefaultRetryPolicy(boolean useDefaultRetryPolicy) If enabled, the client will make use of the default retry policy defined.withChainHandlers(org.apache.hc.client5.http.async.AsyncExecChainHandler... chainHandler) Custom implementations of the Apache HttpClientAsyncExecChainHandlermiddleware API.withConfiguration(CamundaClientConfiguration configuration) Sets the configuration from aCamundaClientConfigurationobject.withInterceptors(io.grpc.ClientInterceptor... interceptor) Custom implementations of the gRPCClientInterceptormiddleware API.withJsonMapper(JsonMapper jsonMapper) withProperties(Properties properties) Sets all the properties from aPropertiesobject.
-
Method Details
-
withProperties
Sets all the properties from aPropertiesobject. Can be used to configure the client from a properties file.See
ClientPropertiesfor valid property names. -
withConfiguration
Sets the configuration from aCamundaClientConfigurationobject. Can be used to configure a client from a base configuration. -
applyEnvironmentVariableOverrides
Allows to disable the mechanism to override some properties by ENVIRONMENT VARIABLES. This is useful if a client shall be constructed for test cases or in an environment that wants to fully control properties (like Spring Boot).The default value is
true. -
restAddress
- Parameters:
restAddress- the REST API address of a gateway that the client can connect to. The address must be an absolute URL, including the scheme.The default value is
https://0.0.0.0:8080.
-
grpcAddress
- Parameters:
grpcAddress- the gRPC address of a gateway that the client can connect to. The address must be an absolute URL, including the scheme.The default value is
https://0.0.0.0:26500.
-
defaultTenantId
- Parameters:
tenantId- the tenant identifier which is used for tenant-aware commands when no tenant identifier is set. The default value isCommandWithTenantStep.DEFAULT_TENANT_IDENTIFIER.
-
physicalTenantId
- Parameters:
physicalTenantId- the physical tenant identifier sent as theCamunda-Physical-TenantgRPC metadata header on every outgoing call. Whennullthe header is omitted and the gateway applies its own default.
-
prefixPhysicalTenantPath
Controls whether the client prefixes the REST base path with/physical-tenants/<id>when aphysical tenant idis set (defaulttrue). Set tofalseto use the configured REST address verbatim — e.g. when a reverse proxy or a custom path layout already routes to the physical tenant. Has no effect on the gRPCCamunda-Physical-Tenantheader, which is always sent when a physical tenant id is set.- Parameters:
prefixPhysicalTenantPath- whether to auto-prefix the REST base path per physical tenant
-
defaultJobWorkerTenantIds
- Parameters:
tenantIds- the tenant identifiers which are used for job-activation commands when no tenant identifiers are set. The default value contains onlyCommandWithTenantStep.DEFAULT_TENANT_IDENTIFIER.
-
defaultJobWorkerTenantFilter
The behavior to adopt when filtering jobs during activation by a given worker. SeeTenantFilterfor possible values. The default value isTenantFilter.PROVIDED.- Parameters:
TenantFilter- the default filter to use for all workers
-
defaultJobWorkerMaxJobsActive
- Parameters:
maxJobsActive- Default value forJobWorkerBuilderStep1.JobWorkerBuilderStep3.maxJobsActive(int). Default value is 32.
-
numJobWorkerExecutionThreads
- Parameters:
numThreads- The number of threads for invocation of job workers. Default value is 1. Setting this value to 0 causes the client to reuse the scheduled executor for job handling (backward compatibility behavior).
-
jobWorkerExecutor
Deprecated.Identical behavior asjobWorkerExecutor(ScheduledExecutorService,boolean), replaced in favor of more fine-grained configuration of job worker executors. -
jobWorkerExecutor
@Deprecated CamundaClientBuilder jobWorkerExecutor(ScheduledExecutorService executor, boolean takeOwnership) Deprecated.Identical behavior asjobWorkerSchedulingExecutor(ScheduledExecutorService,boolean). Replaced in favor of more fine-grained configuration of job worker executors. -
jobWorkerSchedulingExecutor
Identical behavior asjobWorkerSchedulingExecutor(ScheduledExecutorService,boolean), but taking ownership of the executor by default. This means the given executor is closed when the client is closed.- Parameters:
executor- an executor service to use for scheduling job worker tasks- See Also:
-
jobWorkerSchedulingExecutor
CamundaClientBuilder jobWorkerSchedulingExecutor(ScheduledExecutorService executor, boolean takeOwnership) Allows passing a custom scheduled executor service that will be used for scheduling job worker tasks such as polling for new jobs.Note that job handling (i.e. executing the
JobHandler) is done on a separate executor configured viajobHandlingExecutor(ExecutorService, boolean).If no job handling executor is provided, this scheduling executor will also be used for job handling. If no executor is provided here, a default scheduled executor will be created.
- Parameters:
executor- an executor service to use for scheduling job worker taskstakeOwnership- if true, the executor will be closed when the client is closed otherwise, it's up to the caller to manage its lifecycle- See Also:
-
jobHandlingExecutor
Identical behavior asjobHandlingExecutor(ExecutorService,boolean), but taking ownership of the executor by default. This means the given executor is closed when the client is closed.- Parameters:
executor- an executor service to use for handling jobs- See Also:
-
jobHandlingExecutor
Allows passing a custom executor service that will be used for handling jobs (i.e. executing theJobHandler). This executor is separate from the scheduling executor configured viajobWorkerSchedulingExecutor(ScheduledExecutorService, boolean).If no executor is provided here, the scheduling executor will also be used for job handling.
When non-null, this setting override
numJobWorkerExecutionThreads(int).- Parameters:
executor- an executor service to use for handling jobstakeOwnership- if true, the executor will be closed when the client is closed otherwise, it's up to the caller to manage its lifecycle
-
defaultJobWorkerName
The name of the worker which is used when none is set for a job worker. Default is 'default'. -
defaultJobTimeout
The timeout which is used when none is provided for a job worker. Default is 5 minutes. -
defaultJobPollInterval
The interval which a job worker is periodically polling for new jobs. Default is 100 milliseconds. -
defaultMessageTimeToLive
The time-to-live which is used when none is provided for a message. Default is 1 hour. -
defaultRequestTimeout
The request timeout used if not overridden by the command. Default is 10 seconds. -
defaultRequestTimeoutOffset
The request timeout client offset is used in commands where thedefaultRequestTimeout(Duration)is also passed to the server. This ensures that the client timeout does not occur before the server timeout.The client-side timeout for these commands is calculated as the sum of
defaultRequestTimeoutanddefaultRequestTimeoutOffset.Default is 1 second.
-
caCertificatePath
Path to a root CA certificate to be used instead of the certificate in the default default store. -
credentialsProvider
A customCredentialsProviderwhich will be used to apply authentication credentials to requests. -
keepAlive
Time interval between keep alive messages sent to the gateway. The default is 45 seconds. -
withInterceptors
Custom implementations of the gRPCClientInterceptormiddleware API. The interceptors will be applied to every gRPC call that the client makes. More details can be found at invalid input: '{@link <a href="https://grpc.io/docs/guides/interceptors/">grpc.io</a>'}. -
withChainHandlers
CamundaClientBuilder withChainHandlers(org.apache.hc.client5.http.async.AsyncExecChainHandler... chainHandler) Custom implementations of the Apache HttpClientAsyncExecChainHandlermiddleware API. The middleware implementations will be called on every REST API call that the client makes. -
withJsonMapper
-
overrideAuthority
Overrides the authority used with TLS virtual hosting. Specifically, to override hostname verification in the TLS handshake. It does not change what host is actually connected to.This method is intended for testing, but may safely be used outside of tests as an alternative to DNS overrides.
This setting does nothing if a plaintext connection is used.
- Parameters:
authority- The alternative authority to use, commonly in the formhostorhost:port
-
maxMessageSize
A custom maxMessageSize allows the client to receive larger or smaller responses from Camunda. Technically, it specifies the maxInboundMessageSize of the gRPC channel. The default is 5242880 = 5MB. -
maxMetadataSize
A custom maxMetadataSize allows the client to receive larger or smaller response headers from Camunda. Technically, it specifies the maxInboundMetadataSize of the gRPC channel. The default is 16384 = 16KB . -
defaultJobWorkerStreamEnabled
A custom streamEnabled allows the client to use job stream instead of job poll. The default value is set as enabled. -
useDefaultRetryPolicy
If enabled, the client will make use of the default retry policy defined. False by default.NOTE: the default retry policy is taken from the
gateway-service-config.jsonin theio.camunda:zeebe-gateway-protocol-implJAR. -
preferRestOverGrpc
If true, will prefer to use REST over gRPC for calls which can be done over both REST and gRPC. The default value istrue(REST is preferred).NOTE: job streaming is only supported via gRPC
- Parameters:
preferRestOverGrpc- if true, the client will use REST instead of gRPC whenever possible
-
useClientSideLoadBalancing
If enabled, the client will use DNS-based name resolution and balance across all addresses. This allows the client to distribute requests across multiple gateway instances resolved by DNS without requiring an external load balancer.Default is
false.- Parameters:
useClientSideLoadBalancing- if true, enables DNS resolution and randomized load balancing
-
maxHttpConnections
Sets the maximum number of concurrent HTTP connections the client can open. -
defaultJobWorkerExceptionHandler
A custom retryBackoffSupplier allows the client to determine the default retry backoff strategy that every job worker will apply unless configured otherwise. By default, a static retry backoff ofPT0Sis used.- Parameters:
jobExceptionHandler- the retry backoff supplier to retrieve the retry backoff for every fail job command- Returns:
- this builder for chaining
-
build
CamundaClient build()- Returns:
- a new
CamundaClientwith the provided configuration options.
-
jobWorkerSchedulingExecutor(ScheduledExecutorService, boolean)andjobHandlingExecutor(ExecutorService, boolean)instead