Update dependency com.graphql-java:graphql-java to v25 #265
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:
24.3->25.0Release Notes
graphql-java/graphql-java (com.graphql-java:graphql-java)
v25.0: 25.0Compare Source
Key changes
Dataloader
Refactoring strategy
The existing PerLevelDataLoaderStrategy has been refactored which lead to simplifications and performance improvements.
New strategies
Two new strategies were introduced: CHAINED and EXHAUSTED. Both can be configured via
UnusalConfiguration(see next section).CHAINED allow for chained DataLoaders to be used while keeping a per level dispatch strategies.
EXHAUSTED is a completely new strategy that works on the basis to dispatch once the engine is not busy. It mirrors the JS data loader dispatch strategy, but for a multi threaded system.
Unusual Configuration
A more generalised configuration mechanism has been added for "unusual configuration". By that we mean configuation we dont expect many people to use but if they do its now in a more common place
For example if you wanted to change the maximum depth the document parser will accept you could call the following methods.
JSpecify Annotations
The team are starting to embrace https://jspecify.dev/ annotations as the way to indicate nullable and non nullable fields. Many important classes have had these annotations added to help make it more semantically clear when a value can be null or not.
Breaking Changes
A wrapping
FetchedValueobject is not always returned on field fetchers for performance reasons. This means thatgraphql.execution.instrumentation.parameters.InstrumentationFieldCompleteParameters#getFetchedObjectwas created to replace the oldergetFetchedValuemethod and the returns object can sometimes be aFetchedValueor sometimes a simple POJO value.Performance improvements
A series of performance improvements have been made to reduce the memory footprint of the library. Also the Java
.stream()operator can be slower than a more direct loop and many of these calls have been changed for performance reasons.What's Changed
graphql.schema.idlclasses by @mk868 in #3895graphql.languagepackage by @mk868 in #3899@NullUnmarkedto builders by @dondonz in #4087New Contributors
Full Changelog: graphql-java/graphql-java@v23.0...v25.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.