Package org.camunda.bpm.client.impl
Class ExternalTaskClientBuilderImpl
- java.lang.Object
-
- org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl
-
- All Implemented Interfaces:
ExternalTaskClientBuilder
public class ExternalTaskClientBuilderImpl extends Object implements ExternalTaskClientBuilder
- Author:
- Tassilo Weidner
-
-
Field Summary
Fields Modifier and Type Field Description protected LongasyncResponseTimeoutprotected BackoffStrategybackoffStrategyprotected StringbaseUrlprotected StringdateFormatprotected StringdefaultSerializationFormatprotected EngineClientengineClientprotected List<ClientRequestInterceptor>interceptorsprotected booleanisAutoFetchingEnabledprotected booleanisBackoffStrategyDisabledprotected longlockDurationprotected static ExternalTaskClientLoggerLOGprotected intmaxTasksprotected com.fasterxml.jackson.databind.ObjectMapperobjectMapperprotected TopicSubscriptionManagertopicSubscriptionManagerprotected TypedValuestypedValuesprotected booleanusePriorityprotected ValueMappersvalueMappersprotected StringworkerId
-
Constructor Summary
Constructors Constructor Description ExternalTaskClientBuilderImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ExternalTaskClientBuilderaddInterceptor(ClientRequestInterceptor interceptor)Adds an interceptor to change a request before it is sent to the http server.protected voidapplyConfigurator(Map<String,DataFormat> dataFormats, DataFormatConfigurator configurator)protected voidapplyConfigurators(Map<String,DataFormat> dataFormats)ExternalTaskClientBuilderasyncResponseTimeout(long asyncResponseTimeout)Asynchronous response (long polling) is enabled if a timeout is given.ExternalTaskClientBuilderbackoffStrategy(BackoffStrategy backoffStrategy)Adds a custom strategy to the client for defining the org.camunda.bpm.client.backoff between two requests.ExternalTaskClientBuilderbaseUrl(String baseUrl)Base url of the Camunda BPM Platform REST API.ExternalTaskClientbuild()Bootstraps the Camunda clientStringcheckHostname()protected voidcheckInterceptors()ExternalTaskClientBuilderdateFormat(String dateFormat)Specifies the date format to de-/serialize date variables.ExternalTaskClientBuilderdefaultSerializationFormat(String defaultSerializationFormat)Specifies the serialization format that is used to serialize objects when no specific format is requested.ExternalTaskClientBuilderdisableAutoFetching()Disables immediate fetching for external tasks after callingExternalTaskClientBuilder.build()to bootstrap the client.ExternalTaskClientBuilderdisableBackoffStrategy()Disables the client-side backoff strategy.protected LonggetAsyncResponseTimeout()protected BackoffStrategygetBackoffStrategy()StringgetBaseUrl()StringgetDateFormat()StringgetDefaultSerializationFormat()EngineClientgetEngineClient()StringgetHostname()protected List<ClientRequestInterceptor>getInterceptors()protected longgetLockDuration()protected intgetMaxTasks()com.fasterxml.jackson.databind.ObjectMappergetObjectMapper()TypedValuesgetTypedValues()ValueMappersgetValueMappers()protected StringgetWorkerId()protected voidinitBaseUrl()protected voidinitEngineClient()protected voidinitObjectMapper()protected voidinitTopicSubscriptionManager()protected voidinitVariableMappers()protected voidinitWorkerId()protected booleanisAutoFetchingEnabled()ExternalTaskClientBuilderlockDuration(long lockDuration)protected voidlookupCustomDataFormats(Map<String,DataFormat> dataFormats)protected Map<String,DataFormat>lookupDataFormats()protected voidlookupProvider(Map<String,DataFormat> dataFormats, DataFormatProvider provider)ExternalTaskClientBuildermaxTasks(int maxTasks)Specifies the maximum amount of tasks that can be fetched within one request.protected StringsanitizeUrl(String url)ExternalTaskClientBuilderusePriority(boolean usePriority)Specifies whether tasks should be fetched based on their priority or arbitrarily.ExternalTaskClientBuilderworkerId(String workerId)A custom worker id the Workflow Engine is aware of.
-
-
-
Field Detail
-
LOG
protected static final ExternalTaskClientLogger LOG
-
baseUrl
protected String baseUrl
-
workerId
protected String workerId
-
maxTasks
protected int maxTasks
-
usePriority
protected boolean usePriority
-
asyncResponseTimeout
protected Long asyncResponseTimeout
-
lockDuration
protected long lockDuration
-
defaultSerializationFormat
protected String defaultSerializationFormat
-
dateFormat
protected String dateFormat
-
objectMapper
protected com.fasterxml.jackson.databind.ObjectMapper objectMapper
-
valueMappers
protected ValueMappers valueMappers
-
typedValues
protected TypedValues typedValues
-
engineClient
protected EngineClient engineClient
-
topicSubscriptionManager
protected TopicSubscriptionManager topicSubscriptionManager
-
interceptors
protected List<ClientRequestInterceptor> interceptors
-
isAutoFetchingEnabled
protected boolean isAutoFetchingEnabled
-
backoffStrategy
protected BackoffStrategy backoffStrategy
-
isBackoffStrategyDisabled
protected boolean isBackoffStrategyDisabled
-
-
Method Detail
-
baseUrl
public ExternalTaskClientBuilder baseUrl(String baseUrl)
Description copied from interface:ExternalTaskClientBuilderBase url of the Camunda BPM Platform REST API. This information is mandatory.- Specified by:
baseUrlin interfaceExternalTaskClientBuilder- Parameters:
baseUrl- of the Camunda BPM Platform REST API- Returns:
- the builder
-
workerId
public ExternalTaskClientBuilder workerId(String workerId)
Description copied from interface:ExternalTaskClientBuilderA custom worker id the Workflow Engine is aware of. This information is optional. Note: make sure to choose a unique worker id If not given or null, a worker id is generated automatically which consists of the hostname as well as a random and unique 128 bit string (UUID).- Specified by:
workerIdin interfaceExternalTaskClientBuilder- Parameters:
workerId- the Workflow Engine is aware of- Returns:
- the builder
-
addInterceptor
public ExternalTaskClientBuilder addInterceptor(ClientRequestInterceptor interceptor)
Description copied from interface:ExternalTaskClientBuilderAdds an interceptor to change a request before it is sent to the http server. This information is optional.- Specified by:
addInterceptorin interfaceExternalTaskClientBuilder- Parameters:
interceptor- which changes the request- Returns:
- the builder
-
maxTasks
public ExternalTaskClientBuilder maxTasks(int maxTasks)
Description copied from interface:ExternalTaskClientBuilderSpecifies the maximum amount of tasks that can be fetched within one request. This information is optional. Default is 10.- Specified by:
maxTasksin interfaceExternalTaskClientBuilder- Parameters:
maxTasks- which are supposed to be fetched within one request- Returns:
- the builder
-
usePriority
public ExternalTaskClientBuilder usePriority(boolean usePriority)
Description copied from interface:ExternalTaskClientBuilderSpecifies whether tasks should be fetched based on their priority or arbitrarily. This information is optional. Default istrue.- Specified by:
usePriorityin interfaceExternalTaskClientBuilder- Parameters:
usePriority- when fetching and locking tasks- Returns:
- the builder
-
asyncResponseTimeout
public ExternalTaskClientBuilder asyncResponseTimeout(long asyncResponseTimeout)
Description copied from interface:ExternalTaskClientBuilderAsynchronous response (long polling) is enabled if a timeout is given. Specifies the maximum waiting time for the response of fetched and locked external tasks. The response is performed immediately, if external tasks are available in the moment of the request. This information is optional. Unless a timeout is given, fetch and lock responses are synchronous.- Specified by:
asyncResponseTimeoutin interfaceExternalTaskClientBuilder- Parameters:
asyncResponseTimeout- of fetched and locked external tasks in milliseconds- Returns:
- the builder
-
lockDuration
public ExternalTaskClientBuilder lockDuration(long lockDuration)
- Specified by:
lockDurationin interfaceExternalTaskClientBuilder- Parameters:
lockDuration-- in milliseconds to lock the external tasks
- must be greater than zero
- the default lock duration is 20 seconds (20,000 milliseconds)
- is overridden by the lock duration configured on a topic subscription
- Returns:
- the builder
-
disableAutoFetching
public ExternalTaskClientBuilder disableAutoFetching()
Description copied from interface:ExternalTaskClientBuilderDisables immediate fetching for external tasks after callingExternalTaskClientBuilder.build()to bootstrap the client. To start fetchingExternalTaskClient.start()must be called.- Specified by:
disableAutoFetchingin interfaceExternalTaskClientBuilder- Returns:
- the builder
-
backoffStrategy
public ExternalTaskClientBuilder backoffStrategy(BackoffStrategy backoffStrategy)
Description copied from interface:ExternalTaskClientBuilderAdds a custom strategy to the client for defining the org.camunda.bpm.client.backoff between two requests. This information is optional. By defaultExponentialBackoffStrategyis applied.- Specified by:
backoffStrategyin interfaceExternalTaskClientBuilder- Parameters:
backoffStrategy- which realizes a custom org.camunda.bpm.client.backoff strategy- Returns:
- the builder
-
disableBackoffStrategy
public ExternalTaskClientBuilder disableBackoffStrategy()
Description copied from interface:ExternalTaskClientBuilderDisables the client-side backoff strategy. On invocation, the configuration optionExternalTaskClientBuilder.backoffStrategy(org.camunda.bpm.client.backoff.BackoffStrategy)is ignored. NOTE: Please bear in mind that disabling the client-side backoff can lead to heavy load situations on engine side. To avoid this, please specify an appropriateExternalTaskClientBuilder.asyncResponseTimeout(long).- Specified by:
disableBackoffStrategyin interfaceExternalTaskClientBuilder- Returns:
- the builder
-
defaultSerializationFormat
public ExternalTaskClientBuilder defaultSerializationFormat(String defaultSerializationFormat)
Description copied from interface:ExternalTaskClientBuilderSpecifies the serialization format that is used to serialize objects when no specific format is requested. This option defaults to application/json.- Specified by:
defaultSerializationFormatin interfaceExternalTaskClientBuilder- Parameters:
defaultSerializationFormat- serialization format to be used- Returns:
- the builder
-
dateFormat
public ExternalTaskClientBuilder dateFormat(String dateFormat)
Description copied from interface:ExternalTaskClientBuilderSpecifies the date format to de-/serialize date variables.- Specified by:
dateFormatin interfaceExternalTaskClientBuilder- Parameters:
dateFormat- date format to be used- Returns:
- the builder
-
build
public ExternalTaskClient build()
Description copied from interface:ExternalTaskClientBuilderBootstraps the Camunda client- Specified by:
buildin interfaceExternalTaskClientBuilder- Returns:
- the builder
-
initBaseUrl
protected void initBaseUrl()
-
initWorkerId
protected void initWorkerId()
-
checkInterceptors
protected void checkInterceptors()
-
initObjectMapper
protected void initObjectMapper()
-
initVariableMappers
protected void initVariableMappers()
-
initEngineClient
protected void initEngineClient()
-
initTopicSubscriptionManager
protected void initTopicSubscriptionManager()
-
lookupDataFormats
protected Map<String,DataFormat> lookupDataFormats()
-
lookupCustomDataFormats
protected void lookupCustomDataFormats(Map<String,DataFormat> dataFormats)
-
lookupProvider
protected void lookupProvider(Map<String,DataFormat> dataFormats, DataFormatProvider provider)
-
applyConfigurators
protected void applyConfigurators(Map<String,DataFormat> dataFormats)
-
applyConfigurator
protected void applyConfigurator(Map<String,DataFormat> dataFormats, DataFormatConfigurator configurator)
-
checkHostname
public String checkHostname()
-
getHostname
public String getHostname() throws UnknownHostException
- Throws:
UnknownHostException
-
getBaseUrl
public String getBaseUrl()
-
getWorkerId
protected String getWorkerId()
-
getInterceptors
protected List<ClientRequestInterceptor> getInterceptors()
-
getMaxTasks
protected int getMaxTasks()
-
getAsyncResponseTimeout
protected Long getAsyncResponseTimeout()
-
getLockDuration
protected long getLockDuration()
-
isAutoFetchingEnabled
protected boolean isAutoFetchingEnabled()
-
getBackoffStrategy
protected BackoffStrategy getBackoffStrategy()
-
getDefaultSerializationFormat
public String getDefaultSerializationFormat()
-
getDateFormat
public String getDateFormat()
-
getObjectMapper
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
-
getValueMappers
public ValueMappers getValueMappers()
-
getTypedValues
public TypedValues getTypedValues()
-
getEngineClient
public EngineClient getEngineClient()
-
-