stateDiagram
start: start(name, type)
load: load(name, type)
loadService: loadService(plan, name, type, true, 0)
[*] --> start
start --> load
load --> loadService
loadService --> getDefault
getDefault --> readServiceConfig
readServiceConfig --> loadService
loadService --> createServicesFromPlan
createServicesFromPlan --> createService
createService --> setConfig
setConfig --> apply
apply --> startService
startService --> stopService
stopService --> releaseService
releaseService --> release
release --> [*]
[*] --> create
create --> load
Creates and starts a service with the given name and type
Starts loading the hierarchy of configuration
FIXME - this should not be the memory plan, but should exist on the filesystem
Default config is used if no config found in memory on filesystem
Recursively loads a service config into a plan
Loops through all "loaded" services in the plan and creates them all
Instantiates instance of service
Sets the config of the service
Applies the config to the service