Well i really went overboard this time. What you are seeing is a service process manager.
And in white. I think it looks better in white actually. … anyway
So:
-
Essentially, it includes or supersede the original init which is just a single sequence. (main method)
-
Can seed-up startup. Now we can don’t need a predefined sequence but can allowed automatic initialization in parallel based on dependency tree. Cool!
Any one that knows anything might think Docker or SystemD and you would be right. It’s sort of like that. -
We can control the lifecycle of the services (if you are given the user-permissions).
-
Restarting or stopping any part is not a problem now. Maybe you need a lower RAM usage.
-
Any errors that might occur could potentially be fixed by restating a module but even more so it’s very useful for the HTTP web servers for remote and content and as well as the MIDI control module. If say a device appeared after initialization. (unlike in OpenLP where i made the same midi plugin, this one is more basic and can’t auto wait (reconnect but not quite), although Java sort of allows auto reconnect.
-
You have a nice UI.
-
Now we can initialize Quelea partially, which means we could potentially run it as a terminal application . Or headless mode.
=========================================================== -
Finally, this is half the work (maybe 1/3) to enabling 3rd party plugins to work. Generally we need a dynamic or runtime attachment mechanism and also we would need a solid (maybe polling) api interface… not that i expect anyone to write a plugin but now we could.