diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2011-06-28 16:57:23 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-06-28 16:57:23 +0100 |
| commit | a699c342fb44010106054f915ee460bcdb3ee282 (patch) | |
| tree | be5b45042ab57ad0cfcb0605d82e8cada89df2df /src/rabbit.erl | |
| parent | d9d593aecb6050b9ff44b98756e996f723de0b7b (diff) | |
| download | rabbitmq-server-git-a699c342fb44010106054f915ee460bcdb3ee282.tar.gz | |
factorisation
Diffstat (limited to 'src/rabbit.erl')
| -rw-r--r-- | src/rabbit.erl | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index 5ec0611afa..2a7369c0e1 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -406,11 +406,9 @@ load_applications(Worklist, Loaded) -> Error -> throw(Error) end, load_applications( - case application:get_key(App, applications) of - undefined -> Worklist1; - {ok, Lst} -> queue:join(Worklist1, - queue:from_list(Lst)) - end, sets:add_element(App, Loaded)) + queue:join(Worklist1, + queue:from_list(app_dependencies(App))), + sets:add_element(App, Loaded)) end end. @@ -418,10 +416,7 @@ application_load_order() -> ok = load_applications(), {ok, G} = rabbit_misc:build_acyclic_graph( fun application_graph_vertex/2, fun application_graph_edge/2, - [{App, case application:get_key(App, applications) of - undefined -> []; - {ok, Lst} -> Lst - end} || + [{App, app_dependencies(App)} || {App, _Desc, _Vsn} <- application:loaded_applications()]), true = digraph:del_vertices( G, digraph:vertices(G) -- digraph_utils:reachable(?APPS, G)), @@ -429,6 +424,12 @@ application_load_order() -> true = digraph:delete(G), Result. +app_dependencies(App) -> + case application:get_key(App, applications) of + undefined -> []; + {ok, Lst} -> Lst + end. + application_graph_vertex(App, _Deps) -> [{App, App}]. application_graph_edge(App, Deps) -> [{Dep, App} || Dep <- Deps]. |
