Class RestServiceInvoker
java.lang.Object
com.flowable.serviceregistry.engine.impl.invoker.rest.RestServiceInvoker
- All Implemented Interfaces:
ServiceInvoker
public class RestServiceInvoker extends java.lang.Object implements ServiceInvoker
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classRestServiceInvoker.TimeoutTask -
Field Summary
Fields Modifier and Type Field Description static java.lang.StringKEYprotected com.fasterxml.jackson.databind.ObjectMapperobjectMapperprotected ServiceRegistryEngineConfigurationserviceRegistryEngineConfigurationprotected java.util.Timertimer -
Constructor Summary
Constructors Constructor Description RestServiceInvoker(ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration, com.fasterxml.jackson.databind.ObjectMapper objectMapper) -
Method Summary
Modifier and Type Method Description protected voidaddHeader(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers, java.lang.String header)protected com.fasterxml.jackson.databind.JsonNodeapplyOutputPathIfApplicable(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode)protected com.fasterxml.jackson.databind.JsonNodeapplyOutputReductionIfApplicable(ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode)protected voidconfigureRequest(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, org.flowable.http.HttpRequest request, ServiceInvocationVariablesContainer variablesContainer)protected org.apache.http.impl.client.HttpClientBuildercreateHttpClientBuilder(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)protected java.lang.Stringdecode(java.lang.String string)protected java.net.URIensureUrlIsEncodedAndConvertToUri(java.net.URL url)org.flowable.http.HttpResponseexecute(org.flowable.http.HttpRequest request, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)protected java.lang.StringgetBody(ServiceOperation serviceOperation, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, ServiceInvocationVariablesContainer serviceInvocationVariablesContainer)protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String>getHeaders(com.fasterxml.jackson.databind.JsonNode config, java.lang.String serviceDefinitionKey, java.lang.String serviceOperationKey)protected java.lang.StringgetHeadersAsString(org.apache.http.Header[] headers)protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String>getHeadersFromGlobalProperties(java.lang.String globalPropKey)protected java.lang.StringgetUrl(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)ServiceInvocationResponseinvoke(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)protected booleanisJsonContentType(org.flowable.http.HttpResponse httpResponse)protected booleanlookupBooleanProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, boolean defaultValue)protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String>lookupHeaders(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)protected intlookupIntegerProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, int defaultValue)protected java.lang.StringlookupStringProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, java.lang.String defaultValue)org.flowable.http.HttpResponseperform(org.apache.http.impl.client.CloseableHttpClient client, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context, org.flowable.http.HttpRequest httpRequest)protected voidprocessInputParameter(ServiceInvocationVariablesContainer serviceInvocationVariablesContainer, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, com.fasterxml.jackson.databind.node.ObjectNode bodyJson, ServiceInputParameter inputParameter)protected voidsetConfig(org.apache.http.client.methods.HttpRequestBase base, org.flowable.http.HttpRequest requestInfo, int socketTimeout, int connectTimeout, int connectionRequestTimeout)protected voidsetHeaders(org.apache.http.HttpMessage base, java.lang.String headers)protected voidsetRequestEntity(org.flowable.http.HttpRequest requestInfo, org.apache.http.client.methods.HttpEntityEnclosingRequestBase requestBase)protected java.lang.StringtoHeadersString(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers)protected voidvalidate(org.flowable.http.HttpRequest request)
-
Field Details
-
KEY
public static final java.lang.String KEY- See Also:
- Constant Field Values
-
serviceRegistryEngineConfiguration
-
objectMapper
protected com.fasterxml.jackson.databind.ObjectMapper objectMapper -
timer
protected final java.util.Timer timer
-
-
Constructor Details
-
RestServiceInvoker
public RestServiceInvoker(ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
-
Method Details
-
invoke
public ServiceInvocationResponse invoke(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)- Specified by:
invokein interfaceServiceInvoker
-
configureRequest
protected void configureRequest(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, org.flowable.http.HttpRequest request, ServiceInvocationVariablesContainer variablesContainer) -
getUrl
protected java.lang.String getUrl(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation) -
getBody
protected java.lang.String getBody(ServiceOperation serviceOperation, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, ServiceInvocationVariablesContainer serviceInvocationVariablesContainer) -
processInputParameter
protected void processInputParameter(ServiceInvocationVariablesContainer serviceInvocationVariablesContainer, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, com.fasterxml.jackson.databind.node.ObjectNode bodyJson, ServiceInputParameter inputParameter) -
lookupStringProperty
protected java.lang.String lookupStringProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, java.lang.String defaultValue) -
toHeadersString
protected java.lang.String toHeadersString(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers) -
lookupHeaders
protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> lookupHeaders(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation) -
getHeadersFromGlobalProperties
protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> getHeadersFromGlobalProperties(java.lang.String globalPropKey) -
getHeaders
protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> getHeaders(com.fasterxml.jackson.databind.JsonNode config, java.lang.String serviceDefinitionKey, java.lang.String serviceOperationKey) -
addHeader
protected void addHeader(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers, java.lang.String header) -
lookupIntegerProperty
protected int lookupIntegerProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, int defaultValue) -
lookupBooleanProperty
protected boolean lookupBooleanProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, boolean defaultValue) -
applyOutputPathIfApplicable
protected com.fasterxml.jackson.databind.JsonNode applyOutputPathIfApplicable(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode) -
applyOutputReductionIfApplicable
protected com.fasterxml.jackson.databind.JsonNode applyOutputReductionIfApplicable(ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode) -
execute
public org.flowable.http.HttpResponse execute(org.flowable.http.HttpRequest request, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context) -
createHttpClientBuilder
protected org.apache.http.impl.client.HttpClientBuilder createHttpClientBuilder(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context) -
validate
protected void validate(org.flowable.http.HttpRequest request) -
perform
public org.flowable.http.HttpResponse perform(org.apache.http.impl.client.CloseableHttpClient client, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context, org.flowable.http.HttpRequest httpRequest) -
setRequestEntity
protected void setRequestEntity(org.flowable.http.HttpRequest requestInfo, org.apache.http.client.methods.HttpEntityEnclosingRequestBase requestBase) throws java.io.UnsupportedEncodingException- Throws:
java.io.UnsupportedEncodingException
-
setConfig
protected void setConfig(org.apache.http.client.methods.HttpRequestBase base, org.flowable.http.HttpRequest requestInfo, int socketTimeout, int connectTimeout, int connectionRequestTimeout) -
getHeadersAsString
protected java.lang.String getHeadersAsString(org.apache.http.Header[] headers) -
setHeaders
protected void setHeaders(org.apache.http.HttpMessage base, java.lang.String headers) throws java.io.IOException- Throws:
java.io.IOException
-
ensureUrlIsEncodedAndConvertToUri
protected java.net.URI ensureUrlIsEncodedAndConvertToUri(java.net.URL url) throws java.net.URISyntaxException- Throws:
java.net.URISyntaxException
-
decode
protected java.lang.String decode(java.lang.String string) -
isJsonContentType
protected boolean isJsonContentType(org.flowable.http.HttpResponse httpResponse)
-