Index: openacs-4/packages/search/search.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/search/search.info,v diff -u -N -r1.34.2.4 -r1.34.2.5 --- openacs-4/packages/search/search.info 17 Jul 2009 11:48:31 -0000 1.34.2.4 +++ openacs-4/packages/search/search.info 29 Jul 2009 22:21:38 -0000 1.34.2.5 @@ -21,6 +21,7 @@ + Index: openacs-4/packages/search/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/search/tcl/apm-callback-procs.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/search/tcl/apm-callback-procs.tcl 29 Jul 2009 22:21:38 -0000 1.1.2.1 @@ -0,0 +1,13 @@ +namespace eval search {} +namespace eval search::install {} + +ad_proc search::install::after_instantiate { + -package_id:required +} { + Package after instantiation callback proc. + + Schedule the indexer so the admin doesn't have to restart their server to get search + up and running after mounting it. +} { + search::init::schedule_indexer +} Index: openacs-4/packages/search/tcl/search-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/search/tcl/search-init.tcl,v diff -u -N -r1.10 -r1.10.2.1 --- openacs-4/packages/search/tcl/search-init.tcl 7 Jun 2008 20:29:01 -0000 1.10 +++ openacs-4/packages/search/tcl/search-init.tcl 29 Jul 2009 22:21:38 -0000 1.10.2.1 @@ -1,5 +1,26 @@ +namespace eval search {} +namespace eval search::init {} + nsv_set search_static_variables item_counter 0 -ad_schedule_proc -thread t [parameter::get_from_package_key -package_key search -parameter SearchIndexerInterval -default 60 ] search::indexer +ad_proc -private search::init::schedule_indexer {} { + Schedule the indexer if the search package has been instantiated (indexing doesn't work + if it hasn't been, so why should we schedule it?). + We use the uncached version of apm_package_id_from_key to avoid forcing the user to + restart their server after mounting search. + +} { + set package_id [apm_package_id_from_key_mem search] + if { $package_id != 0 } { + ad_schedule_proc \ + -thread t [parameter::get \ + -package_id $package_id \ + -parameter SearchIndexerInterval \ + -default 60 ] \ + search::indexer + } +} + +search::init::schedule_indexer