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 java.lang.Object implements ExternalTaskClientBuilder
- Author:
- Tassilo Weidner
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.LongasyncResponseTimeoutprotected BackoffStrategybackoffStrategyprotected java.lang.StringbaseUrlprotected java.lang.StringdateFormatprotected java.lang.StringdefaultSerializationFormatprotected EngineClientengineClientprotected java.util.List<ClientRequestInterceptor>interceptorsprotected booleanisAutoFetchingEnabledprotected booleanisBackoffStrategyDisabledprotected longlockDurationprotected static ExternalTaskClientLoggerLOGprotected intmaxTasksprotected com.fasterxml.jackson.databind.ObjectMapperobjectMapperprotected TopicSubscriptionManagertopicSubscriptionManagerprotected TypedValuestypedValuesprotected booleanusePriorityprotected ValueMappersvalueMappersprotected java.lang.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(java.util.Map<java.lang.String,DataFormat> dataFormats, DataFormatConfigurator configurator)protected voidapplyConfigurators(java.util.Map<java.lang.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(java.lang.String baseUrl)Base url of the Camunda BPM Platform REST API.ExternalTaskClientbuild()Bootstraps the Camunda clientjava.lang.StringcheckHostname()protected voidcheckInterceptors()ExternalTaskClientBuilderdateFormat(java.lang.String dateFormat)Specifies the date format to de-/serialize date variables.ExternalTaskClientBuilderdefaultSerializationFormat(java.lang.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 java.lang.LonggetAsyncResponseTimeout()protected BackoffStrategygetBackoffStrategy()java.lang.StringgetBaseUrl()java.lang.StringgetDateFormat()java.lang.StringgetDefaultSerializationFormat()EngineClientgetEngineClient()java.lang.StringgetHostname()protected java.util.List<ClientRequestInterceptor>getInterceptors()protected longgetLockDuration()protected intgetMaxTasks()com.fasterxml.jackson.databind.ObjectMappergetObjectMapper()TypedValuesgetTypedValues()ValueMappersgetValueMappers()protected java.lang.StringgetWorkerId()protected voidinitBaseUrl()protected voidinitEngineClient()protected voidinitObjectMapper()protected voidinitTopicSubscriptionManager()protected voidinitVariableMappers()protected voidinitWorkerId()protected booleanisAutoFetchingEnabled()ExternalTaskClientBuilderlockDuration(long lockDuration)protected voidlookupCustomDataFormats(java.util.Map<java.lang.String,DataFormat> dataFormats)protected java.util.Map<java.lang.String,DataFormat>lookupDataFormats()protected voidlookupProvider(java.util.Map<java.lang.String,DataFormat> dataFormats, DataFormatProvider provider)ExternalTaskClientBuildermaxTasks(int maxTasks)Specifies the maximum amount of tasks that can be fetched within one request.protected java.lang.StringsanitizeUrl(java.lang.String url)ExternalTaskClientBuilderusePriority(boolean usePriority)Specifies whether tasks should be fetched based on their priority or arbitrarily.ExternalTaskClientBuilderworkerId(java.lang.String workerId)A custom worker id the Workflow Engine is aware of.
-
-
-
Field Detail
-
LOG
protected static final ExternalTaskClientLogger LOG
-
baseUrl
protected java.lang.String baseUrl
-
workerId
protected java.lang.String workerId
-
maxTasks
protected int maxTasks
-
usePriority
protected boolean usePriority
-
asyncResponseTimeout
protected java.lang.Long asyncResponseTimeout
-
lockDuration
protected long lockDuration
-
defaultSerializationFormat
protected java.lang.String defaultSerializationFormat
-
dateFormat
protected java.lang.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 java.util.List<ClientRequestInterceptor> interceptors
-
isAutoFetchingEnabled
protected boolean isAutoFetchingEnabled
-
backoffStrategy
protected BackoffStrategy backoffStrategy
-
isBackoffStrategyDisabled
protected boolean isBackoffStrategyDisabled
-
-
Method Detail
-
baseUrl
public ExternalTaskClientBuilder baseUrl(java.lang.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(java.lang.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(java.lang.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(java.lang.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()
-
sanitizeUrl
protected java.lang.String sanitizeUrl(java.lang.String url)
-
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 java.util.Map<java.lang.String,DataFormat> lookupDataFormats()
-
lookupCustomDataFormats
protected void lookupCustomDataFormats(java.util.Map<java.lang.String,DataFormat> dataFormats)
-
lookupProvider
protected void lookupProvider(java.util.Map<java.lang.String,DataFormat> dataFormats, DataFormatProvider provider)
-
applyConfigurators
protected void applyConfigurators(java.util.Map<java.lang.String,DataFormat> dataFormats)
-
applyConfigurator
protected void applyConfigurator(java.util.Map<java.lang.String,DataFormat> dataFormats, DataFormatConfigurator configurator)
-
checkHostname
public java.lang.String checkHostname()
-
getHostname
public java.lang.String getHostname() throws java.net.UnknownHostException- Throws:
java.net.UnknownHostException
-
getBaseUrl
public java.lang.String getBaseUrl()
-
getWorkerId
protected java.lang.String getWorkerId()
-
getInterceptors
protected java.util.List<ClientRequestInterceptor> getInterceptors()
-
getMaxTasks
protected int getMaxTasks()
-
getAsyncResponseTimeout
protected java.lang.Long getAsyncResponseTimeout()
-
getLockDuration
protected long getLockDuration()
-
isAutoFetchingEnabled
protected boolean isAutoFetchingEnabled()
-
getBackoffStrategy
protected BackoffStrategy getBackoffStrategy()
-
getDefaultSerializationFormat
public java.lang.String getDefaultSerializationFormat()
-
getDateFormat
public java.lang.String getDateFormat()
-
getObjectMapper
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
-
getValueMappers
public ValueMappers getValueMappers()
-
getTypedValues
public TypedValues getTypedValues()
-
getEngineClient
public EngineClient getEngineClient()
-
-