Refactor content repository backendThe refactored code is a first step to become able to provide pluginsfor backends for storing content in different systems. Instead ofusing switch statements to distinguish between backends "file", "lob"and "text", procs with a suffix of the storage name are providednow. Essentially, by providing process with additional suffixes can beused to provide additional storage systems.In addition, the deletion handling was also refactored such that thenon-scalable functions iterating over all items (such as"cr_check_orphaned_files") will become obsolete. This is imporant forcontent repositories with double and triple digit terabytes.
acs-content-repository:- new public function "cr_cleanup_orphaned_files" to clean up orphaned files incrementally based on cr-file creation log- added "cr_cleanup_orphaned_files" to "cr_delete_scheduled_files" to perform cleanup automatically- new function to handle cr-file creation log, which is used to removed orphaned files (created by aborted transactions)- the function "cr_check_orphaned_files" can still be used for cleaning up orphaned files from times before the cr-file creation log was in place (that is from the birth of OpenACS until now).acs-tcl:- new function "ad_mutex_eval" for safely executing tcl commands under a mutex lock