Closed renovate[bot] closed 1 month ago
This bump is resolved with #573
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 22.x
releases. But if you manually upgrade to 22.x
then Renovate will re-enable minor
and patch
updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
This PR contains the following updates:
21.3
->22.1
Release Notes
graphql-java/graphql-java (com.graphql-java:graphql-java)
### [`v22.1`](https://togithub.com/graphql-java/graphql-java/releases/tag/v22.1): 22.1 This is a bugfix release. There are no breaking changes in this release, however if you use Kotlin, please note some nullability changes were made with this release. **Key changes include:** - Fix to add field fetching method [#3571](https://togithub.com/graphql-java/graphql-java/issues/3571) - Add validation rule for `@deprecated` on required arguments and input object fields [#3591](https://togithub.com/graphql-java/graphql-java/issues/3591) - Nullability changes for DataFetchingEnvironment [#3582](https://togithub.com/graphql-java/graphql-java/issues/3582). If you use Kotlin, this may be considered a breaking change for you. See discussion: [https://github.com/graphql-java/graphql-java/discussions/3630](https://togithub.com/graphql-java/graphql-java/discussions/3630) Thanks to everyone who contributed to this release! #### What's Changed - Update readme badge by [@dondonz](https://togithub.com/dondonz) in [https://github.com/graphql-java/graphql-java/pull/3568](https://togithub.com/graphql-java/graphql-java/pull/3568) - Added a getBoolean onto GraphQLContext.java by [@bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/graphql-java/pull/3578](https://togithub.com/graphql-java/graphql-java/pull/3578) - getBoolean returns a boolean not a Boolean by [@bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/graphql-java/pull/3581](https://togithub.com/graphql-java/graphql-java/pull/3581) - Bump org.testng:testng from 7.10.1 to 7.10.2 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3583](https://togithub.com/graphql-java/graphql-java/pull/3583) - Bump net.bytebuddy:byte-buddy from 1.14.13 to 1.14.14 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3584](https://togithub.com/graphql-java/graphql-java/pull/3584) - Bump net.bytebuddy:byte-buddy-agent from 1.14.13 to 1.14.14 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3585](https://togithub.com/graphql-java/graphql-java/pull/3585) - Bump com.fasterxml.jackson.core:jackson-databind from 2.17.0 to 2.17.1 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3587](https://togithub.com/graphql-java/graphql-java/pull/3587) - Always include incremental props even if null by [@gnawf](https://togithub.com/gnawf) in [https://github.com/graphql-java/graphql-java/pull/3570](https://togithub.com/graphql-java/graphql-java/pull/3570) - Bump net.bytebuddy:byte-buddy-agent from 1.14.14 to 1.14.15 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3595](https://togithub.com/graphql-java/graphql-java/pull/3595) - Bump net.bytebuddy:byte-buddy from 1.14.14 to 1.14.15 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3596](https://togithub.com/graphql-java/graphql-java/pull/3596) - Ready: Add [@deprecated](https://togithub.com/deprecated) validation for input object fields, field arguments, directive arguments by [@dondonz](https://togithub.com/dondonz) in [https://github.com/graphql-java/graphql-java/pull/3591](https://togithub.com/graphql-java/graphql-java/pull/3591) - Added field fetching method for Expedia by [@bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/graphql-java/pull/3571](https://togithub.com/graphql-java/graphql-java/pull/3571) - Update GitHub actions ahead of release by [@dondonz](https://togithub.com/dondonz) in [https://github.com/graphql-java/graphql-java/pull/3600](https://togithub.com/graphql-java/graphql-java/pull/3600) - Bump google-github-actions/auth from 2.1.2 to 2.1.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3603](https://togithub.com/graphql-java/graphql-java/pull/3603) - Bump org.eclipse.jetty:jetty-server from 11.0.20 to 11.0.21 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3602](https://togithub.com/graphql-java/graphql-java/pull/3602) - Bump com.google.code.gson:gson from 2.10.1 to 2.11.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/graphql-java/graphql-java/pull/3601](https://togithub.com/graphql-java/graphql-java/pull/3601) - Add nullability annotations in DataFetchingEnvironment & sub-classes by [@Salzian](https://togithub.com/Salzian) in [https://github.com/graphql-java/graphql-java/pull/3582](https://togithub.com/graphql-java/graphql-java/pull/3582) - Now does not overwrite a types default data fetcher unless its nonnull by [@bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/graphql-java/pull/3579](https://togithub.com/graphql-java/graphql-java/pull/3579) - Add extend schema (AST print) to SchemaPrinter by [@dondonz](https://togithub.com/dondonz) in [https://github.com/graphql-java/graphql-java/pull/3471](https://togithub.com/graphql-java/graphql-java/pull/3471) #### New Contributors - [@Salzian](https://togithub.com/Salzian) made their first contribution in [https://github.com/graphql-java/graphql-java/pull/3582](https://togithub.com/graphql-java/graphql-java/pull/3582) **Full Changelog**: https://github.com/graphql-java/graphql-java/compare/v22.0...v22.1 ### [`v22.0`](https://togithub.com/graphql-java/graphql-java/releases/tag/v22.0): 22.0 We are pleased to announce the release of graphql-java v22.0. Thanks to everyone in the community who contributed to the release, whether that was code, helping to report issues, or participating in discussions. This is a **breaking change** release. The graphql-java team takes breaking changes very seriously but in the name of performance we have made some significant breaking changes in this release. ### Major Performance Changes Past releases have been very much performance focused and this one is no different. However, this release is aiming to reduce memory pressure more than reduce pure CPU usage. When the graphql-java engine is running, if it produces less objects it will ultimately run faster because of reduced memory pressure and less garbage to collect. The engine has been changed in two major ways that reduce memory pressure. #### ExecutionResult wrapping The first was that all values that come back got wrapped internally into a `ExecutionResult` object where the `data` attribute was the value. This was a carry over from some very early GraphQL code but was unnecessary and hence has been removed. The follow on effect of this is that some `graphql.execution.ExecutionStrategy` protected methods and `graphql.execution.instrumentation.Instrumentation` methods used to receive and return `ExecutionResult` values and no longer do, which is an API breaking change. We have made this breaking changes in the name of memory pressure performance. #### CompletableFuture wrapping The second major change is that the engine no longer exclusively uses `java.util.concurrent.CompletableFuture`s when composing together results. Let us explain the past code first so we can discuss the new code. `CompletableFuture` is a fantastic construct because it represents a promise to a value and it can also hold an exceptional state inside itself. Async programming with `CompletableFuture` is viral. If stage 1 of some compute process returns a `CompletableFuture` then stage 2 and 3 and 4 are likely to as well to ensure everything is asynchronous. We use to take values that were not asynchronous (such as DataFetcher that returned a simple in memory object) and wrap them in a `CompletableFuture` so that all of the other code composed together using `CompletableFuture` methods like `.thenApply()` and `.thenCompose` and so on. The code is cleaner if you use all `CompletableFuture` code patterns. However many objects in a GraphQL request are not asynchronous but rather materialised objects in memory. Scalars, enums and list are often just values immediately available to be used and allocating a `CompletableFuture` makes the code easier to write but it has a memory pressure cost. So we have sacrificed cleaner code for more memory performant code. graphql-java engine `graphql.execution.ExecutionStrategy` methods now just return `Object` where that object might be either a `CompletableFuture` or a materialised value. ```java private Object /*CompletableFutureConfiguration
📅 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.