diff --git a/src/emqx_app.erl b/src/emqx_app.erl index 2a89f0da1..d1db29140 100644 --- a/src/emqx_app.erl +++ b/src/emqx_app.erl @@ -36,11 +36,14 @@ start(_Type, _Args) -> set_backtrace_depth(), print_otp_version_warning(), print_banner(), + %% Load application first for ekka_mnesia scanner + _ = load_ce_modules(), ekka:start(), {ok, Sup} = emqx_sup:start_link(), ok = start_autocluster(), ok = emqx_plugins:init(), _ = emqx_plugins:load(), + _ = start_ce_modules(), emqx_boot:is_enabled(listeners) andalso (ok = emqx_listeners:start()), register(emqx, self()), ok = emqx_alarm_handler:load(), @@ -58,6 +61,18 @@ set_backtrace_depth() -> _ = erlang:system_flag(backtrace_depth, Depth), ok. +-ifndef(EMQX_ENTERPRISE). +load_ce_modules() -> + application:load(emqx_modules). +start_ce_modules() -> + application:ensure_all_started(emqx_modules). +-else. +load_ce_modules() -> + ok. +start_ce_modules() -> + ok. +-endif. + %%-------------------------------------------------------------------- %% Print Banner %%--------------------------------------------------------------------