Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency com.graphql-java:graphql-java to v17 #1566

Merged
merged 1 commit into from Aug 17, 2021

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 7, 2021

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.graphql-java:graphql-java 16.2 -> 17.1 age adoption passing confidence

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 fields

In 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 building

The 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 and Long etc... These deprecated scalars have finally been removed and now reside in the https://github.com/graphql-java/graphql-java-extended-scalars library

Breaking 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 and false - see https://github.com/graphql-java/graphql-java/pull/2419

  • The 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 lot

  • The long deprecated BatchedExecutionStrategy and ExecutorServiceExecutionStrategy have finally been removed

  • The non standard scalars like Long and Short have been removed and moved to https://github.com/graphql-java/graphql-java-extended-scalars


Configuration

📅 Schedule: "every weekend" (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.

🔕 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 has been generated by WhiteSource Renovate. View repository job log here.

@codecov
Copy link

codecov bot commented Aug 7, 2021

Codecov Report

Merging #1566 (6604eb3) into main (47a45d7) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##               main    #1566   +/-   ##
=========================================
  Coverage     79.87%   79.87%           
  Complexity      963      963           
=========================================
  Files           200      200           
  Lines          5933     5933           
  Branches        410      410           
=========================================
  Hits           4739     4739           
  Misses          755      755           
  Partials        439      439           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 47a45d7...6604eb3. Read the comment docs.

@renovate renovate bot force-pushed the renovate/com.graphql-java-graphql-java-17.x branch 4 times, most recently from 7b3f039 to a64abf1 Compare August 13, 2021 21:09
Signed-off-by: Renovate Bot <bot@renovateapp.com>
@renovate renovate bot force-pushed the renovate/com.graphql-java-graphql-java-17.x branch from a64abf1 to 6604eb3 Compare August 14, 2021 19:17
@wslulciuc wslulciuc merged commit 7ddb091 into main Aug 17, 2021
@wslulciuc wslulciuc deleted the renovate/com.graphql-java-graphql-java-17.x branch August 17, 2021 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants