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
All Methods Instance Methods Concrete Methods 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 booleanasBoolean(java.lang.Object object)protected intasInt(java.lang.Object object)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 org.springframework.util.MultiValueMap<java.lang.String,java.lang.String>resolveHeaderExpressions(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, ServiceInvocationVariablesContainer variablesContainer)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 Detail
-
KEY
public static final java.lang.String KEY
- See Also:
- Constant Field Values
-
serviceRegistryEngineConfiguration
protected ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration
-
objectMapper
protected com.fasterxml.jackson.databind.ObjectMapper objectMapper
-
timer
protected final java.util.Timer timer
-
-
Constructor Detail
-
RestServiceInvoker
public RestServiceInvoker(ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
-
Method Detail
-
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)
-
resolveHeaderExpressions
protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> resolveHeaderExpressions(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, ServiceInvocationVariablesContainer variablesContainer)
-
lookupIntegerProperty
protected int lookupIntegerProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, int defaultValue)
-
asInt
protected int asInt(java.lang.Object object)
-
lookupBooleanProperty
protected boolean lookupBooleanProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, boolean defaultValue)
-
asBoolean
protected boolean asBoolean(java.lang.Object object)
-
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)
-
-