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

Shade Netty to simplify dependency conflicts against other systems #705

Closed
imasahiro opened this issue Jul 28, 2017 · 5 comments
Closed

Comments

@imasahiro
Copy link
Member

A user want to use Armeria on Netty 4.0 based system (e.g. Apache Flink uses Netty 4.0) but because Armeria uses methods that is newly added in Netty 4.1, it causes NoSuchMethodException at runtime.

To solve this, he/she can relocate Netty4.1 by himself/herself.
But I think, it would be nice if we provide an armeria library that shade Netty dependency.

/cc @okdtsk

@arkadius
Copy link

arkadius commented Feb 1, 2018

I would also like to use armeria with flink. I've already prepared change with this relocations: https://github.com/arkadius/armeria/tree/netty-shaded. Should I create PR or this change is someway controversial?

@trustin
Copy link
Member

trustin commented Feb 1, 2018

@arkadius Good start, but we'd also need to:

  • Hide Netty classes from our public API, e.g. EventLoop, AsciiString and AttributeMap
  • Make sure tcnative and epoll works even after shading.

Are you interested in making this change? It will be mostly about:

  • Replace AsciiString with String or something else
  • Fork AttributeMap
  • Wrap EventLoop with Armeria's own EventLoop interface

@arkadius
Copy link

arkadius commented Feb 1, 2018

Yes, I'm interested in making this change. I'll analyse your proposal and will try to add this improvements.

@trustin
Copy link
Member

trustin commented Feb 2, 2018

@arkadius Awesome! Please feel free to let us know if you have any questions or need any help.

@trustin
Copy link
Member

trustin commented May 9, 2018

Closing. See #1168 for more information.

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

No branches or pull requests

3 participants