anchor.diff:      %% reset config
       ets:delete_all_objects(?TABLE),
       %% force cache initialization
  -    init_config_items(application:loaded_applications()),
  -    vmq_plugin:all(change_config, []).
  -
  -init_config_items([{App, _, _}|Rest]) ->
  +    Configs = init_config_items(application:loaded_applications(), []),
  +    vmq_plugin:all(change_config, [Configs]).
  +
  +init_config_items([{App, _, _}|Rest], Acc) ->
       case application:get_env(App, vmq_config_enabled, false) of
           true ->
  -            lists:foreach(fun({Key, Val}) ->
  -                                  %% initialize the config cache
  -                                  get_env(App, Key, Val)
  -                          end, application:get_all_env(App));
  +            init_config_items(Rest, [{App, get_all_env(App)}|Acc]);
           false ->
  -            ok
  -    end,
  -    init_config_items(Rest);
  -init_config_items([]) -> ok.
  +            init_config_items(Rest, Acc)
  +    end;
  +init_config_items([], Acc) -> Acc.
   
   -spec table_defs() -> [{atom(), [{atom(), any()}]}].
   table_defs() ->
  
positive.code: 
  
  %%% VMQ_SERVER CONFIG HOOK
  change_config() ->
      Env = filter_out_unchanged(get_all_env(vmq_server), []),
      %% change session configurations
      case lists:keyfind(vmq_session, 1, validate_session_config(Env, [])) of
          {_, SessionConfigs} ->
  
negative.code: %%--------------------------------------------------------------------
  init([]) ->
      ets:new(?TABLE, [public, named_table, {read_concurrency, true}]),
      vmq_plugin_mgr:enable_module_plugin(?MODULE, change_config, 1),
      {ok, []}.
  
  %%--------------------------------------------------------------------
  