Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Corona ProjectContainer Guest

Eclipse Home Corona Wiki Home Development

Corona's exemplary implementation for its collaboration framework is its ProjectContainer (PC). This distributed container model enables a multiple Eclipse Workbenches to collaborate in a workgroup.

Access to the PC is restricted to the users listed in the container's TeamMemberRepository. However, it is possible to enable a PCC to allow users to access the container as a guest team member.

Use Case

Actors

PC
A ProjectContainer
User
The person who is not a member of the PC's team, but is requesting access to it.

Description

A user who is not part of a PC's team, requests access to the PC. The PC is enabled for guest access and allows the user to open the PCC.

Assumptions

  • The user has a Corona enabled Eclipse Workbench client
  • A Corona server is available that has the PC defined
  • The PC has been enabled for guest access
    • PC property guest.max set the maximum number of guest users allowed. A value of 0 indicates that no guests are allowed.
  • The PC's TeamMember supports the concept of roles (ProjectLeader, Committer, Contributor, Guest)
  • The PC's TeamMember list has the ability to add/remove transient guest users

Steps

  1. User start Eclipse Workbench enabled with Corona client plug-ins
  2. User selects a PC to open
    1. Request is sent to Corona server to open PC on behalf of User
  3. Corona server receives request to open PC
    1. ProjectContainerManager (PCM) handles the open request
      1. PCM loads (not open) the PC
      2. PCM checks if the user is listed in the PC's TeamMemberRepository
        1. The use is not listed in the PC's TeamMemberRepository
      3. PCM checks if the PC is enabled for guest users
        1. PCM retrieves the PC's property guest.max
        2. The value for guest.max is > 0
        3. guest.max is 10, so guest are allowed
      4. PCM checks if the PC' guest.count < guest.max
        1. Since this is the 1st user, test is true
      5. PCM allows the user as guest
        1. PCM increments the value for guest.count
        2. PCM adds the user as a guest to the PC's list of team member
  4. User is able to access the PC
  5. User closes the PC
    1. Notification sent to Corona server to close PC on behalf of User
  6. Corona server receives PC close request
    1. PCM retrieves the PC from its open container cache
    2. PCM checks if User is a guest
      1. PCM decrements the PC's guest.count
      2. PCM removes the user from the PC's list of team member

Required Functionality

ProjectConatiner

  • Manage guest access counts

ProjectContainerManager

  • Interact with PC and TeamMember to manage guest access

TeamMember

  • Ability to manage transient users

Back to the top