Просмотр исходного кода

feat: bump hocon to 0.27.5 to remove FROM_ENV

Zhongwen Deng 3 лет назад
Родитель
Сommit
6f1610257f

+ 1 - 1
apps/emqx/rebar.config

@@ -29,7 +29,7 @@
     {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.1"}}},
     {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.12.4"}}},
     {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}},
-    {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.27.4"}}},
+    {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.27.5"}}},
     {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}},
     {recon, {git, "https://github.com/ferd/recon", {tag, "2.5.1"}}},
     {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "1.0.0"}}}

+ 2 - 2
apps/emqx/src/emqx_config.erl

@@ -261,10 +261,10 @@ get_default_value([RootName | _] = KeyPath) ->
     end.
 
 -spec get_raw(emqx_map_lib:config_key_path()) -> term().
-get_raw(KeyPath) -> emqx_hocon:remove_env_meta(do_get(?RAW_CONF, KeyPath)).
+get_raw(KeyPath) -> hocon_tconf:remove_env_meta(do_get(?RAW_CONF, KeyPath)).
 
 -spec get_raw(emqx_map_lib:config_key_path(), term()) -> term().
-get_raw(KeyPath, Default) -> emqx_hocon:remove_env_meta(do_get(?RAW_CONF, KeyPath, Default)).
+get_raw(KeyPath, Default) -> hocon_tconf:remove_env_meta(do_get(?RAW_CONF, KeyPath, Default)).
 
 -spec put_raw(map()) -> ok.
 put_raw(Config) ->

+ 1 - 64
apps/emqx/src/emqx_hocon.erl

@@ -19,13 +19,9 @@
 
 -export([
     format_path/1,
-    check/2,
-    remove_env_meta/1
+    check/2
 ]).
 
-%% FIXME: move this to hoconsc.hrl
--define(FROM_ENV_VAR(Name, Value), {'$FROM_ENV_VAR', Name, Value}).
-
 %% @doc Format hocon config field path to dot-separated string in iolist format.
 -spec format_path([atom() | string() | binary()]) -> iolist().
 format_path([]) -> "";
@@ -55,66 +51,7 @@ check(SchemaModule, HoconText) ->
             {error, Reason}
     end.
 
-%% @doc remove FROM_ENV_VAR from value
-remove_env_meta(Map) when is_map(Map) ->
-    remove_env_meta(maps:iterator(Map), #{});
-remove_env_meta(Array) when is_list(Array) ->
-    [remove_env_meta(R) || R <- Array];
-remove_env_meta(Value) ->
-    Value.
-
-remove_env_meta(Iter, Map) ->
-    case maps:next(Iter) of
-        {K, ?FROM_ENV_VAR(_Env, Val), I} ->
-            remove_env_meta(I, Map#{K => Val});
-        {K, V, I} when is_binary(V) ->
-            remove_env_meta(I, Map#{K => V});
-        {K, V, I} ->
-            remove_env_meta(I, Map#{K => remove_env_meta(V)});
-        none ->
-            Map
-    end.
-
 %% Ensure iolist()
 iol(B) when is_binary(B) -> B;
 iol(A) when is_atom(A) -> atom_to_binary(A, utf8);
 iol(L) when is_list(L) -> L.
-
--ifdef(TEST).
--include_lib("eunit/include/eunit.hrl").
-
-make_keys_test() ->
-    Seq = [
-        {
-            #{<<"k1">> => <<"v1">>},
-            #{<<"k1">> => <<"v1">>}
-        },
-        {
-            #{<<"k1">> => ?FROM_ENV_VAR("V1", <<"v1">>)},
-            #{<<"k1">> => <<"v1">>}
-        },
-        {
-            #{<<"k1">> => #{<<"k2">> => <<"v1">>}},
-            #{<<"k1">> => #{<<"k2">> => <<"v1">>}}
-        },
-        {
-            #{<<"k1">> => #{<<"k2">> => ?FROM_ENV_VAR("V1", <<"v1">>)}},
-            #{<<"k1">> => #{<<"k2">> => <<"v1">>}}
-        },
-        {
-            #{<<"k1">> => #{<<"k2">> => ?FROM_ENV_VAR("V1", <<"v1">>), <<"k3">> => <<"v3">>}},
-            #{<<"k1">> => #{<<"k2">> => <<"v1">>, <<"k3">> => <<"v3">>}}
-        },
-        {
-            #{<<"k1">> => #{<<"k2">> => 1024}},
-            #{<<"k1">> => #{<<"k2">> => 1024}}
-        },
-        {
-            #{<<"k1">> => #{<<"k2">> => ?FROM_ENV_VAR("V1", 1024)}},
-            #{<<"k1">> => #{<<"k2">> => 1024}}
-        }
-    ],
-    lists:foreach(fun({Data, Expect}) -> ?assertEqual(Expect, remove_env_meta(Data)) end, Seq),
-    ok.
-
--endif.

+ 1 - 1
apps/emqx_prometheus/rebar.config

@@ -4,7 +4,7 @@
     {emqx, {path, "../emqx"}},
     %% FIXME: tag this as v3.1.3
     {prometheus, {git, "https://github.com/deadtrickster/prometheus.erl", {tag, "v4.8.1"}}},
-    {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.27.4"}}}
+    {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.27.5"}}}
 ]}.
 
 {edoc_opts, [{preprocess, true}]}.

+ 1 - 1
mix.exs

@@ -68,7 +68,7 @@ defmodule EMQXUmbrella.MixProject do
       # in conflict by emqtt and hocon
       {:getopt, "1.0.2", override: true},
       {:snabbkaffe, github: "kafka4beam/snabbkaffe", tag: "1.0.0", override: true},
-      {:hocon, github: "emqx/hocon", tag: "0.27.4", override: true},
+      {:hocon, github: "emqx/hocon", tag: "0.27.5", override: true},
       {:emqx_http_lib, github: "emqx/emqx_http_lib", tag: "0.5.1", override: true},
       {:esasl, github: "emqx/esasl", tag: "0.2.0"},
       {:jose, github: "potatosalad/erlang-jose", tag: "1.11.2"},

+ 1 - 1
rebar.config

@@ -66,7 +66,7 @@
     , {system_monitor, {git, "https://github.com/ieQu1/system_monitor", {tag, "3.0.3"}}}
     , {getopt, "1.0.2"}
     , {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "1.0.0"}}}
-    , {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.27.4"}}}
+    , {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.27.5"}}}
     , {emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.1"}}}
     , {esasl, {git, "https://github.com/emqx/esasl", {tag, "0.2.0"}}}
     , {jose, {git, "https://github.com/potatosalad/erlang-jose", {tag, "1.11.2"}}}