diff --git a/apps/emqx_management/src/emqx_mgmt_http.erl b/apps/emqx_management/src/emqx_mgmt_http.erl index 7f571ee70..d6b63180c 100644 --- a/apps/emqx_management/src/emqx_mgmt_http.erl +++ b/apps/emqx_management/src/emqx_mgmt_http.erl @@ -144,7 +144,17 @@ authorize_appid(_Method, _Path, Req) -> end. -ifdef(EMQX_ENTERPRISE). -filter(_) -> +filter(#{module := Module} = Route) -> + %% true if anything goes wrong + try + case erlang:function_exported(Module, filter, 1) of + true -> apply(Module, filter, [Route]); + false -> true + end + catch _:_ -> + true + end; +filter(_Route) -> true. -else. filter(#{app := emqx_modules}) -> true; @@ -156,7 +166,6 @@ filter(#{app := App}) -> end. -endif. - format(Port) when is_integer(Port) -> io_lib:format("0.0.0.0:~w", [Port]); format({Addr, Port}) when is_list(Addr) -> diff --git a/apps/emqx_retainer/src/emqx_retainer.appup.src b/apps/emqx_retainer/src/emqx_retainer.appup.src index 3609fa78a..d944426a3 100644 --- a/apps/emqx_retainer/src/emqx_retainer.appup.src +++ b/apps/emqx_retainer/src/emqx_retainer.appup.src @@ -1,25 +1,23 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{<<"4\\.4\\.[1-5]">>, + [{"4.4.6",[{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.[1-5]">>, [{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}, {apply,{emqx_retainer_sup,ensure_worker_pool_started,[]}}, - {load_module,emqx_retainer,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_retainer,brutal_purge,soft_purge,[]}]}, {"4.4.0", [{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}, {apply,{emqx_retainer_sup,ensure_worker_pool_started,[]}}, {load_module,emqx_retainer,brutal_purge,soft_purge,[]}, - {load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{<<"4\\.4\\.[1-5]">>, + [{"4.4.6",[{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.[1-5]">>, [{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}, - {load_module,emqx_retainer,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_retainer,brutal_purge,soft_purge,[]}]}, {"4.4.0", [{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}, {load_module,emqx_retainer,brutal_purge,soft_purge,[]}, - {load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}]}. diff --git a/apps/emqx_retainer/src/emqx_retainer.erl b/apps/emqx_retainer/src/emqx_retainer.erl index 281aacb6b..e1bf32d99 100644 --- a/apps/emqx_retainer/src/emqx_retainer.erl +++ b/apps/emqx_retainer/src/emqx_retainer.erl @@ -36,7 +36,7 @@ , on_message_publish/2 ]). --export([clean/1]). +-export([clean/1, read_messages/1]). %% for emqx_pool task func -export([dispatch/2]). diff --git a/src/emqx_plugins.erl b/src/emqx_plugins.erl index 7f7d531c0..3ca36f26c 100644 --- a/src/emqx_plugins.erl +++ b/src/emqx_plugins.erl @@ -253,13 +253,15 @@ default_plugins() -> %% default is true in data/load_modules. **NOT HERE** {emqx_retainer, false}, {emqx_recon, false}, - %% emqx_telemetry is not exist in enterprise. + %% emqx_telemetry does not exist in enterprise. %% {emqx_telemetry, false}, {emqx_rule_engine, true}, {emqx_bridge_mqtt, false}, {emqx_schema_registry, true}, {emqx_eviction_agent, true}, - {emqx_node_rebalance, true} + {emqx_node_rebalance, true}, + %% emqx_gcp_device is managed by emqx_modules. + {emqx_gcp_device, false} ]. -endif. diff --git a/test/emqx_plugins_SUITE.erl b/test/emqx_plugins_SUITE.erl index 6e0994757..3d5a9712f 100644 --- a/test/emqx_plugins_SUITE.erl +++ b/test/emqx_plugins_SUITE.erl @@ -119,7 +119,8 @@ default_plugins() -> {emqx_rule_engine, true}, {emqx_schema_registry, true}, {emqx_eviction_agent, true}, - {emqx_node_rebalance, true} + {emqx_node_rebalance, true}, + {emqx_gcp_device, false} ].