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 class
RestServiceInvoker.TimeoutTask
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
KEY
protected com.fasterxml.jackson.databind.ObjectMapper
objectMapper
protected ServiceRegistryEngineConfiguration
serviceRegistryEngineConfiguration
protected java.util.Timer
timer
-
Constructor Summary
Constructors Constructor Description RestServiceInvoker(ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
Method Summary
Modifier and Type Method Description protected void
addHeader(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers, java.lang.String header)
protected com.fasterxml.jackson.databind.JsonNode
applyOutputPathIfApplicable(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode)
protected com.fasterxml.jackson.databind.JsonNode
applyOutputReductionIfApplicable(ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode)
protected void
configureRequest(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, org.flowable.http.HttpRequest request, ServiceInvocationVariablesContainer variablesContainer)
protected org.apache.http.impl.client.HttpClientBuilder
createHttpClientBuilder(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)
protected java.lang.String
decode(java.lang.String string)
protected java.net.URI
ensureUrlIsEncodedAndConvertToUri(java.net.URL url)
org.flowable.http.HttpResponse
execute(org.flowable.http.HttpRequest request, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)
protected java.lang.String
getBody(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.String
getHeadersAsString(org.apache.http.Header[] headers)
protected org.springframework.util.MultiValueMap<java.lang.String,java.lang.String>
getHeadersFromGlobalProperties(java.lang.String globalPropKey)
protected java.lang.String
getUrl(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)
ServiceInvocationResponse
invoke(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)
protected boolean
isJsonContentType(org.flowable.http.HttpResponse httpResponse)
protected boolean
lookupBooleanProperty(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 int
lookupIntegerProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, int defaultValue)
protected java.lang.String
lookupStringProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, java.lang.String field, java.lang.String defaultValue)
org.flowable.http.HttpResponse
perform(org.apache.http.impl.client.CloseableHttpClient client, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context, org.flowable.http.HttpRequest httpRequest)
protected void
processInputParameter(ServiceInvocationVariablesContainer serviceInvocationVariablesContainer, org.flowable.common.engine.impl.el.ExpressionManager expressionManager, com.fasterxml.jackson.databind.node.ObjectNode bodyJson, ServiceInputParameter inputParameter)
protected void
setConfig(org.apache.http.client.methods.HttpRequestBase base, org.flowable.http.HttpRequest requestInfo, int socketTimeout, int connectTimeout, int connectionRequestTimeout)
protected void
setHeaders(org.apache.http.HttpMessage base, java.lang.String headers)
protected void
setRequestEntity(org.flowable.http.HttpRequest requestInfo, org.apache.http.client.methods.HttpEntityEnclosingRequestBase requestBase)
protected java.lang.String
toHeadersString(org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> headers)
protected void
validate(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:
invoke
in 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)
-