[ https://issues.apache.org/jira/browse/COUCHDB-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jan Lehnardt updated COUCHDB-1046: ---------------------------------- Fix Version/s: (was: 1.2) 1.3 Bump to 1.3.x. > support load of external erlang modules in couchdb. > ---------------------------------------------------- > > Key: COUCHDB-1046 > URL: https://issues.apache.org/jira/browse/COUCHDB-1046 > Project: CouchDB > Issue Type: New Feature > Components: Database Core > Reporter: Benoit Chesneau > Fix For: 1.3 > > Attachments: couchdb-plugins-003.patch, couchdb-plugins-004.patch, > couchdb-plugins-005.patch, couchdb-plugins-01.patch, couchdb-plugins-02.patch > > > If you want to add external modules in CouchDB and load them , you need to > set the ERL_FLAGS environnement variable to the path of a module. > The attached patch allows couchdb to load plugins from plugin key in couchdb > section. It add needed path to the code path, so the vm can find modules. > ex: > [couchdb] > plugins = plugin1, plugin2 > Each plugin can have its own section where it set the binaries patch, > eventually if a service need to be added to the supervision you can set the > module and function to load like in daemon section and tel if it's a > supervisor or simple service. > It also allows couchdb to load a plugin service (gen_server or such) to the > supervision. You can choose if the service is a simple daemon or a supervisor. > ex: > [plugin1] > code_path = /path/to/plugin1/ebin > daemon = {module, function, [Args]} > supervisor = false > Let me know what you think about it. This patch is really useful here and > allows me to dynamically load modules I want. Also it eases the integration > of external module. For ex I can load my couchapp_ng modules with this lines > in local.ini : > [couchdb] > plugins = couchapp-ng > [couchapp-ng] > code_path=/Users/benoitc/work/couchapp_ng/ebin > daemon = {couchapp_ng_routes, start_link, []} > [httpd_design_handlers] > _app = {couchapp_ng_httpd, handle_app_req} > [couchapp_ng_handlers] > rewrite = {couchapp_ng_handlers, rewrite_handler} > proxy = {couchapp_ng_handlers, proxy_handler} > and can do the same with geocouch etc. Tested here with these modules. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira