Prior to this commit, gh-676 fixed the local and global context
inheritance in the `ContextDataFetcherDecorator` with a workaround.
This commit undoes this workaround and uses the new Context Propagation
API for this, effectively raising the requirement for version 1.0.3 and
removing all deprecated APIs in the meantime.
Closes gh-688
`v4.4.0` adds support for Federation v2.6 and v2.7. This version also includes performance fix to federating tracing instrumentation (`ftv1`) that skips unnecessary computations.
GraphQlArgumentBinder allows external determination of the raw value to use,
and ArgumentMethodArgumentResolver allows customizing the invocation of
the binder.
See gh-864
Builder implementations are intended to be package private and exposed
through interface methods, but the abstract class needs to be public
for alternative implementations.
Prior to this commit, return types declared by controller handlers that
were wrapped with `Optional` were not considered during the schema
analysis and would result in false positives in the schema inspection
report, stating that relevant fields were unmapped.
This is especially relevant for controller handlers returning optional
values from Spring Data repositories.
This commit ensures that `java.util.Optional` types are unwrapped and
that wrapped types are considered during the analysis.
Fixes gh-875
Prior to this commit, the `ConnectionFieldTypeVisitor` would return
`TraversalControl.ABORT` when a field with a parent Subscription type is
encountered. This is done because this visitor should not consider
fields under Subscription types as they are not candidates for
pagination. This would also completely abort the visiting of all fields
under Subscription types, for all other visitors. As a result, this
prevents the decoration of data fetchers by the `ContextTypeVisitor` and
leads to missing context information (security or observability).
This only applies to 21.x GraphQL Java versions, as a bug was hiding
this behavior in previous versions.
This commit ensures that the `ConnectionFieldTypeVisitor` ignores fields
located under Subscription operations but always return
`TraversalControl.CONTINUE` to not completely ignore this part of the
schema.
Fixes gh-861