summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2017-03-08 01:46:43 +0300
committerMichael Klishin <michael@clojurewerkz.org>2017-03-08 01:46:43 +0300
commitcb5659c237b01783d24f689d8636795af325cb53 (patch)
tree6dff5d93e74a952cad82ea3c9f30096c3c6f5111
parent72e025caeb2e08164fdd18072bf7519689484fa1 (diff)
parentce498703295d584f27ff683bbc2ab953aa44279a (diff)
downloadrabbitmq-server-git-cb5659c237b01783d24f689d8636795af325cb53.tar.gz
Merge branch 'embed-friendly' of https://github.com/binarin/rabbitmq-server into binarin-embed-friendly
-rw-r--r--src/rabbit_mnesia.erl3
-rw-r--r--src/rabbit_plugins.erl41
2 files changed, 33 insertions, 11 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index c420838312..08e4e2e2d5 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -840,12 +840,11 @@ with_running_or_clean_mnesia(Fun) ->
case IsMnesiaRunning of
true -> Fun();
false ->
- {ok, MnesiaDir} = application:get_env(mnesia, dir),
application:unset_env(mnesia, dir),
mnesia:start(),
Result = Fun(),
application:stop(mnesia),
- application:set_env(mnesia, dir, MnesiaDir),
+ application:set_env(mnesia, dir, dir()),
Result
end.
diff --git a/src/rabbit_plugins.erl b/src/rabbit_plugins.erl
index b408b7e613..f176d3abe0 100644
--- a/src/rabbit_plugins.erl
+++ b/src/rabbit_plugins.erl
@@ -61,10 +61,36 @@ ensure(FileJustChanged0) ->
{error, {enabled_plugins_mismatch, FileJustChanged, OurFile}}
end.
+-spec plugins_expand_dir() -> file:filename().
+plugins_expand_dir() ->
+ case application:get_env(rabbit, plugins_expand_dir) of
+ {ok, ExpandDir} ->
+ ExpandDir;
+ _ ->
+ filename:join([rabbit_mnesia:dir(), "plugins_expand_dir"])
+ end.
+
+-spec plugins_dist_dir() -> file:filename().
+plugins_dist_dir() ->
+ case application:get_env(rabbit, plugins_dir) of
+ {ok, PluginsDistDir} ->
+ PluginsDistDir;
+ _ ->
+ filename:join([rabbit_mnesia:dir(), "fake_plugins_dir"])
+ end.
+
+-spec enabled_plugins() -> [atom()].
+enabled_plugins() ->
+ case application:get_env(rabbit, enabled_plugins_file) of
+ {ok, EnabledFile} ->
+ read_enabled(EnabledFile);
+ _ ->
+ []
+ end.
+
%% @doc Prepares the file system and installs all enabled plugins.
setup() ->
- {ok, ExpandDir} = application:get_env(rabbit, plugins_expand_dir),
-
+ ExpandDir = plugins_expand_dir(),
%% Eliminate the contents of the destination directory
case delete_recursively(ExpandDir) of
ok -> ok;
@@ -72,14 +98,12 @@ setup() ->
[ExpandDir, E1]}})
end,
- {ok, EnabledFile} = application:get_env(rabbit, enabled_plugins_file),
- Enabled = read_enabled(EnabledFile),
+ Enabled = enabled_plugins(),
prepare_plugins(Enabled).
%% @doc Lists the plugins which are currently running.
active() ->
- {ok, ExpandDir} = application:get_env(rabbit, plugins_expand_dir),
- InstalledPlugins = plugin_names(list(ExpandDir)),
+ InstalledPlugins = plugin_names(list(plugins_expand_dir())),
[App || {App, _, _} <- rabbit_misc:which_applications(),
lists:member(App, InstalledPlugins)].
@@ -163,10 +187,9 @@ is_loadable(App) ->
%%----------------------------------------------------------------------------
prepare_plugins(Enabled) ->
- {ok, PluginsDistDir} = application:get_env(rabbit, plugins_dir),
- {ok, ExpandDir} = application:get_env(rabbit, plugins_expand_dir),
+ ExpandDir = plugins_expand_dir(),
- AllPlugins = list(PluginsDistDir),
+ AllPlugins = list(plugins_dist_dir()),
Wanted = dependencies(false, Enabled, AllPlugins),
WantedPlugins = lookup_plugins(Wanted, AllPlugins),