Fix complexity for DefaultHttpHeaderMapper (#2881)
* Fix complexity for DefaultHttpHeaderMapper * Deprecate `DefaultHttpHeaderMapper` constants which are fully Spring Web `HttpHeaders` constants * Introduce lowercase constants for `getHttpHeader()` switch * Reuse `HttpHeaders` API as much as possible * Simplify logic in some methods to break them to smaller methods * * Remove Java Streams from critical paths * Rework `setHttpHeader()` for `switch` * * Use `ObjectUtils.toObjectArray()` to simplify complexity * * Fix complexity in `setAccept()`, `setAcceptCharset()`, `setAllow()` & `setIfNoneMatch()` using newly extracted `valueToCollection()`
This commit is contained in:
committed by
Gary Russell
parent
2e2b49a22f
commit
cff67ccdb4
@@ -188,9 +188,7 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
* be returned as a payload of the reply Message.
|
||||
* To take advantage of the HttpMessageConverters
|
||||
* registered on this adapter, provide a different type).
|
||||
*
|
||||
* @param expectedResponseType The expected type.
|
||||
*
|
||||
* Also see {@link #setExpectedResponseTypeExpression(Expression)}
|
||||
*/
|
||||
public void setExpectedResponseType(Class<?> expectedResponseType) {
|
||||
@@ -221,7 +219,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
/**
|
||||
* Set the Map of URI variable expressions to evaluate against the outbound message
|
||||
* when replacing the variable placeholders in a URI template.
|
||||
*
|
||||
* @param uriVariableExpressions The URI variable expressions.
|
||||
*/
|
||||
public void setUriVariableExpressions(Map<String, Expression> uriVariableExpressions) {
|
||||
@@ -235,7 +232,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
* Set the {@link Expression} to evaluate against the outbound message; the expression
|
||||
* must evaluate to a Map of URI variable expressions to evaluate against the outbound message
|
||||
* when replacing the variable placeholders in a URI template.
|
||||
*
|
||||
* @param uriVariablesExpression The URI variables expression.
|
||||
*/
|
||||
public void setUriVariablesExpression(Expression uriVariablesExpression) {
|
||||
@@ -246,7 +242,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
* Set to true if you wish 'Set-Cookie' headers in responses to be
|
||||
* transferred as 'Cookie' headers in subsequent interactions for
|
||||
* a message.
|
||||
*
|
||||
* @param transferCookies the transferCookies to set.
|
||||
*/
|
||||
public void setTransferCookies(boolean transferCookies) {
|
||||
@@ -343,14 +338,14 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
private void doConvertSetCookie(Map<String, Object> headers) {
|
||||
String keyName = null;
|
||||
for (String key : headers.keySet()) {
|
||||
if (key.equalsIgnoreCase(DefaultHttpHeaderMapper.SET_COOKIE)) {
|
||||
if (key.equalsIgnoreCase(HttpHeaders.SET_COOKIE)) {
|
||||
keyName = key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (keyName != null) {
|
||||
Object cookies = headers.remove(keyName);
|
||||
headers.put(DefaultHttpHeaderMapper.COOKIE, cookies);
|
||||
headers.put(HttpHeaders.COOKIE, cookies);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Converted Set-Cookie header to Cookie for: "
|
||||
+ cookies);
|
||||
@@ -562,7 +557,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
.usingEvaluationContext(evaluationContextToUse)
|
||||
.withRoot(requestMessage)
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -61,11 +61,11 @@ import org.springframework.web.client.RestTemplate;
|
||||
* @since 2.0
|
||||
*/
|
||||
public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecutingMessageHandler {
|
||||
|
||||
private final RestTemplate restTemplate;
|
||||
|
||||
/**
|
||||
* Create a handler that will send requests to the provided URI.
|
||||
*
|
||||
* @param uri The URI.
|
||||
*/
|
||||
public HttpRequestExecutingMessageHandler(URI uri) {
|
||||
@@ -74,7 +74,6 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
|
||||
/**
|
||||
* Create a handler that will send requests to the provided URI.
|
||||
*
|
||||
* @param uri The URI.
|
||||
*/
|
||||
public HttpRequestExecutingMessageHandler(String uri) {
|
||||
@@ -83,7 +82,6 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
|
||||
/**
|
||||
* Create a handler that will send requests to the provided URI Expression.
|
||||
*
|
||||
* @param uriExpression The URI expression.
|
||||
*/
|
||||
public HttpRequestExecutingMessageHandler(Expression uriExpression) {
|
||||
@@ -142,9 +140,7 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
|
||||
/**
|
||||
* Set the {@link ClientHttpRequestFactory} for the underlying {@link RestTemplate}.
|
||||
*
|
||||
* @param requestFactory The request factory.
|
||||
*
|
||||
* @see RestTemplate#setRequestFactory(ClientHttpRequestFactory)
|
||||
*/
|
||||
public void setRequestFactory(ClientHttpRequestFactory requestFactory) {
|
||||
@@ -154,6 +150,7 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
@Override
|
||||
protected Object exchange(Supplier<URI> uriSupplier, HttpMethod httpMethod, HttpEntity<?> httpRequest,
|
||||
Object expectedResponseType, Message<?> requestMessage) {
|
||||
|
||||
URI uri = uriSupplier.get();
|
||||
ResponseEntity<?> httpResponse;
|
||||
try {
|
||||
@@ -162,14 +159,13 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
(ParameterizedTypeReference<?>) expectedResponseType);
|
||||
}
|
||||
else {
|
||||
httpResponse = this.restTemplate.exchange(uri, httpMethod, httpRequest,
|
||||
(Class<?>) expectedResponseType);
|
||||
httpResponse = this.restTemplate.exchange(uri, httpMethod, httpRequest, (Class<?>) expectedResponseType);
|
||||
}
|
||||
return getReply(httpResponse);
|
||||
}
|
||||
catch (RestClientException e) {
|
||||
throw new MessageHandlingException(requestMessage,
|
||||
"HTTP request execution failed for URI [" + uri + "]", e);
|
||||
throw new MessageHandlingException(requestMessage, "HTTP request execution failed for URI [" + uri + "]", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user