diff --git a/apps/emqx/include/emqx.hrl b/apps/emqx/include/emqx.hrl index 6afe10c29..486143912 100644 --- a/apps/emqx/include/emqx.hrl +++ b/apps/emqx/include/emqx.hrl @@ -71,7 +71,9 @@ %% Message Payload payload :: emqx_types:payload(), %% Timestamp (Unit: millisecond) - timestamp :: integer() + timestamp :: integer(), + %% not used so far, for future extension + extra = [] :: term() }). -record(delivery, { diff --git a/apps/emqx/src/emqx_message.erl b/apps/emqx/src/emqx_message.erl index b70655fc5..9ab8e574a 100644 --- a/apps/emqx/src/emqx_message.erl +++ b/apps/emqx/src/emqx_message.erl @@ -292,7 +292,8 @@ to_map(#message{ headers = Headers, topic = Topic, payload = Payload, - timestamp = Timestamp + timestamp = Timestamp, + extra = Extra }) -> #{id => Id, qos => QoS, @@ -301,7 +302,8 @@ to_map(#message{ headers => Headers, topic => Topic, payload => Payload, - timestamp => Timestamp + timestamp => Timestamp, + extra => Extra }. %% @doc Message to tuple list diff --git a/apps/emqx/test/emqx_message_SUITE.erl b/apps/emqx/test/emqx_message_SUITE.erl index 63db85664..7119e8c9c 100644 --- a/apps/emqx/test/emqx_message_SUITE.erl +++ b/apps/emqx/test/emqx_message_SUITE.erl @@ -206,7 +206,9 @@ t_to_map(_) -> {headers, #{}}, {topic, <<"topic">>}, {payload, <<"payload">>}, - {timestamp, emqx_message:timestamp(Msg)}], + {timestamp, emqx_message:timestamp(Msg)}, + {extra, []} + ], ?assertEqual(List, emqx_message:to_list(Msg)), ?assertEqual(maps:from_list(List), emqx_message:to_map(Msg)). @@ -219,6 +221,8 @@ t_from_map(_) -> headers => #{}, topic => <<"topic">>, payload => <<"payload">>, - timestamp => emqx_message:timestamp(Msg)}, + timestamp => emqx_message:timestamp(Msg), + extra => [] + }, ?assertEqual(Map, emqx_message:to_map(Msg)), ?assertEqual(Msg, emqx_message:from_map(emqx_message:to_map(Msg))).