Remove old couch_db_update_notifier code
Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/a2addb5f Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/a2addb5f Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/a2addb5f Branch: refs/heads/windsor-merge-209 Commit: a2addb5fc8eabbe29ca5fad22e1fa8d7c1e70ecf Parents: c24e6d6 Author: Paul J. Davis <[email protected]> Authored: Wed Apr 24 12:59:59 2013 -0500 Committer: Robert Newson <[email protected]> Committed: Mon Aug 4 15:24:37 2014 +0100 ---------------------------------------------------------------------- src/couch_db_update_notifier.erl | 82 ------------------------------- src/couch_db_update_notifier_sup.erl | 68 ------------------------- src/couch_os_process.erl | 2 +- src/couch_primary_sup.erl | 6 --- src/couch_secondary_sup.erl | 7 --- 5 files changed, 1 insertion(+), 164 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/a2addb5f/src/couch_db_update_notifier.erl ---------------------------------------------------------------------- diff --git a/src/couch_db_update_notifier.erl b/src/couch_db_update_notifier.erl deleted file mode 100644 index 3958917..0000000 --- a/src/couch_db_update_notifier.erl +++ /dev/null @@ -1,82 +0,0 @@ -% Licensed under the Apache License, Version 2.0 (the "License"); you may not -% use this file except in compliance with the License. You may obtain a copy of -% the License at -% -% http://www.apache.org/licenses/LICENSE-2.0 -% -% Unless required by applicable law or agreed to in writing, software -% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -% License for the specific language governing permissions and limitations under -% the License. - -% -% This causes an OS process to spawned and it is notified every time a database -% is updated. -% -% The notifications are in the form of a the database name sent as a line of -% text to the OS processes stdout. -% - --module(couch_db_update_notifier). - --behaviour(gen_event). - --export([start_link/1, notify/1]). --export([init/1, terminate/2, handle_event/2, handle_call/2, handle_info/2, code_change/3,stop/1]). - --include_lib("couch/include/couch_db.hrl"). - -start_link(Exec) -> - couch_event_sup:start_link(couch_db_update, {couch_db_update_notifier, make_ref()}, Exec). - -notify(Event) -> - gen_event:notify(couch_db_update, Event). - -stop(Pid) -> - couch_event_sup:stop(Pid). - -init(Exec) when is_list(Exec) -> % an exe - couch_os_process:start_link(Exec, []); -init(Else) -> - {ok, Else}. - -terminate(_Reason, Pid) when is_pid(Pid) -> - couch_os_process:stop(Pid), - ok; -terminate(_Reason, _State) -> - ok. - -handle_event(Event, Fun) when is_function(Fun, 1) -> - Fun(Event), - {ok, Fun}; -handle_event(Event, {Fun, FunAcc}) -> - FunAcc2 = Fun(Event, FunAcc), - {ok, {Fun, FunAcc2}}; -handle_event({EventType, EventDesc}, Pid) -> - Obj = encode_event(EventType, EventDesc), - ok = couch_os_process:send(Pid, Obj), - {ok, Pid}. - -handle_call(_Request, State) -> - {reply, ok, State}. - -handle_info({'EXIT', Pid, Reason}, Pid) -> - ?LOG_ERROR("Update notification process ~p died: ~p", [Pid, Reason]), - remove_handler; -handle_info({'EXIT', _, _}, Pid) -> - %% the db_update event manager traps exits and forwards this message to all - %% its handlers. Just ignore as it wasn't our os_process that exited. - {ok, Pid}. - -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -encode_event(EventType, EventDesc) when is_atom(EventType) -> - encode_event(atom_to_list(EventType), EventDesc); -encode_event(EventType, EventDesc) when is_list(EventType) -> - encode_event(?l2b(EventType), EventDesc); -encode_event(EventType, {DbName, DocId}) -> - {[{type, EventType}, {db, DbName}, {id, DocId}]}; -encode_event(EventType, DbName) -> - {[{type, EventType}, {db, DbName}]}. http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/a2addb5f/src/couch_db_update_notifier_sup.erl ---------------------------------------------------------------------- diff --git a/src/couch_db_update_notifier_sup.erl b/src/couch_db_update_notifier_sup.erl deleted file mode 100644 index 9eb943a..0000000 --- a/src/couch_db_update_notifier_sup.erl +++ /dev/null @@ -1,68 +0,0 @@ -% Licensed under the Apache License, Version 2.0 (the "License"); you may not -% use this file except in compliance with the License. You may obtain a copy of -% the License at -% -% http://www.apache.org/licenses/LICENSE-2.0 -% -% Unless required by applicable law or agreed to in writing, software -% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -% License for the specific language governing permissions and limitations under -% the License. - -% -% This causes an OS process to spawned and it is notified every time a database -% is updated. -% -% The notifications are in the form of a the database name sent as a line of -% text to the OS processes stdout. -% - --module(couch_db_update_notifier_sup). - --behaviour(supervisor). --behaviour(config_listener). - --export([start_link/0, init/1]). - -% config_listener api --export([handle_config_change/5]). - - -start_link() -> - supervisor:start_link({local, couch_db_update_notifier_sup}, - couch_db_update_notifier_sup, []). - -init([]) -> - ok = config:listen_for_changes(?MODULE, nil), - - UpdateNotifierExes = config:get("update_notification"), - - {ok, - {{one_for_one, 10, 3600}, - lists:map(fun({Name, UpdateNotifierExe}) -> - {Name, - {couch_db_update_notifier, start_link, [UpdateNotifierExe]}, - permanent, - 1000, - supervisor, - [couch_db_update_notifier]} - end, UpdateNotifierExes)}}. - -%% @doc when update_notification configuration changes, terminate the process -%% for that notifier and start a new one with the updated config -handle_config_change("update_notification", Id, Exe, _, _) -> - ChildSpec = { - Id, - {couch_db_update_notifier, start_link, [Exe]}, - permanent, - 1000, - supervisor, - [couch_db_update_notifier] - }, - supervisor:terminate_child(couch_db_update_notifier_sup, Id), - supervisor:delete_child(couch_db_update_notifier_sup, Id), - supervisor:start_child(couch_db_update_notifier_sup, ChildSpec), - {ok, nil}; -handle_config_change(_, _, _, _, _) -> - {ok, nil}. http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/a2addb5f/src/couch_os_process.erl ---------------------------------------------------------------------- diff --git a/src/couch_os_process.erl b/src/couch_os_process.erl index 6756dd3..f4d65e9 100644 --- a/src/couch_os_process.erl +++ b/src/couch_os_process.erl @@ -45,7 +45,7 @@ stop(Pid) -> set_timeout(Pid, TimeOut) when is_integer(TimeOut) -> ok = gen_server:call(Pid, {set_timeout, TimeOut}, infinity). -% Used by couch_db_update_notifier.erl +% Used by couch_event_os_process.erl send(Pid, Data) -> gen_server:cast(Pid, {send, Data}). http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/a2addb5f/src/couch_primary_sup.erl ---------------------------------------------------------------------- diff --git a/src/couch_primary_sup.erl b/src/couch_primary_sup.erl index 3ce8827..cbd576d 100644 --- a/src/couch_primary_sup.erl +++ b/src/couch_primary_sup.erl @@ -37,12 +37,6 @@ init([]) -> brutal_kill, worker, [couch_server]}, - {couch_db_update_event, - {gen_event, start_link, [{local, couch_db_update}]}, - permanent, - brutal_kill, - worker, - dynamic}, {couch_replication_event, {gen_event, start_link, [{local, couch_replication}]}, permanent, http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/a2addb5f/src/couch_secondary_sup.erl ---------------------------------------------------------------------- diff --git a/src/couch_secondary_sup.erl b/src/couch_secondary_sup.erl index 91e87cb..09e77b7 100644 --- a/src/couch_secondary_sup.erl +++ b/src/couch_secondary_sup.erl @@ -19,13 +19,6 @@ start_link() -> init([]) -> SecondarySupervisors = [ - {couch_db_update_notifier_sup, - {couch_db_update_notifier_sup, start_link, []}, - permanent, - infinity, - supervisor, - [couch_db_update_notifier_sup]}, - {couch_plugin_event, {gen_event, start_link, [{local, couch_plugin}]}, permanent,
