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

support generic invoke for http/hessian protocol #1768 #1801

Closed
wants to merge 15 commits into from

Conversation

diecui1202
Copy link

@diecui1202 diecui1202 commented May 15, 2018

What is the purpose of the change

The corresponding issue is #1768. This PR support generic invocation in HttpProtocol/HessianProtocol.

Brief changelog

To export additional GenericService in HessianProtocol/HttpProtocol for supporting normal/nativejava/bean types of generic invocation.

Verifying this change

HttpProtocolTest/HessianProtocolTest is the corresponding unit tests.

Follow this checklist to help us incorporate your contribution quickly and easily:

  • Make sure there is a GITHUB_issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
  • Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
  • Run mvn clean install -DskipTests & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
  • If this contribution is large, please follow the Software Donation Guide.

@codecov-io
Copy link

codecov-io commented May 15, 2018

Codecov Report

Merging #1801 into master will decrease coverage by 0.08%.
The diff coverage is 73.25%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master    #1801      +/-   ##
============================================
- Coverage     40.43%   40.34%   -0.09%     
- Complexity     4415     4443      +28     
============================================
  Files           628      643      +15     
  Lines         30082    30533     +451     
  Branches       5319     5379      +60     
============================================
+ Hits          12164    12320     +156     
- Misses        15994    16279     +285     
- Partials       1924     1934      +10
Impacted Files Coverage Δ Complexity Δ
...bbo/rpc/proxy/wrapper/StubProxyFactoryWrapper.java 0% <0%> (ø) 0 <0> (ø) ⬇️
...va/com/alibaba/dubbo/rpc/filter/GenericFilter.java 0% <0%> (ø) 0 <0> (ø) ⬇️
.../alibaba/dubbo/rpc/proxy/AbstractProxyFactory.java 0% <0%> (ø) 0 <0> (ø) ⬇️
...om/alibaba/dubbo/rpc/filter/GenericImplFilter.java 0% <0%> (ø) 0 <0> (ø) ⬇️
...baba/dubbo/rpc/protocol/AbstractProxyProtocol.java 0% <0%> (ø) 0 <0> (ø) ⬇️
...ocol/hessian/DubboHessianURLConnectionFactory.java 100% <100%> (ø) 3 <3> (?)
...ba/dubbo/rpc/protocol/hessian/HessianProtocol.java 68.29% <100%> (+8.91%) 10 <5> (+3) ⬆️
.../dubbo/rpc/protocol/http/HttpRemoteInvocation.java 100% <100%> (ø) 3 <3> (?)
.../protocol/hessian/HttpClientConnectionFactory.java 45.45% <50%> (-4.55%) 2 <1> (ø)
...ing/transport/dispatcher/ChannelEventRunnable.java 80.85% <66.66%> (+3.76%) 9 <4> (ø) ⬇️
... and 22 more

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 2354c16...8da0ba3. Read the comment docs.

@diecui1202 diecui1202 changed the title support generic invoke for http protocol #1768 support generic invoke for http/hessian protocol #1768 May 18, 2018
@diecui1202
Copy link
Author

I haven't find the way to ship context from consumer to provider through HessianProxyFactory. An ugly way is to use URL query parameter, but it has a length limit.

@diecui1202
Copy link
Author

Another way is using HTTP Header to ship RpcContext. I will try it later.

@diecui1202
Copy link
Author

Because of the commits are not clear, so I'll start a new PR, this one will be closed.

@diecui1202
Copy link
Author

The new PR is #1827

@diecui1202 diecui1202 closed this May 22, 2018
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.

5 participants