This updates REST Docs to test against Framework's latest 5.1
snapshot. Due to a bug in the behaviour of HttpHeaders' key set [1],
HeaderRemovingOperationPreprocessor has been updated to no longer use
it when removing headers from a request or response prior to it being
documented.
[1] https://github.com/spring-projects/spring-framework/issues/22821
Previously, RestDocumenationExtension would attempt parameter resolution
for any use RestDocumentationContextProvider. Due to the provider
being method-scoped, this could lead to a NullPointerException when
it was resolved in the context of a class.
This commit updates RestDocumentationExtension so that it only supports
parameter resolution for RestDocumentationContextProvider in the context
of a test method.
Closes gh-538
Previously, missing field detection worked correctly for paths
containing a single array, but if the path contained multiple arrays
the extracted value would be a list containing a single empty list.
In this case the field would not be considered missing when, in fact
it should have been.
This commit updates the missing field detection logic to recursively
examine the extracted value and, when it's a collection, the values
that it contains. As a result, a field will be considered to be
missing if it isn't present, if it's an empty collection, or if it's
a collection that only contains empty collections or, to any depth,
collections of empty collections.
Closes gh-519
Previously, FieldDoesNotExistException was caught when extracting
a field to determine whether or not it is missing (absent or an
empty collection). The handling is redundant due to an earlier call
to hasField so this commit removes it.
Closes gh-525