This commit aligns the behavior of retrieve with its Javadoc such that
any field error, including errors on nested fields, raises a
FieldAccessException
Closes gh-499
DataBinder is not a great fit to bind GraphQL arguments which
are essentially a (structured) map of maps and collections, rather
than a (flat) map of property values with JavaBean paths.
We already navigate recursively the GraphQL arguments map, which
corresponds to the target Object structure, creating values, so all
we have to do is check for matching bean properties at each level
and set them.
See gh-516
This commit ensures a single method is used to bind raw values,
whether those a top level argument value, or a value nested within a
collection or map.
See gh-449
Before this commit, we supported binding to a higher level object,
or a scalar, or a List of either, but not to a Map of either, which
requires similar support as what we have for a List, i.e. creating
the target Map and populating it in a recursive manner.
This commit adds that support.
Closes gh-449
Prior to this commit, metrics instrumentation was provided by Spring
Boot, using Micrometer metrics. The `Instrumentation` would publish two
timers and a counter, but would not support tracing.
This commit replaces the former with a dedicated support in Spring for
GraphQL directly. This uses the new `Observation` API from Micrometer
and publishes two observations:
* a request execution observation, with timing and tracing included
* a data fetching observation with the request execution as a parent
observation
Closes gh-501
This commit updates the following parts of the CI infrastructure:
* the base OS image
* the docker daemon version
* the JDK versions we're building against