Add hessian support
Motivation:
Add hessian RPC support.
Modifications:
- Use RpcService and RpcClient to implement hessian RPC support.
- Support return CompletionStage/CompletableFuture as async api.
- Compatible with other implementations
Wow, thanks a lot for volunteering this. 😄 TBH, this is the first time that I have ever heard of the hessian protocol. 😅 Are you using this protocol or implementing it just for fun?
I also found some resources from its website: http://hessian.caucho.com Do you have any other information that I can refer to? such as comparing with other protocols etc.
Hessian is maybe a little too old.
But we use hessian as RPC protocol in many services.
Last year we start using Armeria to build new gRPC services.
For the old hessian services, In order to use service discovery, support async API, and the powerful Armeria decorators,
We use Armeria to build a new client.
Spring integration support hessian. (It is deprecated now) https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#remoting-caucho-protocols-hessian
Dubbo also support hessian https://dubbo.apache.org/en/docs/v2.7/user/maturity/
Thanks for the answer. 😆 It's really great to listen that you like Armeria. Yeah, supporting Hessian is definitely a good addition to Armeria. 😄
@eisig This is huge! General design looks good to me. Please ping us when you think it's ready for review or you have any questions.
@eisig How's this PR going? Anything we can help you with?
@trustin apologize for not making progress for so long. The past few months have been busy with new projects. Today I will restart working this PR.