Update com.graphql-java (major)#241
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Conversation
47dadb8 to
6ab1b21
Compare
6ab1b21 to
8c65db0
Compare
8c65db0 to
3462a20
Compare
c884ac6 to
479b1e8
Compare
479b1e8 to
d5dc201
Compare
d5dc201 to
3e1b0fd
Compare
3e1b0fd to
b6614fd
Compare
b6614fd to
5221b0a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
20.2→24.020.9→26.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
graphql-java/graphql-java-extended-scalars (com.graphql-java:graphql-java-extended-scalars)
v24.0: 24.0Compare Source
This new version updates the base dependency to graphql-java 24.0
We have six new Scalars included from members of the community. Thank you one and all.
What's Changed
New Contributors
Full Changelog: graphql-java/graphql-java-extended-scalars@v22.0...v24.0
v22.0: 22.0Compare Source
This release updates graphql-java to v22.0.
See the graphql-java release notes: https://github.com/graphql-java/graphql-java/releases/tag/v22.0
What's Changed
New Contributors
Full Changelog: graphql-java/graphql-java-extended-scalars@v21.0...v22.0
v21.0: 21.0Compare Source
This release updates graphql-java to v21.0 and as a result, this library now requires Java 11 as a minimum version.
See the blog announcing the change for graphql-java.
What's Changed
Full Changelog: graphql-java/graphql-java-extended-scalars@20.2...v21.0
graphql-java/graphql-java (com.graphql-java:graphql-java)
v26.0: 26.0Compare Source
This is the 26.0 release of graphql-java. Highlights are summarized below; the full list of merged PRs is at the end.
Query complexity limits are now enforced by default
New
QueryComplexityLimitsvalidation checksmaxDepth(default 100) andmaxFieldsCount(default 100,000) as part of standard validation. Queries exceeding these limits will now fail with newMaxQueryDepthExceeded/MaxQueryFieldsExceededvalidation errors.GraphQLContextusingQueryComplexityLimits.KEY.QueryComplexityLimits.NONE.Introduced in #4256.
Validation rule filtering API changed
In #4228 the rule-filter predicate changed from
Predicate<Class<?>>toPredicate<OperationValidationRule>inValidator.validateDocument(...)andParseAndValidate.parseAndValidate(...). Callers that filtered by class (e.g.rule -> rule != NoUnusedFragments.class) must migrate to the enum (rule -> rule != OperationValidationRule.NO_UNUSED_FRAGMENTS). The@InternalclassesAbstractRuleandRulesVisitorwere removed.Built-in directive handling consolidated (#4229)
DirectiveInfowas removed. Replace usages:DirectiveInfo.isGraphqlSpecifiedDirective(...)→Directives.isBuiltInDirective(...)DirectiveInfo.GRAPHQL_SPECIFICATION_DIRECTIVES→Directives.BUILT_IN_DIRECTIVESDirectiveInfo.GRAPHQL_SPECIFICATION_DIRECTIVE_MAP→Directives.BUILT_IN_DIRECTIVES_MAPGraphQLSchema.Builder.clearDirectives()was initially removed then re-added in #4276 with new semantics — it clears alladditionalDirectives, but built-in directives are always re-added automatically at build time.OneOf inhabitability validation (#4248)
New validator rejects OneOf input types that cannot be populated with a finite value (e.g.
input A @​oneOf { a: A }). Schemas that previously validated may now be rejected.Non-null field validation for code-built schemas (#4194)
Code-built schemas now perform the same deprecated-on-non-null field validation as SDL-built ones. Schemas relying on the gap may now fail validation.
GraphQLSchema.getCodeRegistry()is no longer@Nullable(#4247)The return type was incorrectly annotated nullable. Callers may now drop redundant null checks; downstream nullness tooling will reflect the change.
JSpecify nullability annotations rolled out broadly
Waves 2 and 3 (#4184, #4274) plus many individual PRs annotated hundreds of classes across
graphql.analysis,graphql.execution,graphql.language,graphql.schemaand others with@NullMarked/@NullUnmarked/@Nullable. Kotlin and other null-aware callers will now see stricter nullability contracts; code that relied on previously-permissive signatures may need adjustment.✨ New Features
GraphQLSchema.FastBuilder(#4197) — a more restrictive but ~5× faster schema builder that reduces both time and memory for large schemas.QueryAppliedDirectiveon operations and documents (#4297) — directives applied at the operation/document level are now exposed asQueryAppliedDirectives.DataFetcherResultafterDataFetcherExceptionHandlerhas mapped exceptions to errors.ChainedInstrumentationdelegates the new hook correctly.DataFetcherResult.newBuilder(T data)(#4254) — removes the need for explicit type witnesses on the commonDataFetcherResult.<T>newResult().data(x)...pattern.GraphQLSchema.Builder.clearDirectives()(#4276) — useful withGraphQLSchema.transformto rewrite non-built-in directives; built-ins are always re-added.toString()on AST directives holders (#4195).⚡ Performance
@deferexecution starts earlier (#4174) — begins processing deferred payloads as soon as the first incremental call is detected instead of waiting for the initial result to complete.OperationValidatorpass, significantly cutting validation overhead.Async$Many.materialisedList()— replacedArrayListcopy with a zero-copyArrays.asList()wrapper.ResultPath.toStringValue— lazy computation; the string form is only built on firsttoString()(typically only during error reporting).GraphQLCodeRegistry.getDataFetcher(String, String, GraphQLFieldDefinition)overload avoiding per-fetchFieldCoordinatesallocations (~54 KB/op reduction).FastBuilderfor schema construction (#4197) — see New Features.ShallowTypeRefCollectorto also resolve type refs inside applied directive arguments and enum value definitions (#4288) — correctness fix enablingFastBuilderto be used on more schemas.🐛 Other Noteworthy Changes
Execution / data fetching
@deferfragments (#4270) — fixes a case where DataLoaders were not dispatched correctly when multiple deferred fragments were in play.CompletionStageSubscriberrace condition (#4296) — completion signal could be lost if an in-flightCompletionStageresolved concurrently. Fix is backed by new jcstress stress tests.PropertyDataFetcheron non-public classes (#4287) — properties on non-public classes that implement public interfaces (e.g.TreeMap.Entry) now fetch correctly on Java 16+ by searching public interfaces.ExecutableNormalizedFieldrespectsGraphqlFieldVisibility(#4204) — selection-set APIs now use the schema's configured visibility instead of going straight to the type.ScheduledDataLoaderRegistry"dispatch all" fix (#4164).ChainedInstrumentationonExceptionHandleddelegation (#4207).Schema / field visibility
GraphQLTypeCollectingVisitornow recursively traverses indirect strong references (#4213).SchemaTraverser::depthFirstoverload signature fix (#4165).Build / packaging / security
@Generatedannotation injected for coverage reporting was leaking into published artifacts. JARs now contain pristine compiler output.performance-results/filenames, split the oversizedlarge-schema-5.graphqls, added pre-commit + CI checks.Tooling / DX
getDataLoadertype bounds improved (#4180).Full PR list
Expand to see all merged PRs
072165bby @andimarek in #4291New Contributors
Full Changelog: graphql-java/graphql-java@v25.0...v26.0
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
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.