Skip to content

Conversation

@renovate
Copy link
Contributor

@renovaterenovatebot commented May 16, 2025

This PR contains the following updates:

PackageChangeAgeConfidence
com.graphql-java:graphql-java23.1 -> 25.0ageconfidence

Release Notes

graphql-java/graphql-java (com.graphql-java:graphql-java)

v25.0: 25.0

Compare 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.

 var parserOptions = newParserOptions().maxRuleDepth(99).build() GraphQL.unusualConfiguration().parsing().setDefaultParserOptions(parserOptions) 
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 FetchedValue object is not always returned on field fetchers for performance reasons. This means that graphql.execution.instrumentation.parameters.InstrumentationFieldCompleteParameters#getFetchedObject was created to replace the older getFetchedValue method and the returns object can sometimes be a FetchedValue or 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

New Contributors

Full Changelog: graphql-java/graphql-java@v23.0...v25.0

v24.3: 24.3

Compare Source

This small bug fix brings in java-dataloader 5.0.3 which itself has a fix such that the Kotlin stdlib is not included a POM dependency

See https://github.com/graphql-java/java-dataloader/releases/tag/v5.0.3 for more details

What's Changed

Full Changelog: graphql-java/graphql-java@v24.2...v24.3

v24.2: 24.2

Compare Source

This is a small bugfix release, to use the latest version of DataLoader that includes nullability annotation improvements. Thanks to the community to providing feedback.

See https://github.com/graphql-java/java-dataloader/releases/tag/v5.0.2 and https://github.com/graphql-java/java-dataloader/releases/tag/v5.0.1 for the details

What's Changed

Full Changelog: graphql-java/graphql-java@v24.1...v24.2

v24.1: 24.1

Compare Source

This is bugfix release for 24.

Main change is #​3994: If you have defer enabled (an experimental feature) and use data loaders for mutations your requests would hang, because the data loaders are not dispatched correctly.

Additionally this release contains #​3995.

Cheers

What's Changed

Full Changelog: graphql-java/graphql-java@v24.0...v24.1

v24.0: 24.0

Compare Source

24.0 is a breaking change

This release is an unexpected breaking change release. It was made to help propagate a fix in the DataLoader library

In DataLoader version 4.0.0 we introduced immutability into the DataLoaderOptions class, which was a good thing.

However it left the old mutative setXXX methods in place and made them immutable. This was a mistake. This leads to bugs at runtime for example

DataLoaderOptionsoptions = DataLoaderOptions.newOptions(); if (maxBatchSize != BatchLoader.UNSET_BATCH_SIZE){options.setMaxBatchSize(maxBatchSize)} returnoptions.setCacheMap(cache);

The above code would continue to compile but the setMaxBatchSize() would never take affected at runtime with the immutable support.

So to help address this bug a DataLoader version 5.0.0 was released and it has removed the setXXX methods and requires the Builder methods to be used to ensure that code that relied on the old mutative methods now break at compile time and not at runtime.

In turn we have released this new version of graphql-java - we have designated it a breaking change because of this transitive DataLoader breaking change

We consider v23.x poisoned and we don't recommend you use it because of the latent bug above.

But the release notes of 23 are still relevant when you upgrade from 22: https://github.com/graphql-java/graphql-java/releases/tag/v23.0

Small performance fixes

There are also a set of small performance oriented fixes that have gone out in this release.

What's Changed

Full Changelog: graphql-java/graphql-java@v23.1...v24.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 is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovatebot added the dependencies Pull requests that update a dependency file label May 16, 2025
@renovaterenovatebotforce-pushed the renovate/major-graphql-java.version branch from 0fc3cc6 to 7cf81e7CompareMay 30, 2025 10:29
@renovaterenovatebotforce-pushed the renovate/major-graphql-java.version branch from 7cf81e7 to 5e78a26CompareJuly 28, 2025 05:12
@renovaterenovatebotforce-pushed the renovate/major-graphql-java.version branch from 5e78a26 to 61c4188CompareSeptember 24, 2025 03:35
@renovaterenovatebotforce-pushed the renovate/major-graphql-java.version branch from 61c4188 to c0786f6CompareNovember 10, 2025 04:54
@renovaterenovatebot changed the title fix(deps): update dependency com.graphql-java:graphql-java to v24fix(deps): update dependency com.graphql-java:graphql-java to v25Nov 10, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant