chore(deps): update dependency com.graphql-java:graphql-java to v17 #368
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:
16.2
->17.1
Release Notes
graphql-java/graphql-java
v17.1
Upgrade to DataLoader 3.1.0
This release upgrade the DataLoader library to
3.1.0
which adds the ability to have an external value cache in place during data loader batch calls.You can use it to model access to external caches like REDIS amd even do batch "cache gets".
v17.0
We are happy to announce v17.0 of graphql-java
https://github.com/graphql-java/graphql-java/milestone/31?closed=1
@deprecated
supported on input fieldsIn line with coming graphql spec changes, the
@deprecated
annotation can now be placed on input fields and not just output fields as before.https://github.com/graphql-java/graphql-java/pull/2186
Dramatic performance improvements in
GraphQLSchema
buildingThe
GraphQLSchema
is a graph of types and as such has to be built according to strict rules. The previous code would repeated visit and rebuilt the schema and this meant that large schemes could be slow to build.This code has been extensively benchmarked and improved. For example on a very large and complex schema, total build time went from 3.5 seconds to 1.2 seconds.
Thank you to teams out there that used https://github.com/graphql-java/graphql-anonymizer to submit in real life schemas that we can test with.
Dramatic performance improvements in
DataFetchingFieldSelectionSet
The classes that underlie the
DataFetchingFieldSelectionSet
code have been been remodelled to be dramatically more performant. Before interfaces could create an exponential explosion in objects created. This has been fixed which in turn improves the performance of this code as scale.Dramatic performance improvements in large query validation
The graphql spec calls for overlapping fields in fragments to be validated in a certain way. The previous code followed the specs psudeo-algorithm correctly but it leads to asymptotic performance problems.
This has been rewritten via https://github.com/graphql-java/graphql-java/pull/2495 based on this article https://tech.xing.com/graphql-overlapping-fields-can-be-merged-fast-ea6e92e0a01 which dramatically improves how fast large queries can validated.
Support of directives on fields and types during introspection
#2221 this is a non spec feature which lets you expose directives through Introspection
Reworked default value validation and improved Scalar coercion
#2325 This is a relatively big change which fixed up how default values are processed. Before that default values were never validated and custom Scalars could cause invalid values printed in SDL or Introspection. This PR includes a new Scalar coercion function
valueToLiteral
which is needed to implement this correct behaviour.Better Unicode support in documents
https://github.com/graphql-java/graphql-java/pull/2404 allows for better Unicode expression in queries and SDL documents
GraphQLContext is now the approved context mechanism
https://github.com/graphql-java/graphql-java/pull/2368 allows for a well known API for context within a graphql request. Previously any opaque object could be used and framework could was not able to make any assumptions about adding their own context properties
The old mechanism has been deprecated and a singleton (buy mutable) context object is now how context is passed around.
Ignored characters are no longer help in memory by default
Characters in a graphql document that are not significant to the syntax, such as spaces, new lines and comms, used to be captured in memory against AST nodes.
This is no longer the case and it saves memory from parsed documents. There is a switch to turn on the old behavior intended for tooling code.
https://github.com/graphql-java/graphql-java/pull/2394
Exception handlers can now be asynchronous
graphql-java operates in a asynchronous world and hence the code that handles exceptions in data fetchers should itself allow asynchronous handling.
https://github.com/graphql-java/graphql-java/pull/2371
Non standard scalars have been removed
graphql-java used to have non standard scalars like
Byte
,Short
andLong
etc... These deprecated scalars have finally been removed and now reside in the https://github.com/graphql-java/graphql-java-extended-scalars libraryBreaking changes
https://github.com/graphql-java/graphql-java/pulls?q=is%3Apr+label%3A%22breaking+change%22++milestone%3A%2217.0%22
The boolean values acceptable as variable input the Boolean scalar have been tightened to
true
andfalse
- see https://github.com/graphql-java/graphql-java/pull/2419The non standard
@Fetch
directive support has been removed by default and deprecated. This was done for performance reasons because very few people used it but it slowed down schema creation a lotThe long deprecated
BatchedExecutionStrategy
andExecutorServiceExecutionStrategy
have finally been removedThe non standard scalars like
Long
andShort
have been removed and moved to https://github.com/graphql-java/graphql-java-extended-scalarsConfiguration
📅 Schedule: 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 has been generated by WhiteSource Renovate. View repository job log here.