Commit Graph

993 Commits

Author SHA1 Message Date
Brian Clozel
67109652a2 Rollback to Hibernate 6.1.x 2023-05-15 15:30:14 +02:00
Brian Clozel
6b968d3e5a Uprade optional dependencies
This commit upgrades to:

* Testcontainers 1.18.0
* MongoDB Driver 4.9.1
2023-05-15 15:27:51 +02:00
Brian Clozel
d29052327f Upgrade to Reactor 2022.0.7
Closes gh-705
2023-05-15 15:04:16 +02:00
Brian Clozel
3798940caf Upgrade to Micrometer Tracing 1.1.1
Closes gh-703
2023-05-15 15:03:45 +02:00
Brian Clozel
cb74aa7f93 Upgrade to Micrometer 1.11.0
Closes gh-702
2023-05-15 15:03:05 +02:00
Brian Clozel
673ad5418d Upgrade to Jackson 2.15.0
Closes gh-704
2023-05-15 15:01:16 +02:00
Brian Clozel
ba42c0b9ed Upgrade to Spring Boot 3.1.0-RC2 2023-05-15 14:59:30 +02:00
Brian Clozel
79ddfe0c47 Upgrade to Spring Framework 6.0.9
Closes gh-701
2023-05-15 14:53:49 +02:00
Brian Clozel
db77f7cf20 Merge branch '1.1.x' 2023-05-15 14:32:31 +02:00
Brian Clozel
ebe5706cda Upgrade to Jackson 2.14.3 2023-05-15 14:30:23 +02:00
Brian Clozel
ddf2ac83ac Upgrade to Micrometer 1.10.7
Closes gh-700
2023-05-15 14:29:34 +02:00
Brian Clozel
d106af5ad1 Upgrade to Reactor 2022.0.7
Closes gh-699
2023-05-15 14:28:38 +02:00
Brian Clozel
4616d0fde3 Upgrade to Spring Security 6.0.3
Closes gh-698
2023-05-15 14:27:05 +02:00
Brian Clozel
968b8e6673 Upgrade to Spring Data 2022.0.6
Closes gh-697
2023-05-15 14:26:16 +02:00
Brian Clozel
66fd6b05db Upgrade to Spring Boot 3.0.6 2023-05-15 14:24:53 +02:00
Brian Clozel
51cf46657d Upgrade to GraphQL Java 19.5
Closes gh-696
2023-05-15 14:24:23 +02:00
Brian Clozel
cec3555687 Upgrade to Spring Framework 6.0.9
Closes gh-695
2023-05-15 14:22:34 +02:00
Brian Clozel
9e07e8a5a0 Upgrade build badge for 1.2.x generation 2023-05-15 10:52:37 +02:00
Brian Clozel
bce40d4dba Upgrade to Spring Data 2023.0.0
Closes gh-679
2023-05-15 10:49:21 +02:00
Brian Clozel
4ce95f88ca Update GraphiQL stock build
This commit upgrades the default react version used in the GraphiQL
build shipped with the project. This also fixes a few HTML syntax issues
in the index.html page.
2023-05-15 10:49:21 +02:00
Brian Clozel
054aaedb16 Document GraphiQL integration
Closes gh-403
2023-05-15 10:49:21 +02:00
Brian Clozel
97990c2543 Rewrite links to new Framework reference docs 2023-05-15 10:49:21 +02:00
Brian Clozel
992b3f4344 Extract large sections of ref docs into includes 2023-05-15 10:49:21 +02:00
Brian Clozel
a71fe77f77 Merge branch '1.1.x' 2023-05-11 14:44:41 +02:00
Brian Clozel
faea9d1c8b Fix observability instrumentation for CompletionStage
This commit fixes the observability instrumentation for data fetchers
when the return type is of `CompletionStage`. Prior to this commit, the
instrumentation of `CompletionStage` return values as
`DataFetcherResult` would wrap the asynchronous value twice.

Closes gh-676
2023-05-11 14:44:32 +02:00
Brian Clozel
d84ab6c1bd Upgrade to Context Propagation 1.0.2
Closes gh-689
2023-05-10 17:17:54 +02:00
Brian Clozel
c45dddc9d5 Merge branch '1.1.x' 2023-05-10 15:47:22 +02:00
Brian Clozel
0a41104226 Use localContext for storing data fetcher observations
Prior to this commit, a partial fix in a56ff6e introduced proper
relationships between request and data fetcher observations by tracking
them in a local concurrent map. This fix is incomplete as data fetcher
operations are not set as current in the ThreadLocal or reactive
contexts when the actual DataFetcher is executed.

We cannot use the global GraphQLContext for DataFetcher observations,
as it is shared for the entire GraphQL request (and no thread safe).

This commit makes the Instrumentation instrument DataFetcher and make
them return a `DataFetcherResult` that holds a
`g.s.DataFetchingEnvironment#getLocalContext` with a reference to the
current data fetcher observation. A temporary fix is also applied in
`ContextDataFetcherDecorator` to merge both global and local contexts
when capturing a `ContextSnapshot` to be applied for the data fetching
operation.

