When a user is starting a workspace, the following procedure is followed:
-
Che master checks for plug-ins to start from the workspace definition.
-
Plug-in metadata is retrieved, and the type of each plug-in is recognized.
-
A broker is selected according to the plug-in type.
-
The broker processes the installation and deployment of the plug-in (the installation process is different for each broker).
| There are different types of plug-ins. A broker ensures all installation requirements are met for a plug-in to deploy correctly. |
Before a Che workspace is launched, Che master starts containers for the workspace:
-
The Che-Theia plug-in broker extracts the plug-in (from the
.theiafile) to get the sidecar containers that the plug-in needs. -
The broker sends the appropriate container informations to Che master.
-
The broker copies the Che-Theia plug-in to a volume to have it available for the Che-Theia editor container.
-
Che workspace master then starts all the containers of the workspace.
-
Che-Theia is started in its own container and checks the correct folder to load the plug-ins.
Che-Theia plug-in lifecycle:
-
When a user is opening a browser tab or window with Che-Theia, Che-Theia starts a new plug-in session (browser or remote TODO: 'what is remote in this context?'). Every Che-Theia plug-in is notified that a new session has been started (the
start()function of the plug-in triggered). -
A Che-Theia plug-in session is running and interacting with the Che-Theia backend and frontend.
-
When the user is closing the browser tab or there is a timeout, every plug-in is notified (the
stop()function of the plug-in triggered).
