Commit Graph

1440 Commits

Author SHA1 Message Date
Brian Clozel
feb7ce3831 Remove manual develocity config
This should have been removed when we upgraded to
"io.spring.develocity.conventions:0.0.22".
I suspect this is the reason we are not getting build scan URLs in
GitHub action runs anymore.
2025-02-05 11:47:05 +01:00
Brian Clozel
0948e61509 Merge branch '1.3.x' 2025-02-05 10:28:11 +01:00
Brian Clozel
af74edbcc7 Handle early GraphQLExceptions in ExecutionGraphQlService
Prior to this commit, the `ExecutionGraphQlService` would throw
`GrahphQLException` instances if errors happen early in the process, for
example in some cases of document parsing/validation.

Such exception would be thrown directly and not reflected in the GraphQL
response if those are `GraphQLError`.

This commit ensures that a fallback GraphQL response is created in this
case and that it contains the relevant `GraphQLError` information.

Fixes gh-1118
2025-02-05 10:24:43 +01:00
Brian Clozel
16aa33a2fb Align server transports with GraphQL/HTTP spec
Prior to this commit, the `GraphQlHttpHandler` implementations for MVC
and WebFlux would support the HTTP transport protocol for servers.
They would align with the well-known GraphQL behavior, using HTTP as a
transport and always using HTTP 200 OK as response status.

The new GraphQL over HTTP specification changes that, and requires
servers to respond with HTTP 4xx/5xx statuses when an error occurs
before the GraphQL request execution: for example, if the JSON document
cannot be parsed, or the GraphQL document is invalid.

This commit introduces a new "standard mode" option on HTTP transports
to follow this new requirement. Because this is a breaking change for
GraphQL clients, this mode is opt-in only for now.

See gh-1117
2025-02-05 10:17:22 +01:00
Brian Clozel
c015dbcb15 Add GraphQL response media type
This commit introduces a static `MediaType` instance for
`"application/graphql-response+json"`.

Closes gh-1110
2025-02-04 21:38:48 +01:00
rstoyanchev
c1938fc24d Merge branch '1.3.x' 2025-01-30 15:13:29 +00:00
rstoyanchev
474fbcafa1 Handler failure from GraphQlExceptionHandler method
Closes gh-1090
2025-01-30 15:11:48 +00:00
rstoyanchev
d2002bbe84 Handle early closure of WebSocket connection
Ensure the error is routed to the graphQlSessionSink when the WebSocket
connection is closed before the GraphQLSession is initialized.

Closes gh-1098
2025-01-30 15:09:58 +00:00
Brian Clozel
36bfd40d66 Remove usages of Framework's MediaType.APPLICATION_GRAPHQL
Closes gh-1109
2025-01-13 11:47:09 +01:00
Stéphane Nicoll
ff0528611e Add release milestone workflow
This commit adds a dedicated workflow to release a milestone, and
publish the changelog with a "pre-release" flag accordingly.

Closes gh-1025
2025-01-13 11:15:14 +01:00
Brian Clozel
6f422a9294 Merge branch '1.3.x' 2025-01-13 11:14:02 +01:00
Salman
8f303e630f Fix reference navigation to Spring Boot
Closes gh-1097
2025-01-13 10:40:46 +01:00
Stéphane Nicoll
6009edb1f4 Upgrade to Spring Boot 3.4.x
This commit upgrades to Spring Boot 3.4.x, Spring Framework 6.2.x, and
third party dependency versions used by the project.

Closes gh-1108
Signed-off-by: Stéphane Nicoll <stephane.nicoll@broadcom.com>
2025-01-13 10:36:04 +01:00
Brian Clozel
6db69c4725 Merge branch '1.3.x' 2025-01-13 10:27:58 +01:00
github-actions[bot]
2ef7fa214f Update Antora Spring UI to v0.4.18
Closes gh-1106
Closes gh-1105
2025-01-13 10:27:27 +01:00
Stéphane Nicoll
fc55c53abc Avoid usage of JsonExpectationsHelper#assertEquals
This has been deprecated in Spring Framework 6.2.

Closes gh-1107
Signed-off-by: Stéphane Nicoll <stephane.nicoll@broadcom.com>
2025-01-13 10:22:28 +01:00
Brian Clozel
dd98b50660 Merge branch '1.3.x' 2025-01-08 21:46:26 +01:00
Brian Clozel
cc189be2e3 Update Antora UI Spring to v0.4.17 2025-01-08 21:46:04 +01:00
github-actions[bot]
9d79c159e0 Update Antora Spring UI to v0.4.17
Closes gh-1070
2025-01-08 21:43:57 +01:00
Brian Clozel
988b4258c0 Perform Antora UI upgrade on main and 1.3.x 2025-01-08 21:40:24 +01:00
Brian Clozel
4d15c3c78d Merge branch '1.3.x' 2025-01-08 21:01:19 +01:00
Brian Clozel
4b7dfc0df7 Configure DCO in repository 2025-01-08 21:01:00 +01:00
Brian Clozel
daaf1569f9 Merge branch '1.3.x' 2025-01-08 21:00:16 +01:00
Brian Clozel
29ee6aa1eb Switch main branch to 1.4.0-SNAPSHOT 2024-12-05 19:03:00 +01:00
Brian Clozel
7047b37d42 Switch to 1.3.x branch 2024-12-05 15:07:30 +01:00
Brian Clozel
f3ef586cc7 Update GitHub actions 2024-12-05 14:53:12 +01:00
Brian Clozel
4bf4f993a6 Upgrade to Gradle 8.11.1 2024-12-05 14:52:55 +01:00
Simone Conte
3105e6f43d Remove duplicated wording in federation.adoc 2024-12-04 12:15:49 +00:00
rstoyanchev
3921a3ec6d Minor optimization in QuerydslDataFetcher
Use single MultiValueMap in method that flattens arguments vs
creating a new one at each level of recursion.

