title SocEDA components start-up

note right of main: Check installation paths
main->Utils: checkInstall()
main->EasierGOV: runGOV()
activate EasierGOV
EasierGOV->EasierGOV: checkVersion()
EasierGOV->Utils: createTerminal()
EasierGOV->EasierGOV: start()
EasierGOV-->main: process
deactivate EasierGOV
main->EasyESB: runDSB()
activate EasyESB
EasyESB->EasyESB: checkVersion()
EasyESB->Utils: createTerminal()
EasyESB->EasyESB: start()
deactivate EasyESB
EasyESB-->main: process
main->EventCloud: runEC()
activate EventCloud
EventCloud->EventCloud: checkVersion()
EventCloud->EventCloud: collectClasspath()
EventCloud->Utils: createTerminal()
EventCloud->EventCloud: start()
EventCloud-->main: process
deactivate EventCloud
main->SeaCloud: runSC()
activate SeaCloud
note right of main: SeaCloud is not released on the web
SeaCloud->Utils: createTerminal()
SeaCloud->SeaCloud: start()
SeaCloud-->main: process
deactivate SeaCloud
main->DiCEPE: runDC()
activate DiCEPE
DiCEPE->DiCEPE: checkVersion()
DiCEPE->Utils: createTerminal()
DiCEPE->DiCEPE: start()
DiCEPE-->main: process
deactivate DiCEPE
main->WSProviders: runWS()
activate WSProviders
note right of main: WSProvidersis not released on the web
WSProviders->WSProviders: checkDownload()
loop For Each Provider
  WSProviders->Utils: createTerminal()
  WSProviders->WSProviders: createProcess()
end
WSProviders-->main: processes
deactivate WSProviders
loop For Each Process
note right of main: Register all processes to a ShutdownHook
main->main: registerProcess()
end