feature: add request content adapter
diff --git a/src/dubbo_adapter.erl b/src/dubbo_adapter.erl
new file mode 100644
index 0000000..5cccb8b
--- /dev/null
+++ b/src/dubbo_adapter.erl
@@ -0,0 +1,30 @@
+%%%-------------------------------------------------------------------
+%%% @author dlive
+%%% @copyright (C) 2019, <COMPANY>
+%%% @doc
+%%%
+%%% @end
+%%% Created : 07. May 2019 00:27
+%%%-------------------------------------------------------------------
+-module(dubbo_adapter).
+-author("dlive").
+
+-include("dubbo.hrl").
+%% API
+-export([reference/1]).
+
+-spec reference(Data::#dubbo_rpc_invocation{}) -> #dubbo_request{}.
+reference(Data)->
+ #dubbo_request{
+ is_event = false,
+ is_twoway = true,
+ mid = dubbo_id_generator:gen_id(),
+ data = Data,
+ mversion= <<"0.0.0">>,
+ serialize_type = serialize_value(application:get_env(dubboerl,protocol,hessian))
+ }.
+
+serialize_value(json)->
+ ?SERIALIZATION_FASTJSON;
+serialize_value(_)->
+ ?SERIALIZATION_HESSIAN.
diff --git a/test/dubbo_adapter_tests.erl b/test/dubbo_adapter_tests.erl
new file mode 100644
index 0000000..8706e8b
--- /dev/null
+++ b/test/dubbo_adapter_tests.erl
@@ -0,0 +1,35 @@
+%%%-------------------------------------------------------------------
+%%% @author dlive
+%%% @copyright (C) 2019, <COMPANY>
+%%% @doc
+%%%
+%%% @end
+%%% Created : 07. May 2019 00:34
+%%%-------------------------------------------------------------------
+-module(dubbo_adapter_tests).
+-author("dlive").
+-include("dubbo.hrl").
+-include_lib("eunit/include/eunit.hrl").
+
+reference_test() ->
+ dubbo_id_generator:start_link(),
+ Invocation = #dubbo_rpc_invocation{
+ className = <<"testname">>,
+ classVersion = <<"testversion">>,
+ methodName = <<"getUserInfo">>,
+ parameterDesc = <<"Ljava/lang/String;"/utf8>>,
+ parameterTypes = [
+ #type_def{foreign_type = <<"java.lang.String">>,
+ native_type = string,
+ fieldnames = []}
+ ],
+ parameters = [
+ <<"test">>
+ ],
+ attachments = [
+ {<<"path">>, <<"testname">>},
+ {<<"interface">> , <<"testname">>}
+ ]
+ },
+ Request = dubbo_adapter:reference(Invocation),
+ ?assert(is_record(Request,dubbo_request)).