Invitation

The invitation package consists of two areas:
 
During the Session Invitation a Saros session will be established between the host and the invitee. Within the Project Invitation all shared projects/files will be synchronized so that all participants (including host) have the same project data.
 
The invitation process is shown in the image below.

Session Invitation

The list of ProjectExchangeInfos will be generated based on the resources selected by the host.
They contain information regarding the project (projectID, projectName, and description of the project) and a FileList which holds information about the files and folders belonging to the project (path and checksum).
When the host sends a session invitation a wizard will open on the invitee's side.
This wizard invites the invitee to this Saros session and shows the projects which need to be synchronized.

Project Invitation

After the session is established another wizard will open at the participant's side.
For each project of the session the participant can choose to use an existing project out of her/his workspace or to create a new project.
Based on the ProjectExchangeInfo the differences to the host project will be detected.
Files or folders that don't exist in the host project will be deleted on the participant's side.
Missing or different files on the participant's side will be added/updated.
For all data transfer between the host and the participant the XMPPTransmitter of the Network Layer will be used.
Once the session is created every participant of this session is able to add new projects or files to this session.