Closes gh-972
Federation JVM v5 is now using `graphql-java` v22 which caused following breaking changes in behavior
- Apollo `CacheControlInstrumentation` - was using old deprecated instrumentation methods so old version will not work with latest `spring-graphql` version
- there was a breaking change in the schema printing behavior of `@deprecated` information - previously it was always included regardless whether printed schema was filtering `@deprecated` directive definition. This is an issue for folks relying on self-managed Federation that uses `_service { sdl }` endpoint to obtain subgraph schemas as the supergraph schema would no longer include any deprecation information.
The failure was in GraphQlWebSocketHandlerTests for WebMvc.
the subscriptionExists test checks that a second subscription with
same id will close the connection with 4409. It also checks that
2 messages have arrived (connection_init) and one message from the
first subscription. However, since message handling as async,
handling of the two subscriptions is concurrent, and the connection
may be closed before the first subscription is able to send.
This commit adjusts the message checks to be more lenient and
accept between 1 and 2 messages.
Although not necessary from compiler perspective, visibility modifiers
in private classes intentional. Although not enforced, it helps to
make clarify the internal API.
The change updates the registration of explicit mappings from
any registered ClassNameTypeResolver's.
1. Check if there are any explicit mappings
2. Check all TypeResolver's
Also, change factory method to make it more clear that all it
needs from a ClassNameTypeResolver are the explicit mappings.
Mostly it worked already due to the use of
CoroutinesUtils.invokeSuspendingFunction, except for a couple of
issues with BatchMapping detection on startup.
Closes gh-954
Since the introduction of `@EntityMapping` support on controller
handlers, we need to support such variants for the GraalVM Native case.
This commit registers the relevant hints for runtime reflection support
with GraalVM Native.
Closes gh-928
This commit adds two new methods on the `WebSocketGraphQlTester` builder
to configure `GraphQlClientInterceptor` instances on the client.
For now, this is only accessible on the WebSocket tester but could be
promoted to a higher level builder in the future.
Closes gh-823