merge form master
diff --git a/.github/ISSUE_TEMPLATE/issue-report-template.md b/.github/ISSUE_TEMPLATE/issue-report-template.md
new file mode 100644
index 0000000..9663a60
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/issue-report-template.md
@@ -0,0 +1,35 @@
+---
+name: Dubbo-erlang issue report template
+about: If you would like to report a issue to dubbo-erlang, please use this template.
+
+---
+
+- [ ] I have searched the [issues](https://github.com/apache/dubbo-erlang/issues) of this repository and believe that this is not a duplicate.
+
+### Environment
+
+* Dubbo-erlang version: xxx
+* Operating System version: xxx
+* Erlang version: xxx
+
+### Steps to reproduce this issue
+
+1. xxx
+2. xxx
+3. xxx
+
+Pls. provide [GitHub address] to reproduce this issue.
+
+### Expected Result
+
+What do you expected from the above steps?
+
+### Actual Result
+
+What actually happens?
+
+If there is an exception, please attach the exception trace:
+
+```
+Just put your stack trace here!
+```
\ No newline at end of file
diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
new file mode 100644
index 0000000..14d5813
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
@@ -0,0 +1,20 @@
+## What is the purpose of the change
+
+XXXXX
+
+## Brief changelog
+
+XXXXX
+
+## Verifying this change
+
+XXXXX
+
+Follow this checklist to help us incorporate your contribution quickly and easily:
+
+- [x] Make sure there is a [GITHUB_issue](https://github.com/apache/dubbo-erlang/issues) field 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 sample in [samples](https://github.com/apache/dubbo-erlang/samples).
+- [ ] Run `rebar3 eunit` & `rebar3 ct --sys_config config_example/sys.config` to make sure unit-test and integration-test pass.
+- [ ] If this contribution is large, please follow the [Software Donation Guide](https://github.com/apache/dubbo/wiki/Software-donation-guide).
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index a3b2aa1..6fa08b4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,7 +16,7 @@
- ./rebar3 compile
- ./rebar3 eunit -c
- ./rebar3 ct -c --sys_config config_example/sys.config
- - ./rebar3 codecov analyze
+ - ./rebar3 as test codecov analyze
after_success:
- codecov
\ No newline at end of file
diff --git a/README.md b/README.md
index 880b154..eccd16b 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@
Add dubblerl to rebar.config with your project
```erlang
{deps, [
- {dubboerl, {git, "https://github.com/apache/incubator-dubbo-erlang.git", {branch, "master"}}}
+ {dubboerl, {git, "https://github.com/apache/dubbo-erlang.git", {branch, "master"}}}
]}.
```
@@ -77,5 +77,5 @@
More Documents
------
-Reference [Docs](docs/index.md)
+Reference [Docs](http://dubbo.apache.org/en-us/docs/user/languages/erlang/start.html)
diff --git a/rebar.config b/rebar.config
index 2eb91f2..f7d51b9 100644
--- a/rebar.config
+++ b/rebar.config
@@ -6,8 +6,7 @@
{project_app_dirs, ["."]}.
{plugins, [
- rebar3_hex,
- {rebar3_codecov, "0.1.0"}
+ rebar3_hex
]}.
{provider_hooks,
@@ -21,17 +20,19 @@
{deps, [
{erlzk, ".*", {git, "https://github.com/huaban/erlzk.git", {tag, "v0.6.2"}}},
- {ranch, ".*", {git, "https://github.com/ninenines/ranch.git", {tag, "1.4.0"}}},
+ {ranch, ".*", {git, "https://github.com/ninenines/ranch.git", {tag, "1.4.0"}}},
{poolboy, ".*", {git, "https://github.com/devinus/poolboy.git", {tag, "1.5.1"}}},
- {jiffy, "0.15.1"},
- {hooks,{git,"https://github.com/benoitc/hooks.git",{tag,"2.1.0"}}}
+ {jsx, "2.10.0"}
]}.
{profiles,[
{test,
[
- {extra_src_dirs, ["test"]}
+ {extra_src_dirs, ["test"]},
+ {plugins, [
+ {rebar3_codecov, "0.1.0"}
+ ]}
]
}
]}.
\ No newline at end of file
diff --git a/rebar.lock b/rebar.lock
index cc2515b..f188a62 100644
--- a/rebar.lock
+++ b/rebar.lock
@@ -3,11 +3,7 @@
{git,"https://github.com/huaban/erlzk.git",
{ref,"aa7190ee2343ac1341cea3edc9b9eea36c591708"}},
0},
- {<<"hooks">>,
- {git,"https://github.com/benoitc/hooks.git",
- {ref,"d4872554a27c0ee9c2166d18000f725f8c3dc8a8"}},
- 0},
- {<<"jiffy">>,{pkg,<<"jiffy">>,<<"0.15.1">>},0},
+ {<<"jsx">>,{pkg,<<"jsx">>,<<"2.10.0">>},0},
{<<"poolboy">>,
{git,"https://github.com/devinus/poolboy.git",
{ref,"3bb48a893ff5598f7c73731ac17545206d259fac"}},
@@ -18,5 +14,5 @@
0}]}.
[
{pkg_hash,[
- {<<"jiffy">>, <<"BE83B09388DA1A6C7E798207C9D6A1C4D71BB95FCC387D37D35861788F49AB97">>}]}
+ {<<"jsx">>, <<"77760560D6AC2B8C51FD4C980E9E19B784016AA70BE354CE746472C33BEB0B1C">>}]}
].
diff --git a/src/dubbo_serializa_json.erl b/src/dubbo_serializa_json.erl
index b18197a..d6825e1 100644
--- a/src/dubbo_serializa_json.erl
+++ b/src/dubbo_serializa_json.erl
@@ -48,12 +48,12 @@
?LINE_SEPERATOR
],
{ArgsBin, _} = encode_arguments(Data, State),
- AttachBinay = jiffy:encode({Data#dubbo_rpc_invocation.attachments}, []),
+ AttachBinay = jsx:encode(Data#dubbo_rpc_invocation.attachments),
RequestData = erlang:iolist_to_binary(RequestList ++ [ArgsBin, AttachBinay, ?LINE_SEPERATOR]),
{ok, RequestData};
encode_request_data(dubbo_event, _Request, Data, _State) ->
%% @todo 确认该数据类型
- Bin = jiffy:encode(Data),
+ Bin = jsx:encode(Data),
{ok, Bin}.
@@ -74,7 +74,7 @@
{ok, Bin}.
encode_response_data(dubbo_event, _Response, Data, State) ->
- Bin = jiffy:encode(Data, []),
+ Bin = jsx:encode(Data),
{ok, Bin};
encode_response_data(dubbo_rpc_invocation, _Response, Data, State) ->
Result = case Data of
@@ -156,19 +156,19 @@
DataList = binary:split(Data, <<"\n">>, [global]),
[TypeBin | DataList1] = DataList,
%% {Rest,Type,State} = cotton_hessian:decode(Data,cotton_hessian:init()),
- Type = jiffy:decode(TypeBin),
+ Type = jsx:decode(TypeBin),
case Type of
?RESPONSE_VALUE ->
%% {_,Object,DecodeState} = cotton_hessian:decode(Rest,State),
[Value | _] = DataList1,
- Object = jiffy:decode(Value, [return_maps]),
+ Object = jsx:decode(Value, [return_maps]),
{ok, Res#dubbo_response{data = Object}};
?RESPONSE_NULL_VALUE ->
{ok, Res#dubbo_response{data = null}};
?RESPONSE_WITH_EXCEPTION ->
[ExceptionValue | _] = DataList1,
- ExceptionObject = jiffy:decode(ExceptionValue),
+ ExceptionObject = jsx:decode(ExceptionValue),
{ok, Res#dubbo_response{data = ExceptionObject}};
Other ->
logger:error("server response unkonw info ~p", [Other]),
@@ -196,10 +196,8 @@
{ok, Req2};
decode_request(dubbo_event, Req, Data) ->
-%% DataList = binary:split(Data,<<"\n">>),
logger:debug("dubbo_event datalist ~w", [Data]),
- Result = jiffy:decode(Data, []),
-%% {_Rest,undefined,_NewState} = cotton_hessian:decode(Data,cotton_hessian:init()),
+ Result = jsx:decode(Data),
{ok, Req#dubbo_request{data = Result}}.
decode_request_body(Data, State, List) ->
@@ -217,13 +215,11 @@
decode_request_body([ParseType | List], [DataItem | Data], State, ResultList)
when ParseType == dubbo;ParseType == path;ParseType == version;ParseType == method_name ->
- DecodeData = jiffy:decode(DataItem, [return_maps]),
+ DecodeData = jsx:decode(DataItem, [return_maps]),
decode_request_body(List, Data, State, [DecodeData] ++ ResultList);
decode_request_body([desc_and_args | List], [DescBin | Data], State, ResultList) ->
- ParameterDesc = jiffy:decode(DescBin, []),
-
-%% {Rest,ParameterDesc,State1 } = cotton_hessian:decode(Data,State),
+ ParameterDesc = jsx:decode(DescBin),
if
size(ParameterDesc) == 0 ->
decode_request_body(List, Data, State, [[], []] ++ ResultList);
@@ -233,7 +229,7 @@
decode_request_body(List, RestData, NewState, [ArgsObjList, ParameterDesc] ++ ResultList)
end;
decode_request_body([attachments | List], [DataItem | Data], State, ResultList) ->
- Attachments = jiffy:decode(DataItem, [return_maps]),
+ Attachments = jsx:decode(DataItem, [return_maps]),
%% AttachmentsList = dict:to_list(Attachments#map.dict),
decode_request_body(List, Data, State, [Attachments] ++ ResultList);
decode_request_body([_Type1 | List], Data, State, ResultList) ->
@@ -250,7 +246,7 @@
decode_request_body_args(RestList, Data, State, ArgsObjList);
decode_request_body_args([ArgsType | RestList], [DataItem | Data], State, ArgsObjList) ->
- ArgObj = jiffy:decode(DataItem, [return_maps]),
+ ArgObj = jsx:decode(DataItem, [return_maps]),
%% {Rest,ArgObj,NewState } = cotton_hessian:decode(Data,State),
ArgObj2 = dubbo_type_transfer:jsonobj_to_native(ArgsType, ArgObj, State),
decode_request_body_args(RestList, Data, State, ArgsObjList ++ [ArgObj2]).
@@ -270,8 +266,8 @@
fun({I, E}, Acc) ->
Acc#{E => element(I, Data)}
end, #{}, lists:zip(lists:seq(2, length(Fields) + 1), Fields)),
- jiffy:encode(MapValue)
+ jsx:encode(MapValue)
end;
string_encode(Data) ->
- jiffy:encode(Data).
+ jsx:encode(Data).