Releases: spring-projects/spring-graphql
Releases · spring-projects/spring-graphql
v1.1.1
⭐ New Features
- Displaying the number of loaded schema files on boot #566
- Adapt to official media type changes in GraphQL over HTTP spec #563
- Introduce DataFetcher builder customizers for Querydsl and Query by Example repositories #559
- Relax generic type checks when
@Argumentbinding to a map with an undeclared value type #554 - Allow custom
ExecutionStrategyto useDataFetcherExceptionResolverchain #552 - Refine ProjectedPayload argument handling for an optional input argument #550
🪲 Bug Fixes
- GraphQlClient query documents and test documents are missing from native image #575
- RSocket client fails in native when using the WebSocket transport #574
@ContextValueresolver cannot determine method parameter name on@BatchMappingmethods #562- Native websocket applications fail on GraphQlWebSocketMessage reflection #560
- Align observation convention with Micrometer best practices #558
- ArgumentValue incorrectly returns false from isOmitted() for an omitted argument #553
- Tracing support fails with NullPointerException when propagation information is missing #547
📔 Documentation
- Document GraalVM Native support in reference documentation #581
- Use ClientResponseField instead of ResponseField in documentation samples #573
🔨 Dependency Upgrades
- Upgrade to Micrometer 1.10.2 #556
- Upgrade to Reactor 2022.0.1 #586
- Upgrade to Spring Framework 6.0.3 #555
- Upgrade to Spring Security 6.0.1 #587
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v1.1.0
⭐ New Features
- Improve support for GraphQLSchema transformation #536
- Refine
nullhandling fortoEntityandtoEntityListinClientResponseField#525 - Support default
DataLoaderOptionsinDefaultBatchLoaderRegistry#522 - Add maxBatchSize attribute to
@BatchMapping#520 - Support checks if GraphQL argument was set to
nullor omitted entirely #518 - Replace use of DataBinder for binding GraphQL arguments #516
- Ahead Of Time support #495
- Cannot use
Setas property in GraphQL argument input object #394 - Cannot use GraphQL argument object whose generic type is declared on
@SchemaMappingmethod #349
🔨 Dependency Upgrades
v1.0.3
⭐ New Features
- Add actual elements to message of
containsAll#507 - Wrapping a projected payload in optional returns IllegalStateException #506
- Adds the option to use a pre configured RSocketRequester #498
@Argumentdoesn't supportMapas a target type at any level #449
🪲 Bug Fixes
- GraphQlClient#retrieve does not raise FieldAccessException for failures at a path nested below the target field #499
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v1.1.0-RC1
v1.1.0-M1
⭐ New Features
- Integrate with the Micrometer Context Propagation library #459
- Upgrade to GraphQL Java 19.2 #444
- Upgrade baseline to Java 17 and Jakarta APIs #426
🪲 Bug Fixes
- Make the context propagation dependency mandatory #482
🔨 Dependency Upgrades
- Upgrade to Micrometer context-propagation 1.0 M5 #477
v1.0.2
⭐ New Features
- Support
@Argumentswith Map #493 - Fix NPE when GraphQL argument is a list with a null element #486
- Support controller method parameter annotations on an interface #480
- Controller's with CompletableFuture return bad error messages or no error at all #479
- Support path variables for redirect to GraphiQL path #478
- Allow custom scalar, parsed to different types, to bind onto
java.lang.Object#447 - Introspect controller methods on startup to determine if they need validation #445
- Do not ignore a DataFetcher with a DataFetcherFactories wrapper #440
🪲 Bug Fixes
- Target collection type is not used in argument binding #485
- Java classes with Optional constructor args for GraphQL input types fail with InaccessibleObjectException #470
📔 Documentation
- Improve reference docs on how to find schema files acorss multiple modules #489
- Document how to customize global, request validation errors that prevent execution #487
🔨 Dependency Upgrades
- Upgrade to GraphQL Java 18.3 #456
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v1.0.1
⭐ New Features
- Improve handling of case where a source/parent is expected and is null #429
- Support for resolving exceptions from a subscription #398
- DataBinder using default auto grow collection limit #392
🪲 Bug Fixes
- Auto-registration of
@GraphQlRepositorydoes not work for output type defined as non-null #418 @Argumentresolver fails when type coercion from a single value to SingletonList is involved #410- The GraphQL UI cannot be opened if a spring.mvc.servlet.path is configured #402
📔 Documentation
- Fix links to Boot "Web Endpoints" section and mention WebSocket endpoint not enabled by default #436
- Update Javadoc of
retrieveinGraphQlClientfor decoding full data #434 - Update documentation to show setting response headers with value from
@SchemaMappingmethod #428
🔨 Dependency Upgrades
- Upgrade to GraphQL Java 18.2 #446
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v1.0.0
⭐ New Features
- Improve handling of concurrent requests in WebSocketGraphQlClient #388
- Add start and stop methods to RSocketGraphQlClient #378
- Adjust support for "application/graphql" media type so it is used only if explicitly requested #375
- Expose map of "extensions" in GraphQlRequest #371
- Support String and Number to be injected as the parent/source #370
- Improve readability of assertion messages #361
- HttpGraphQlClientTransport should respect an existing, explicitly set Content-Type #359
- Add
@LocalContextValuefor access to attributes from the local GraphQLContext in DataFetchingEnvironment #353 - Support Callable as a return value from controller methods for asynchronous execution #316
- Add shouldPersistHeaders = true to GraphiQL options #257
🪲 Bug Fixes
@ContextValuedoes not work for Mono argument #355- FieldAccessException should include field as well as global errors in its message #348
📔 Documentation
- Provide advice on number of instances and connections for WebSocketGraphQlClient and RSocketGraphQlClient #368
- Slightly incorrect documentation about BatchMapping return values #360
- Fix docs for WebGraphQlTester #358
- Update minimum requirement to GraphQL Java 18.0 #357
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v1.0.0-RC1
⭐ New Features
- Do not include exception message for unresolved exceptions #352
- GraphQlTester created via
@GraphQlTestshould use application JSON config #345 - Support RSocket as a transport #339
- Improve configuration and defaults for document location #338
- Improve Exception Logging in ExceptionResolversExceptionHandler #336
- Refactor GraphQlSource builder to separate programmatic vs SDL way of create GraphQLSchema #312
- Support for application/graphql content type #108
🪲 Bug Fixes
- Principal is null when executing requests over WebSocket with Spring MVC #342
📔 Documentation
- Improve documentation samples on access to HTTP headers from controller #350
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
v1.0.0-M6
⭐ New Features
- Add client-side interception on GraphQlClient #332
- Revisit GraphQlTester to align with GraphQlClient #317
- Further alignment with GraphQL spec terminology #310
- Provide details when schema resource is invalid #307
- Bind zero-length nested input argument to a zero-length List instead of null #301
- Apply a multiple values argument to the same property in Querydsl #281
- Raise BindException from GraphQlArgumentBinder with binding errors #280
- Revise JSONPath options in GraphQlTester #278
- Improve server handling of WebSocket connection closing and subscription completion #276
- Add support for
@AuthenticationPrincipalannotated method parameter #272 - Improve options to customize of ConversionService used for GraphQL argument binding #271
- Support for GraphQL over WebSocket
PingandPongmessage types #270 - Allow binding full arguments map onto an object #258
- Check for and eliminate duplicate schema resource registrations #230
- Add a GraphQLClient #10
🪲 Bug Fixes
- "non-public interface is not defined by the given loader " when using input Projections for Mutations #333
- Fix implementation of
containsExactly#327 - GraphQlWebSocketHandler incorrectly turns ExecutionResult with errors into an "error" message #320
- GraphQlTester.executeAndVerify should not check for empty errors map #318
- ArgumentMethodArgumentResolver and QueryByExampleDataFetcher are not thread safe #315
- QuerydslDataFetcher: ClassCastException when using a variable with type other than String #311
- Shortcut annotations
@QueryMapping,@MutationMapping, and@SubscriptionMappingshould target ElementType.METHOD only #290 @Validarguments and aPrincipalargument cannot both be declared on the same method #289- Incorrect arguments to Assert.isInstanceOf in AnnotatedControllerConfigurer #282
📔 Documentation
- Document custom type resolution strategies #334
- Document why Jackson annotations on types are not used for JSON serialization #321
- Update documentation with guidance on the use of aggregates and projections with Spring Data #264
- Add section on directives to reference documentation #262
- Improve guidance on use of projections with Querydsl and Query By Example #248
- Add section on operation caching to reference documentation #233
❤️ Contributors
We'd like to thank all the contributors who worked on this release!