Fixes gh-676
See gh-688
2023-05-10 14:50:45 +02:00
rstoyanchev
577014f4f1 Support date types in JsonKeysetCursorStrategy
This adds support for date values to JsonKeysetCursorStrategy by default
when Jackson is on the classpath and also updates the documentation to
provide guidance.

Closes gh-684
2023-05-09 07:02:42 +01:00
rstoyanchev
d717e80cb9 Minor refactoring in DefaultGraphQlTester 2023-05-07 21:31:53 +01:00
rstoyanchev
21f4520a37 Support nested paths in GraphQlTester
Closes gh-457
2023-05-07 21:19:03 +01:00
rstoyanchev
2e7b0108d9 Show pagination args in reference docs sample 2023-05-07 19:37:47 +01:00
Brian Clozel
db67eb82a7 Polish
Closes gh-683
2023-05-04 09:46:46 +02:00
Oliver Drotbohm
cd3cf9d47c Adapt to API changes in Spring Data's ScrollPosition APIs.
We now use the factory methods introduced on ScrollPosition to create new instances of both Keyset- as well as OffsetScrollPosition. Also simplified a few places in which the API now provides a more convenient way to advance offsets.

Related ticket: #679.
2023-04-28 16:04:18 +01:00
Oliver Drotbohm
13a95f8e89 Temporarily upgrade to Spring Data 3.1 snapshots. 2023-04-28 16:04:18 +01:00
rstoyanchev
d3ea23e878 Add hook for the inspection of schema mappings
Closes gh-672
2023-04-28 12:52:29 +01:00
rstoyanchev
7db96fd77f Enhance SchemaReport API
See gh-672
2023-04-28 12:14:00 +01:00
rstoyanchev
7dd4ac0786 Make SchemaMappingReport public
See gh-672
2023-04-27 17:26:44 +01:00
rstoyanchev
1a5dacce62 SchemaMappingInspector @BatchMapping method support
Closes gh-673
2023-04-26 13:50:42 +01:00
rstoyanchev
c7c75dacdf Replace schema inspection assertions with log messages
See gh-678
2023-04-26 13:49:12 +01:00
rstoyanchev
3df8fcbbcb Refactoring in SchemaMappingInspector
Break down inspectType into two methods, one to inspect fields in a
GraphQLFieldContainer, and another to inspect a field output type.
The former is more straight forward and applies to Query, Mutation,
and Subscription. The latter does type handling such as unwrapping,
and nesting, and also requires a non-null Java ResolvableType.
2023-04-26 13:49:12 +01:00
rstoyanchev
29c5361651 Polishing SchemaMappingInspector 2023-04-26 13:49:12 +01:00
rstoyanchev
d4b2266ff7 Schema inspection handles List from Subscription
Normally a multivalue Publisher is collected to a List, so we can treat
it as a match for a List field. For subscriptions, however, such a
Publisher is left as an infinite stream, and we should not treat as a
match for a List, but rather expect it to be a stream of List items.

Discovered while working on gh-674, which is closely related.
2023-04-26 13:49:12 +01:00
rstoyanchev
133b4063e4 Schema inspection handles List with async wrapper
Fixes gh-674
2023-04-26 13:49:12 +01:00
Brian Clozel
01bc66acb1 Add support for GraphQlExceptionHandler in AOT mode
This commit adds the relevant reflection metadata for supporting
`@GraphQlExceptionHandler` annotated methods in controllers and
`@ControllerAdvice` beans.

Closes gh-677
2023-04-25 17:00:13 +02:00
Brian Clozel
b21e91fe32 Upgrade CI infrastructure
This commit upgrades versions for our CI infrastructure:

* Ubuntu OS
* Docker
* JDK 17
2023-04-24 23:23:19 +02:00
Brian Clozel
45b0a2a10e Upgrade to Gradle 8.1.1 2023-04-24 23:18:56 +02:00
Brian Clozel
9e4766a723 Remove deprecated PropagationWebGraphQlInterceptor
See gh-675
2023-04-24 23:02:32 +02:00
Brian Clozel
75fefe6a58 Merge branch '1.1.x' 2023-04-24 22:57:04 +02:00
Brian Clozel
a56ff6e58d Fix DataFetcher observations hierarchy
Prior to this commit, the `GraphQlObservationInstrumentation` would
organize the parent/child relationship between data fetcher observations
by setting the current observation under a well-known key in the global
GraphQL context.

In some cases, the order of execution and the scheduling of operations
does not reflect the actual operation hierarchy as defined by the
GraphQL `ExecutionStepInfo`. This would result in traces where data
fetching operations are set with incorrect parent/child relationships.

This commit ensures that data fetcher observations have their parent set
with the expected one, by keeping track of active observations and using
the `ExecutionStepInfo` path as a key.

Fixes gh-676
2023-04-24 22:51:24 +02:00