From 6193d40b0b81af85c3b870f118d9c8fecacaf1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?= Date: Thu, 14 Dec 2017 17:05:54 +0100 Subject: [PATCH 1/3] Travis CI: The base branch is v3.7.x --- deps/rabbit_common/.travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/rabbit_common/.travis.yml b/deps/rabbit_common/.travis.yml index 09bb0f32c3..f21742a2e7 100644 --- a/deps/rabbit_common/.travis.yml +++ b/deps/rabbit_common/.travis.yml @@ -32,12 +32,12 @@ before_script: # information is missing. Our Erlang.mk's git_rmq fetch method relies # on it, so we need to restore it. # - # We simply fetch master and, if it exists, stable branches. A branch + # We simply fetch master and, if it exists, v3.7.x branches. A branch # is created, pointing to the detached HEAD. - | git checkout -B "${TRAVIS_TAG:-${TRAVIS_BRANCH}}" git remote add upstream https://github.com/$TRAVIS_REPO_SLUG.git - git fetch upstream stable:stable || : + git fetch upstream v3.7.x:v3.7.x || : git fetch upstream master:master || : # Make sure we use Elixir from Erlang Solutions and not kiex. - | From b2e65761d8601dba18a65ecbc0570143a7d68793 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Thu, 14 Dec 2017 18:40:03 +0300 Subject: [PATCH 2/3] Peer discovery backend: add an optional init callback Part of rabbitmq/rabbitmq-peer-discovery-common#5. [#153615554] (cherry picked from commit cb898f5e9cb8b7e5443011ad4c2e0e77e9b78a5f) --- deps/rabbit_common/src/rabbit_peer_discovery_backend.erl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl b/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl index 560ecdf690..66af27068a 100644 --- a/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl +++ b/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl @@ -38,6 +38,8 @@ -include("rabbit.hrl"). +-callback init() -> ok | {error, Reason :: string()}. + -callback list_nodes() -> {ok, {Nodes :: list(), NodeType :: rabbit_types:node_type()}} | {error, Reason :: string()}. @@ -52,3 +54,5 @@ -callback lock(Node :: atom()) -> {ok, Data :: term()} | not_supported | {error, Reason :: string()}. -callback unlock(Data :: term()) -> ok | {error, Reason :: string()}. + +-optional_callbacks([init/0]). From 2ac800d293f0dab1b1a811afdcb2e7bb4f53b0a4 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Tue, 2 Jan 2018 22:25:16 +0800 Subject: [PATCH 3/3] Introduce rabbit_data_coercion:{to_map/1, to_proplist/1} References rabbitmq/rabbitmq-management#528, rabbitmq/rabbitmq-mqtt#156. --- deps/rabbit_common/src/rabbit_data_coercion.erl | 10 +++++++++- deps/rabbit_common/test/unit_SUITE.erl | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/deps/rabbit_common/src/rabbit_data_coercion.erl b/deps/rabbit_common/src/rabbit_data_coercion.erl index 733bc4a623..7c3cd4c28b 100644 --- a/deps/rabbit_common/src/rabbit_data_coercion.erl +++ b/deps/rabbit_common/src/rabbit_data_coercion.erl @@ -16,7 +16,7 @@ -module(rabbit_data_coercion). --export([to_binary/1, to_list/1, to_atom/1, to_integer/1]). +-export([to_binary/1, to_list/1, to_atom/1, to_integer/1, to_proplist/1, to_map/1]). -export([to_atom/2]). -spec to_binary(Val :: binary() | list() | atom() | integer()) -> binary(). @@ -45,3 +45,11 @@ to_atom(Val, Encoding) when is_binary(Val) -> binary_to_atom(Val, Encoding). to_integer(Val) when is_integer(Val) -> Val; to_integer(Val) when is_list(Val) -> list_to_integer(Val); to_integer(Val) when is_binary(Val) -> binary_to_integer(Val). + +-spec to_proplist(Val :: map() | list()) -> list(). +to_proplist(Val) when is_list(Val) -> Val; +to_proplist(Val) when is_map(Val) -> maps:to_list(Val). + +-spec to_map(Val :: map() | list()) -> map(). +to_map(Val) when is_map(Val) -> Val; +to_map(Val) when is_list(Val) -> maps:from_list(Val). diff --git a/deps/rabbit_common/test/unit_SUITE.erl b/deps/rabbit_common/test/unit_SUITE.erl index 6d4c2b4e2c..138dbb34fb 100644 --- a/deps/rabbit_common/test/unit_SUITE.erl +++ b/deps/rabbit_common/test/unit_SUITE.erl @@ -18,6 +18,7 @@ -include_lib("common_test/include/ct.hrl"). -include_lib("proper/include/proper.hrl"). +-include_lib("eunit/include/eunit.hrl"). -include("rabbit_memory.hrl"). @@ -33,6 +34,8 @@ all() -> groups() -> [ {parallel_tests, [parallel], [ + data_coercion_to_proplist, + data_coercion_to_map, encrypt_decrypt, encrypt_decrypt_term, version_equivalence, @@ -281,6 +284,14 @@ platform_and_version(_Config) -> _ -> ok end. +data_coercion_to_map(_Config) -> + ?assertEqual(#{a => 1}, rabbit_data_coercion:to_map([{a, 1}])), + ?assertEqual(#{a => 1}, rabbit_data_coercion:to_map(#{a => 1})). + +data_coercion_to_proplist(_Config) -> + ?assertEqual([{a, 1}], rabbit_data_coercion:to_proplist([{a, 1}])), + ?assertEqual([{a, 1}], rabbit_data_coercion:to_proplist(#{a => 1})). + pid_decompose_compose(_Config) -> Pid = self(), {Node, Cre, Id, Ser} = rabbit_misc:decompose_pid(Pid),