summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2010-07-21 07:04:55 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2010-07-21 07:04:55 +0100
commitb3a3d43d84d7987ffa201218169824090334f553 (patch)
tree6c9b81aadf83b3104286e030cbe39a0dd2715e63 /src
parentc674f807ee154d331b3c496aea3e5788ecb04203 (diff)
parent5e1a01349a8e2ba636938ad5424c40cc45a6240f (diff)
downloadrabbitmq-server-git-b3a3d43d84d7987ffa201218169824090334f553.tar.gz
merge default into bug21673
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_access_control.erl10
-rw-r--r--src/rabbit_amqqueue.erl4
-rw-r--r--src/rabbit_backing_queue.erl5
-rw-r--r--src/rabbit_dialyzer.erl4
-rw-r--r--src/rabbit_exchange.erl1
-rw-r--r--src/rabbit_exchange_type_topic.erl3
-rw-r--r--src/rabbit_invariable_queue.erl5
-rw-r--r--src/rabbit_misc.erl2
-rw-r--r--src/rabbit_multi.erl6
-rw-r--r--src/rabbit_variable_queue.erl4
10 files changed, 26 insertions, 18 deletions
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl
index 30bae25e5a..3aaf59281e 100644
--- a/src/rabbit_access_control.erl
+++ b/src/rabbit_access_control.erl
@@ -177,11 +177,9 @@ check_resource_access(Username,
<<"">> -> <<$^, $$>>;
RE -> RE
end,
- case regexp:match(
- binary_to_list(Name),
- binary_to_list(PermRegexp)) of
- {match, _, _} -> true;
- nomatch -> false
+ case re:run(Name, PermRegexp, [{capture, none}]) of
+ match -> true;
+ nomatch -> false
end
end,
if Res -> ok;
@@ -306,7 +304,7 @@ list_vhosts() ->
validate_regexp(RegexpBin) ->
Regexp = binary_to_list(RegexpBin),
- case regexp:parse(Regexp) of
+ case re:compile(Regexp) of
{ok, _} -> ok;
{error, Reason} -> throw({error, {invalid_regexp, Regexp, Reason}})
end.
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index e5faef5416..df9474439f 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -167,7 +167,9 @@ start() ->
stop() ->
ok = supervisor:terminate_child(rabbit_sup, rabbit_amqqueue_sup),
- ok = supervisor:delete_child(rabbit_sup, rabbit_amqqueue_sup).
+ ok = supervisor:delete_child(rabbit_sup, rabbit_amqqueue_sup),
+ {ok, BQ} = application:get_env(rabbit, backing_queue_module),
+ ok = BQ:stop().
find_durable_queues() ->
Node = node(),
diff --git a/src/rabbit_backing_queue.erl b/src/rabbit_backing_queue.erl
index b76ae11ebc..2230c507e9 100644
--- a/src/rabbit_backing_queue.erl
+++ b/src/rabbit_backing_queue.erl
@@ -42,6 +42,11 @@ behaviour_info(callbacks) ->
%% shared resources.
{start, 1},
+ %% Called to tear down any state/resources. NB: Implementations
+ %% should not depend on this function being called on shutdown
+ %% and instead should hook into the rabbit supervision hierarchy.
+ {stop, 0},
+
%% Initialise the backing queue and its state.
{init, 3},
diff --git a/src/rabbit_dialyzer.erl b/src/rabbit_dialyzer.erl
index 0ec6beb676..51bd6b1f93 100644
--- a/src/rabbit_dialyzer.erl
+++ b/src/rabbit_dialyzer.erl
@@ -56,7 +56,7 @@ create_basic_plt(BasicPltPath) ->
ok.
add_to_plt(PltPath, FilesString) ->
- {ok, Files} = regexp:split(FilesString, " "),
+ Files = string:tokens(FilesString, " "),
DialyzerWarnings = dialyzer:run([{analysis_type, plt_add},
{init_plt, PltPath},
{output_plt, PltPath},
@@ -65,7 +65,7 @@ add_to_plt(PltPath, FilesString) ->
ok.
dialyze_files(PltPath, ModifiedFiles) ->
- {ok, Files} = regexp:split(ModifiedFiles, " "),
+ Files = string:tokens(ModifiedFiles, " "),
DialyzerWarnings = dialyzer:run([{init_plt, PltPath},
{files, Files}]),
case DialyzerWarnings of
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index d91ebe9ba9..f04341628c 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -49,7 +49,6 @@
-import(mnesia).
-import(sets).
-import(lists).
--import(regexp).
%%----------------------------------------------------------------------------
diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl
index a374cfee7f..89b2441e38 100644
--- a/src/rabbit_exchange_type_topic.erl
+++ b/src/rabbit_exchange_type_topic.erl
@@ -67,8 +67,7 @@ publish(#exchange{name = Name}, Delivery =
Delivery).
split_topic_key(Key) ->
- {ok, KeySplit} = regexp:split(binary_to_list(Key), "\\."),
- KeySplit.
+ re:split(Key, "\\.", [{return, list}]).
topic_matches(PatternKey, RoutingKey) ->
P = split_topic_key(PatternKey),
diff --git a/src/rabbit_invariable_queue.erl b/src/rabbit_invariable_queue.erl
index cf8bc8f77e..4e0dad8422 100644
--- a/src/rabbit_invariable_queue.erl
+++ b/src/rabbit_invariable_queue.erl
@@ -37,7 +37,7 @@
set_ram_duration_target/2, ram_duration/1, needs_idle_timeout/1,
idle_timeout/1, handle_pre_hibernate/1, status/1]).
--export([start/1]).
+-export([start/1, stop/0]).
-behaviour(rabbit_backing_queue).
@@ -61,6 +61,9 @@
start(DurableQueues) ->
ok = rabbit_sup:start_child(rabbit_persister, [DurableQueues]).
+stop() ->
+ ok = rabbit_sup:stop_child(rabbit_persister).
+
init(QName, IsDurable, Recover) ->
Q = queue:from_list(case IsDurable andalso Recover of
true -> rabbit_persister:queue_content(QName);
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index fcc9fc7e54..9ed106d6fa 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -585,7 +585,7 @@ string_to_pid(Str) ->
binary_to_term(<<131,103,NodeEnc/binary,Id:32,Ser:32,0:8>>);
nomatch ->
throw(Err)
- end.
+ end.
version_compare(A, B, lte) ->
case version_compare(A, B) of
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl
index 5db1d77a32..3facef17f7 100644
--- a/src/rabbit_multi.erl
+++ b/src/rabbit_multi.erl
@@ -309,9 +309,9 @@ is_dead(Pid) ->
{win32, fun () ->
Res = os:cmd("tasklist /nh /fi \"pid eq " ++
PidS ++ "\""),
- case regexp:first_match(Res, "erl.exe") of
- {match, _, _} -> false;
- _ -> true
+ case re:run(Res, "erl\\.exe", [{capture, none}]) of
+ match -> false;
+ _ -> true
end
end}]).
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 5a53e2bdbf..0609495025 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -39,7 +39,7 @@
needs_idle_timeout/1, idle_timeout/1, handle_pre_hibernate/1,
status/1]).
--export([start/1]).
+-export([start/1, stop/0]).
%% exported for testing only
-export([start_msg_store/2, stop_msg_store/0]).
@@ -355,6 +355,8 @@ start(DurableQueues) ->
end],
StartFunState).
+stop() -> stop_msg_store().
+
start_msg_store(Refs, StartFunState) ->
ok = rabbit_sup:start_child(?TRANSIENT_MSG_STORE, rabbit_msg_store,
[?TRANSIENT_MSG_STORE, rabbit_mnesia:dir(),