This commit configures the Java compiler to break the build in case of
the following warnings:
* Calling deprecated code
* Use of unchecked and raw types
* Incorrect use of varargs
Closes gh-1537
This commit updates WsConfigurer to get a callback with the list of
default method argument resolvers and return value handlers. Previously,
the callback only allowed to add custom instances and these were added
after the defaults.
Closes gh-1080
This commit improves AbstractEndpointExceptionResolver to only invoke
the logException method for an exception that has been resolved. To
help with chaining them, a CompositeEndpointExceptionResolver has been
introduced. If no resolvers were able to resolve the exception, the
last instance will then log the exception.
Closes gh-736
Previously, HttpComponents5MessageSender can be configured to use both
a custom HttpClient or configure one using a number of convenient
properties. This setup creates an odd arrangement where calling those
convenient methods once an HttpClient is set throws an exception as
the implementation supports one or the other.
This commit moves the first use case in a simple implementation that
only accepts a custom HttpClient or the state of
HttpComponents5ClientFactory for convenience and discoverability.
Specifying an HttpComponents5MessageSender is deprecated as a result.
Closes gh-1519
This commit reviews how afterCompletion is invoked. First of all, any
exception thrown by an interceptor does not bubble up the stack to give
a chance for other interceptors to clean things up.
Then, rather than calling afterCompletion before handling a fault, an
error, or the response body, it is invoked after. This gives a chance
to any exception to break the flow and handle the completion in the
catch block.
Tests have been added to ensure that the callback is only invoked once.
Closes gh-1054
Previously, only SmartEndpointInterceptor instances declared as bean
were considered by AbstractEndpointMapping. Given that it extends from
EndpointInterceptor, this meant that adding them using the regular
setEndpointInterceptor mean they were not considered as such, that is
added irrespective of their `shouldIntercept` contract.
This commit considers both list as holding SmartEndpointInterceptor
instances. As a result, these can now be added using regular hook
points, such as WsConfigurer.
Closes gh-1130