See gh-1085
2024-12-04 11:59:44 +00:00
Mark Paluch
2cafc7cc1b Polishing.
Refine assertions to ignore locale-specific error messages.

See gh-1085
2024-12-04 11:59:43 +00:00
Mark Paluch
821d480c3a Flatten nested argument maps in QuerydslDataFetcher
We now flatten argument maps to ensure keys in the resulting
parameter map are fully-qualified property paths.

Previously, we built a parameter map containing nested maps
leading to invalid queries.

Closes gh-1085
2024-12-04 11:59:29 +00:00
Brian Clozel
381c9f3cc0 Next development version (v1.3.4-SNAPSHOT) 2024-10-23 07:39:16 +02:00
Brian Clozel
fdceadf335 Fix typo in workflow 2024-10-22 16:07:54 +02:00
Brian Clozel
8423c15ef2 Add workflow for deleting a staged release on Artifactory 2024-10-22 16:01:19 +02:00
Brian Clozel
fa2780fffe Upgrade to Spring Security 6.3.4
Closes gh-1078
2024-10-22 11:16:25 +02:00
rstoyanchev
88d7ea7894 Pass localContext only if available
See gh-1066
2024-10-21 18:31:47 +01:00
rstoyanchev
58cce019ed Consistent Publisher error handling with SSE
Closes gh-1080
2024-10-18 16:37:24 +01:00
Brian Clozel
cb9afd0928 Upgrade to Spring Data 2024.0.5
Closes gh-1077
2024-10-18 13:59:12 +02:00
rstoyanchev
0d6605a079 Add timeout to WebFlux SSE handler
See gh-1079
2024-10-18 12:14:22 +01:00
rstoyanchev
3a0006bce0 Exposes timeout in GraphQlSseHandler
Closes gh-1079
2024-10-18 12:04:39 +01:00
rstoyanchev
c784612090 Polishing in GraphQlSseHandler
See gh-1067
2024-10-18 11:55:05 +01:00
Brian Clozel
3ea216c2d4 Upgrade optional dependencies
Signed-off-by: Brian Clozel <brian.clozel@broadcom.com>
2024-10-17 19:13:38 +02:00
Brian Clozel
0b3a0c5d32 Upgrade to Reactor 2023.0.11
Closes gh-1075

Signed-off-by: Brian Clozel <brian.clozel@broadcom.com>
2024-10-17 19:08:26 +02:00
Brian Clozel
e51950ac1c Upgrade to Micrometer 1.13.6
Closes gh-1076

Signed-off-by: Brian Clozel <brian.clozel@broadcom.com>
2024-10-17 19:07:25 +02:00
Brian Clozel
405f786766 Upgrade to Spring Framework 6.1.14
Closes gh-1074

Signed-off-by: Brian Clozel <brian.clozel@broadcom.com>
2024-10-17 18:55:05 +02:00
Brian Clozel
1cd63eaafb Upgrade to Gradle 8.10.2 2024-10-17 16:12:36 +02:00
Brian Clozel
fe4af8ac52 Propagate context to Dataloader in @BatchMapping
Prior to this commit, `@BatchMapping` controller methods would be
automatically registered as date fetchers delegating to data loader
calls. Those calls would not include the current local context or main
context. As a result, injecting the `BatchLoaderEnvironment` in the
controller method signature would not contain the `getKeyContext()`.

This commit ensures that dataloader calls not only use the current
source, but also the current local context/main context so that it will
be present in the key contexts map.

Fixes gh-1066
2024-10-17 12:29:02 +02:00
Brian Clozel
a210f77353 Cancel SSE publisher in case of async timeouts
Prior to this commit, the MVC `GraphQlSseHandler` would not react to
async request timeouts thrown by the Servlet container. This means that
when such timeouts happened, the SSE handler would still try to write to
the underlying response, whereas it was already recycled. This would
lead to NullPointerException thrown by the container.

This commit ensures that the SSE handler registers an async listener to
be notified of async timeouts and cancels the publisher as a result.
The SSE completion is not performed so as to let the client know that
the exchange did not complete and that it should re-subscribe.

Fixes gh-1067
2024-10-16 21:49:16 +02:00
Brian Clozel
2650eb5863 Allow Enum types to be injected as method parameter for Source
Prior to this commit, enum types would be rejected as possible source
arguments for schema mapping methods.

This is a valid use case and this commit removes this limitation.

Closes gh-1059
2024-10-14 18:22:59 +02:00
Brian Clozel
3a603e7a94 Upgrade to GraphQL Java 22.3
CLoses gh-1044
2024-10-14 15:18:42 +02:00