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
This commit harmonizes the behavior of HttpComponents5MessageSender to
reuse a provided HttpClient, be it provided via constructor or property.
Closes gh-1512
This commit restores support for Apache Axiom now that it supports
Jakarta. This commit tries to restore the code that was deleted as-is,
without reviewing the deprecations.
See gh-1454
This commit delegates the check of validating that a request needs to
be processed to the handler themselves. As a result,
MessageDispatcherServlet is no longer implementing getLastModified.
An advantage of this change is that the server now handles
"If-Not-Modified" request headers.
Closes gh-1470
This commit moves the classes from the o.s.ws.transport.http and
o.s.ws.transport.support packages from spring-ws-support to
spring-ws-core. It turns out these classes don't bring extra
dependencies, which make the move quite straightforward.
Closes gh-1202
This commit removes method that were deprecated quite some time ago
as part of the 2.0 line:
- `FaultAwareWebServiceConnection#setFault(boolean)`
- Commons HttpClient v3
- EhCache v2
Closes gh-1321
This deprecates the programming model of extending from base endpoint
class in favor of the `@Endpoint` programming model introduced in
Spring-WS 2.0.
This also removes any reference <sws:marshalling-endpoints/> and
<sws:xpath-endpoints/> that are no longer part of the XSD since 2.0
as well.
Closes gh-1487
This commit configures the build to use spring-javaformat and makes a
first pass to format the code of the project. As part of this, imports
have been optimized, and the license header has been harmonized.
Closes gh-1458
This commit reverts the test that has been introduced to validate the
change in fe43f88. This test requires Spring Boot to operate and we
cannot rely on that.
See gh-1435
Change endpoint mapping from BeanPostProcessor to SmartInitializingSingleton
Added Test and updated test.sh to invoke with separate profile.
Fixes#1435
* The clientFactory could be null, so this must be handled.
* AuthScope.ANY no longer exists, so we need a suitable value object to take its place.
* Polish documentation and javadocs to support the community.
Resolves#1357.