Update dependency com.graphql-java:graphql-java to v23 #231
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
22.3
->23.0
Release Notes
graphql-java/graphql-java (com.graphql-java:graphql-java)
v23.0
: 23.0Thanks to everyone for contributing to this release, through pull requests, issues, and discussions!
This is a major release which contains breaking changes.
Key changes
Enable batching on Mutations https://github.com/graphql-java/graphql-java/pull/3737
Support for draft error handling directive
@experimental_disableErrorPropagation
https://github.com/graphql-java/graphql-java/pull/3772DataFetchers can now return reactive-streams Publisher objects from them and they will be turned into a CompleteableFuture value. Note only a single value will be retrieved from the Publisher https://github.com/graphql-java/graphql-java/pull/3731
We changed from JetBrains nullability annotations to JSpecify annotations https://github.com/graphql-java/graphql-java/pull/3851. JSpecify is a new industry consortium effort, which has been adopted by Spring. See more in the documentation: https://jspecify.dev/docs/start-here/
A new experimental callback is available to track the execution state of GraphQL Java: it allows for being notified when GraphQL Java is running actively code vs waiting/finished. See https://github.com/graphql-java/graphql-java/blob/master/src/test/groovy/graphql/EngineRunningTest.groovy#L174 for how to use it
We have also released DataLoader 4.0.0 and made graphql-java dependent on it. See the release notes: https://github.com/graphql-java/java-dataloader/releases
@defer
directive is now included in the schema by default https://github.com/graphql-java/graphql-java/pull/3839Performance improvements
Only call overlapping validation once during validation, which will significantly reduce validation time, with more savings for larger operations. We found ~150% improvement in benchmarks. https://github.com/graphql-java/graphql-java/pull/3835
Reducing object allocations and overhead from stream, thanks @kilink for contributing many improvements https://github.com/graphql-java/graphql-java/pull/3804 https://github.com/graphql-java/graphql-java/pull/3803 https://github.com/graphql-java/graphql-java/pull/3801 https://github.com/graphql-java/graphql-java/pull/3798 https://github.com/graphql-java/graphql-java/pull/3797 https://github.com/graphql-java/graphql-java/pull/3710
Reducing object allocations for
PropertyDataFetcher
andSchemaGeneratorHelper
https://github.com/graphql-java/graphql-java/pull/3755 https://github.com/graphql-java/graphql-java/pull/3754Improvement on
DataFetchingSelectionSet.getImmediateFields()
, if descendant traversal is not required this saves considerable time. Thanks @timward60 https://github.com/graphql-java/graphql-java/pull/3855Comparing performance improvements. We run performance benchmarks on all changes, and you can view these results inside the GitHub repo. You can then use this JMH visualisation tool to compare benchmarks from different commits, for example these before and after results from the DataFetcherSelectionSet optimisation: https://jmh.morethan.io/?sources=https://raw.githubusercontent.com/graphql-java/graphql-java/refs/heads/master/performance-results/2025-03-18T23%3A42%3A07Z-3d7dce5e49dfbe92d656629ae4fdbab979bba8be-jdk17.json,https://raw.githubusercontent.com/graphql-java/graphql-java/refs/heads/master/performance-results/2025-03-20T04%3A24%3A26Z-9a931ba6ad8e2ee49ea48c98ca86c2901f2343b1-jdk17.json
See all performance improvements on GitHub: https://github.com/graphql-java/graphql-java/issues?q=is%3Amerged%20label%3A%22performance%22%20milestone%3A%2223.0%20breaking%20changes%22%20
Breaking changes
Strict runtime wiring redefinition checks now on by default. We now have stricter runtime wiring redefinition checks by default to catch invalid cases. For example, a field that already had a DataFetcher registered must not have a second DataFetcher registered. This can be toggled off. https://github.com/graphql-java/graphql-java/pull/3824
Removed an unused protected method in ExecutionStrategy. https://github.com/graphql-java/graphql-java/pull/3881
A small breaking change to
AstPrinter
to enable re-use of StringBuilders https://github.com/graphql-java/graphql-java/pull/3853Improvement in a few directive and applied directive builders to address a bug where all elements were cleared. https://github.com/graphql-java/graphql-java/pull/3825
Breaking change for a new specification requirement, to prevent
@include
and@skip
directives on subscription root fields https://github.com/graphql-java/graphql-java/pull/3871See all breaking changes on GitHub: https://github.com/graphql-java/graphql-java/issues?q=is%3Amerged%20label%3A%22breaking%20change%22%20milestone%3A%2223.0%20breaking%20changes%22
Security
We have become a CVE Numbering Authority (CNA) for GraphQL Java and related projects. For more information, see our Security page https://www.graphql-java.com/security.
What's Changed
New Contributors
Full Changelog: graphql-java/graphql-java@v22.3...v23.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.