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

Replace aged afterburner with the sr71 blackbird module #2022

Merged
merged 3 commits into from
Jul 6, 2021

Conversation

carterkozak
Copy link
Contributor

Afterburner uses several internal methods which result in warnings in
modern jdks, and result in failures using jdk16+.
The replacement Blackbird module uses LambdaMetafactory for a more
sustainable solution.

Documentation:
https://github.com/FasterXML/jackson-modules-base/tree/2.13/blackbird#jackson-blackbird

==COMMIT_MSG==
Replace aged afterburner with the sr71 blackbird module
==COMMIT_MSG==

Possible downsides?

Sometimes jackson changes can be brittle, it's possible bugs exist in the blackbird module that weren't present in afterburner. We have a great deal of test coverage, so I'm not worried as long as tests pass.

Afterburner uses several internal methods which result in warnings in
modern jdks, and result in failures using jdk16+.
The replacement Blackbird module uses LambdaMetafactory for a more
sustainable solution.

Documentation:
https://github.com/FasterXML/jackson-modules-base/tree/2.13/blackbird#jackson-blackbird
@carterkozak carterkozak requested a review from jkozlowski July 6, 2021 15:37
@changelog-app
Copy link

changelog-app bot commented Jul 6, 2021

Generate changelog in changelog/@unreleased

Type

  • Feature
  • Improvement
  • Fix
  • Break
  • Deprecation
  • Manual task
  • Migration

Description

Replace aged afterburner with the sr71 blackbird module

Check the box to generate changelog(s)

  • Generate changelog entry

@bulldozer-bot bulldozer-bot bot merged commit dcfbb8e into develop Jul 6, 2021
@bulldozer-bot bulldozer-bot bot deleted the ckozak/jackson-blackbird branch July 6, 2021 16:32
@svc-autorelease
Copy link
Collaborator

Released 7.6.0

carterkozak added a commit to palantir/atlasdb that referenced this pull request Jul 6, 2021
See palantir/conjure-java-runtime#2022

Afterburner uses several internal methods which result in warnings in
modern jdks, and result in failures using jdk16+.
The replacement Blackbird module uses LambdaMetafactory for a more
sustainable solution.

Documentation:
https://github.com/FasterXML/jackson-modules-base/tree/2.13/blackbird#jackson-blackbird
@iamdanfox
Copy link
Contributor

@carterkozak I vaguely recall the folks who work on our internal auth'd elasticsearch caring a lot about how fast serde is... do we have any predictions about how fast blackbird is compared to afterburner?? (is it the same codegen just loaded in a different way? or a whole different approach)

@carterkozak
Copy link
Contributor Author

More or less equivalent, except that it only applies to method calls and not direct field access. Fortunately conjure exclusively uses methods. There may be some variation in types with annotated fields, but I don't expect it to be substantial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants