id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc 1036,Implement 'service' extension point,Nicklas Nordborg,Nicklas Nordborg,"It could be useful to have an extension point that can be used for hooking in various services, for example an FTP Service (#408). Other things this could be useful for is: * A clean-up service, that regularly cleans up things * Regular synchronization between BASE and an external database * and probably a lot more... This extension point work something like this: * We define a 'services' extension point. * Extensions extending it should provide a `ServiceController` implementation which in it's simplest form needs two methods: `start()` and `stop()`. * When the BASE web server starts up and the extension system has been initialized, all registered 'services' extensions will be loaded and their `start()` method called. * When the web server shuts down their `stop()` method is called. * We also need a way to handle scanning for new and updated services. New services should simply be started. An existing service that is updated first needs to stop the old service, perform the update, then start the updated service. * We could also optionally provide functionality for manually stopping and starting services from the web interface. * Another advanced option could be to provide a way to specify which services that should be started automatically and which should be started manually. ",task,closed,major,BASE 2.8,web,,fixed,,